Commit Graph

729 Commits

Author SHA1 Message Date
be716bf228
Improved and documented plugin module 2017-09-20 10:21:27 +03:00
ef8f40ccc4
Moved notifications to plugins (including sound) 2017-09-20 10:21:27 +03:00
7e35ea6bdf
Email gateway autoregistration fixes
- don't treat "@" in label as an email address
- ask for confirmation before autoregistering. It confused some
newbies into thinking that bitmessage requires payment
2017-08-24 14:16:37 +02:00
2da4d00730
Support message C PoW fix 2017-08-15 18:14:36 +02:00
a2b8867c1a
Tooltips for network status columns 2017-07-06 19:36:04 +02:00
a0bbd21efc
Add ratings to peers
- outbound peers now have a rating
- it's also shown in the network status tab
- currently it's between -1 to +1, changes by 0.1 steps and uses a
hyperbolic function 0.05/(1.0 - rating) to convert rating to
probability with which we should connect to that node when randomly
chosen
- it increases when we successfully establish a full outbound connection
to a node, and decreases when we fail to do that
- onion nodes have priority when using SOCKS
2017-07-05 09:17:01 +02:00
f5a143d0b8
Config validator
- config options can have validators
- limit maxoutboundconnections to max 8
2017-06-27 13:19:12 +02:00
20e01860cf
Network status peer list shouldn't be editable 2017-06-27 13:16:41 +02:00
26eb54a82e
Network status updates
- now lists each node with its info instead of a per-stream summary
2017-06-24 12:16:12 +02:00
bfbdd7e140
Chan address validator button feedback
- During validation, the button not only turns gray but also changes
label
2017-06-24 12:14:23 +02:00
2685fe29b1
Code quality improvements 2017-06-24 12:13:35 +02:00
7f06cb7c27
Inventory flush fix in GUI
- Fixes #1011
2017-06-10 10:10:59 +02:00
f366447e94
Fix identicon imports 2017-06-10 10:09:14 +02:00
e522f015a8
Network status updates
- only update processed numbers once every 2 seconds
- moved inventory lookups to the main inventory so now all
storage modules work with it
2017-05-31 10:15:47 +02:00
c85d52b8e8
Asyncore updates
- asyncore is now on by default
- inv announcements implemented
- bandwidth limit implemented / fixed
- stats on download / upload speed now work
- make prints into logger
- limit knownNodes to 20k as it was before
- green light fixed
- other minor fixes
2017-05-29 00:24:07 +02:00
9683c879bc
Asyncore update
- Network status UI works but current speed isn't implemented yet
- Track per connection and global transferred bytes
- Add locking to write queue so that other threads can put stuff
there
- send ping on timeout (instead of closing the connection)
- implement open port checker (untested, never triggered yet)
- error handling on IO
2017-05-25 14:59:18 +02:00
198470f734
Revert parser/renderer max message size
- it's now dealt with during decoding
2017-05-15 12:25:30 +02:00
9f4a1fa0a4
Config file defaults and address unification
- bmconfigpaser.py now allows to put default values for a specific
option in the file
- addresses as sections are now detected by "BM-" rather than
just ignoring bitmessagesettings. There can now be other sections
with a cleaner config file
2017-05-15 12:18:07 +02:00
660997f8e7
Quick hack for excessively long messages
- only process the first MB of a message for GUI purposes
(parsing/rendering)
2017-05-14 15:40:35 +02:00
e6f0b34f9b
Fixed some inconvenience on first run mainly in Ubuntu.
- immediately return from initCL() if numpy or pyopencl is unevailable
   (no ImportError because of resetPoW() call)
 - use glob to find C extension even if it named like
   `bitmsghash.x86_64-linux-gnu.so`

If user chooses to show the Settings dialog:

 - activate the "Network Settings" tab
 - remove option 'dontconnect' if settings have been saved
2017-04-05 14:25:02 +03:00
1af49a0165
Download tracking refactoring
- replace PendingDownload singleton dict with a Queue
- total memory and CPU requirements should be reduced
- get rid of somObjectsOfWhichThisRemoteNodeIsAlearedyAware. It has very
little practicle effect and only uses memory
2017-03-19 22:08:00 +01:00
ee7e630694
Show a dialog with QR-code for selected bm-address 2017-03-06 18:00:23 +02:00
9836206402
Missed translations: namecoin and welcom message 2017-03-05 23:07:18 +02:00
8d829b587e
Reset OpenCL when settings change
- previously, changing the OpenCL vendor (or turning it on/off) required
  a restart and this wasn't clear
2017-02-28 22:59:44 +01:00
171bc83ec0
HTML parser fix
- URLs followed with space were broken
2017-02-28 22:47:56 +01:00
eaafb9efa5
Listening port shouldn't be grey 2017-02-28 22:04:34 +01:00
741ac5ca05
UPnP recommendation notification fixes
- notify also if no connections and no change
2017-02-27 16:18:22 +01:00
ff786725ed
Typo
- UPnP / connectivity recommendation was active when on proxy rather
  than without
2017-02-27 16:12:19 +01:00
cd0972c0f3
Recommend enabling UPnP on network problems
- it looks like there aren't enough listening nodes
- if connection is dropped, notify non-proxy users about the UPnP option
2017-02-27 15:30:19 +01:00
cff1af1b4f
Subscription wrong tab
- when subscribing from addressbook, it switched to blacklist tab
  instead of subscriptions
2017-02-26 20:03:47 +01:00
d7076626c2
TTL label is in red and warning when too low
- TTL to chans shouldn't be too low so the UI gives a feedback
- warning when sending wouldn either require a lot of refactoring or
  wouldn't have good usability
2017-02-22 16:07:39 +01:00
e9899743ef
Typos, formatting, obsolete imports 2017-02-22 15:09:36 +01:00
af1bed9034
MessageView Unicode HTML fix
- the HTML on/off click label should be unicode rather than str
2017-02-22 12:30:14 +01:00
57a3c35299
Context menu on messages to deleted accounts
- messages from deleted chans still stay in global inbox
- this crated problems with account detection
- created NoAccount class for such accounts
2017-02-22 12:15:52 +01:00
6062277d60
Rename configparser.py to bmconfigparser.py
- it was causing problems with py2app because the source of python's own
  CongigParser is also configparser.py
2017-02-22 09:34:54 +01:00
266d8eba1f
SafeHTMLParser unicode / subprocess
- don't do subprocess in SafeHTMLParser, it doesn't work in frozen mode
  and an attempt to fix it would take too much refactoring and I'm not
  even sure it would work
- instead, make it handle broken unicode correctly
- I think the previous reports of freezes were caused by trying to
  interpret data as unicode, causing a crash
- it does about 1MB/s on my machine, so a timeout is not a big problem
2017-02-22 09:05:05 +01:00
Justin Ramos
fd95f8f519
allowing for max outbound connection configuration
Signed-off-by: Justin Ramos <justin.ramos@gmail.com>
2017-02-21 16:28:54 -06:00
46a2c361de
Building and msgpack fixes
- Makefile typo
- pyinstaller rewritten and fixed including and initialisation of
  messagetypes
- msgpack decoding new message display fix
2017-02-19 19:48:45 +01:00
f499a3b1d8
Typo 2017-02-14 13:57:20 +01:00
a4b1a781ce
Minor UI fixes
- "new" folder consistently appears in chans and "All accounts"
- "Sent" message list sorting fix
- When editing a label, keys.dat is saved and the lineEdit completer
  is updated
- addressbook is updated when adding/deleting a new chan
2017-02-14 01:35:32 +01:00
d8ae44f9ee
Obsolete imports, missing exception type 2017-02-09 21:04:07 +01:00
c778b81427
knownNodes refactoring and shutdown fixes
- saveKnownNodes replaced the repeated pickle.dump
- with knownNodesLock instead of acquire/release
- outgoingSynSender had an unnecessary loop during shutdown causing
  excessive CPU usage / GUI freezing
2017-02-09 11:53:33 +01:00
157881bc63
Cyclic import fix
- networkDefaultProofOfWorkNonceTrialsPerByte and
  networkDefaultPayloadLengthExtraBytes cyclic import fix
- PyBitmessage should launch now when there's no keys.dat
2017-02-08 20:37:42 +01:00
2cc4435cfc
Imports, typos, syntax errors
- remove obsolete imports
- add missing imports
- fix typos
- fix syntax errors
- thanks to landscape.io for report
2017-02-08 14:19:02 +01:00
59f3a2fbe7
Reduce cyclic dependencies
- rearranged code to reduce cyclic dependencies
- doCleanShutdown is separated in shutdown.py
- shared queues are separated in queues.py
- some default values were moved to defaults.py
- knownnodes partially moved to knownnodes.py
2017-02-08 13:41:56 +01:00
a381f75b4b
Git head information in version
- About dialog now shows the git head
- git head check has been improved to point to the head rather than the
  previous commit
2017-02-07 20:46:30 +01:00
6b65dfeeec
MarkAllUnread sqlite argument limit
- shouldn't crash anymore if there are too many messages to mark read
2017-02-07 16:38:02 +01:00
5ae1327edc
Download/upload shutdown fixes
- Missing renamed to PendingDownload
- PendingDownload now only retries 3 times rather than 6 to dowload an
  object
- Added PendingUpload, replacing invQueueSize
- PendingUpload has both the "len" method (number of objects not
  uploaded) as well as "progress" method, which is a float from 0
  (nothing done) to 1 (all uploaded) which considers not only objects
  but also how many nodes they are uploaded to
- PendingUpload tracks when the object is successfully uploaded to the
  remote node instead of just adding an arbitrary time after they have
  been send the corresponding "inv"
- Network status tab's "Objects to be synced" shows the sum of
  PendingUpload and PendingDownload sizes
2017-01-19 19:48:12 +01:00
9ed59dd825
Shutdown procedure cleanup 2017-01-16 23:38:18 +01:00
805f72e098
Make objects to be send stoppable if not empty 2017-01-15 22:21:19 +01:00
f079ff5b99
Refactor objects to be downloaded
- moved logic into a Missing singleton
- shouldn't try to download duplicates anymore, only requests a hash
  once every 5 minutes and not from the same host
- removed obsoleted variables
- the "Objects to be synced" in the Network tab should now be correct
- removed some checks which aren't necessary anymore in my opinion
- fix missing self in Throttle (thanks landscape.io)
2017-01-15 19:21:24 +01:00
8cb0953401
Moved writeKeysFile into configparser
- shared.writeKeysFile -> BMConfigParser().save
- makes it easier to get rid of circular imports
2017-01-15 10:50:02 +01:00
5ca8a52662
Typos, extra imports and similar
- pointed out by landscape.io
- also updated dev/ssltest.py to work the same way as the main program
2017-01-15 10:48:29 +01:00
689d697a40
Refactor bandwidth limit and speed calculator
- also fixes potential deadlocks
2017-01-14 23:21:00 +01:00
ad75552b5c
Move shutdown from shared.py to state.py 2017-01-14 23:20:15 +01:00
8d278182a7
Indentation 2017-01-13 15:53:47 +01:00
93bdc3c800
Remove extra print 2017-01-13 12:32:26 +01:00
d0b1cbfe1f
Add current git HEAD info to support request 2017-01-13 12:29:14 +01:00
5ae676f2ad
Minor support fix 2017-01-13 12:05:39 +01:00
6778d6046f
Add OpenSSL 1.1.0 compatibility
- thanks to Wolfgang Frisch <wfr@roembden.net>
2017-01-13 12:02:34 +01:00
ff8deebf60
Keep track of network protocol status 2017-01-12 19:18:56 +01:00
c738d93056
Assorted fixes
- landscape.io was complaining, this fixes most easily fixable errors
2017-01-11 18:13:00 +01:00
fa0a3135e7
Fixes pointed out by landscape.io
- missing/wrong/obsolete imports
- logger formatting
2017-01-11 17:26:25 +01:00
ac348e4e6b
Fixes and refactoring
- fixes errors introduced in the earlier refactoring
- more variables moved to state.py
- path finding functions moved to paths.py
- remembers IPv6 network unreachable (in the future can be used to skip
  IPv6 for a while)
2017-01-11 17:00:00 +01:00
8bcfe80ad0
Refactoring of config parser and shared.py
- got rid of shared config parser and made it into a singleton
- refactored safeConfigGetBoolean as a method of the config singleton
- refactored safeConfigGet as a method of the config singleton
- moved softwareVersion from shared.py into version.py
- moved some global variables from shared.py into state.py
- moved some protocol-specific functions from shared.py into protocol.py
2017-01-11 14:27:19 +01:00
e84b19613e
Inventory refactoring
- minor refactoring, made it into singleton instead of a shared global
  variable. This makes it a little bit cleaner and moves the class into
a separate file
- removed duplicate inventory locking
- renamed singleton.py to singleinstance.py (this is the code that
  ensures only one instance of PyBitmessage runs at the same time)
2017-01-10 21:15:35 +01:00
fefb959338
Notify if C PoW missing
- Linux users often don't know that the C PoW is available and complain
  it's slow. This will try to build it, and adds availability
  notification in the status bar
- also, the updateStatusBar signal now allows emphasised notifications,
  which will remain visible for a longer period of time and also
  reappear if a status change happened in the meantime
2016-12-15 16:11:29 +01:00
025950c05e
Fix locale init
- date/time wasn't localised correctly on startup
2016-12-13 11:54:01 +01:00
fbc9886eda
OpenCL settings saving fix 2016-11-15 17:06:56 +01:00
612333a267
Enable support for extended encoding
- receiving extended encoding now works
- sending works from the GUI by pressing "Shift" while clicking on
  "Send"
- requires https://pypi.python.org/pypi/msgpack-python
2016-11-14 20:23:58 +01:00
54e3465575
HTML parser queue flush fix
- the queue wasn't correctly flushed
2016-11-14 20:19:26 +01:00
4af788e963
Placeholder proxy text
- based on what tor you're probably using (9150 for OSX and Windows,
  9050 for others)
2016-11-12 15:41:58 +01:00
e9a3ef465c
OpenCL vendor selector
- when you have multiple OpenCL drivers at the same time, e.g. intel and
  nvidia, they won't mix leading to crashes. This patch makes it
  possible to select which driver to use by listing the available
  vendors
2016-11-10 21:43:10 +01:00
a7f3afe5a6
Typo 2016-11-05 00:46:07 +01:00
3d4869851e
Many changes on chan create/join dialog
- refactored to use the .ui file
- input logic change, address is always optional
- interactive input validation
- runs asynchronously to the main window
- address generator thread can now validate chans in addition to just
adding them
2016-10-28 22:07:16 +02:00
5c9bfe09a2
Parser queue flushing
- the parser queue wasn't flushed when there's an exception resulting in
  the wrong message being displayed selected
2016-10-27 23:09:31 +02:00
781ea8a8a6
Typo 2016-10-26 02:19:26 +02:00
30d9de008f
Label change fix
- when changing an addressbook label using UTF-8, the correspnding
  messagelist label was garbled
2016-10-25 07:54:52 +02:00
a3584bb141
"From" combobox empty fix
- if label of your address is empty, the "From" combo box showed an
  empty entry (just the identicon). Now it shows the address instead
- fixes #898
2016-10-25 02:51:09 +02:00
b0d1ed8304
Make clear that address error message refer to the recipient
- a user report indicated there is confusion about address error
messages. He/she thought it refers to the sender address, however it
refers to the recipient address. This makes it more clear
2016-10-24 22:33:13 +02:00
ad0d2c375a
Recipient address error message status bar unicode fix
- when reporting an error about recipient address in the status bar, it
didn't correctly handle unicode
2016-10-24 22:31:54 +02:00
2c972fbe41
"Fetch Namecoin ID" button font size fixed 2016-10-24 22:29:14 +02:00
671f321ead
HTML parser fix
- the UTF-8-ifying of tags had missing brackets
2016-10-23 18:35:20 +02:00
c335ef7d10
HTML parser fix
- sometimes, a tag attribute name is UTF-8, sometimes it isn't. This
  change makes it handle both
2016-10-23 09:02:27 +02:00
32f1e0447a
Multiprocessing PoW fixes and improvements
- the multiprocessing PoW should now work correctly
- it also should be interruptible correctly and the GUI will ask about
  it during exit
2016-10-22 05:00:35 +02:00
9dd09a44fc
Message list loading performance improvement
- by disabling UI updates (which are not necessary as it freezes
  anyway), the message list loading is faster
2016-10-22 01:47:29 +02:00
47e2df86b9
Freezing message parser fix #2
- this has been tested on Windows as well, and has been cleaned up.
  There is now a permanent parser thread, and it restarts when the
  parsing takes more than 1 second
- Fixes #900
2016-10-22 01:45:32 +02:00
8f194296e7
Long message parsing fix
- while 448ceaa74c fixed slow rendering on
  windows, there was still a bug where overly long messages caused
  freezeing of the hyperlink regexp parser, which appears to happen on
  all platforms. Maybe it's a freeze, maybe it just takes too long. This
  patch aborts the regexp parser after 1 second and simply displays the
  message without hyperlinks being clickable. This doesn't affect HTML
  mode because there the links are kept as they are
- Fixes #900
2016-10-21 15:54:02 +02:00
2067040ff1
MessageView localisation fix 2016-10-20 20:38:21 +02:00
448ceaa74c
Line wrap performance workaround
- some messages (e.g. some long messages on Windows, or binary data)
  cause an excessive amount of time in rendering the body. This
  change is base on a workaround I found at
  http://www.qtcentre.org/threads/8188-bug-setLineWrapMode
2016-10-20 20:26:53 +02:00
96212693b2
Message does not need plurals 2016-10-20 16:54:25 +02:00
3a1d581c9e
Multiple UI status updates
- most status messages are transient, so they are now only displayed for
  10 seconds
- when trying to quit while disconnected or not fully synced, a
  three-choice message box now appears: Yes for waiting, No for
  closing anyway, and Cancel for aborting the shutdown procedure
2016-10-20 16:06:46 +02:00
e1dd29bfd1
Copyright UTF8 character fix
- this copyright character has been plaguing pylupdate4 parser and
  multiple unsuccessful attempts have been made and then reverted.
  Replaced with a HTML entity, hopefully this will finally fix it.
2016-10-20 02:50:00 +02:00
Marius Ghita
7aecb4aad1 Hide connection notifications configuration option
New option on the User Interface settings tab, to hide connection
notification messages.
2016-10-11 19:14:06 +02:00
9590f83820
Typo
- see
  e6ce73f4bd (commitcomment-19344095)
2016-10-08 10:01:34 +02:00
1b03b535cf
Translation source fix 2016-10-05 20:49:32 +02:00
739d46004c
Translation source fix 2016-10-05 20:29:42 +02:00
e6ce73f4bd
Multiple PoW updates
- fixes "fast python" (multiprocessing) PoW
- python PoW (both slow and fast) interruptible on *NIX
- signal handler should handle multiple processes and threads correctly
(only tested on Linux)
- popul window asking whether to interrupt PoW when quitting QT GUI
- PoW status in "sent" folder fixes and now also displays broadcast
status which didn't exist before
- Fixes #894
2016-10-05 20:06:47 +02:00
2616a9d4c1
Fix PyGI warnings
- Partially addresses #893
2016-08-27 21:47:40 +08:00
c58c1969e5
Increase width of TTL slider
- horizontal slider was too narrow and unusable on the latest Fedora.
  Increased size and tested at 800x600 to make sure it's not too wide
  now.
2016-08-21 07:23:46 +02:00