Commit Graph

837 Commits

Author SHA1 Message Date
Philipp Hörist fa7f6f2b8c Add modules to store publish list 2019-02-03 00:15:28 +01:00
Philipp Hörist cef5b04d82 Refactor UserAvatar
- Simplify modules because nbxmpp handles more stuff
2019-02-03 00:08:28 +01:00
Philipp Hörist 3f03e6e0a4 Better handle disable notifitcations 2019-02-02 12:55:07 +01:00
Philipp Hörist 59b39b049a Refactor UserLocation
- Simplify modules because nbxmpp handles more stuff
2019-02-02 12:51:28 +01:00
Philipp Hörist d37b95e45e Refactor UserTune
- Simplify modules because nbxmpp handles more stuff
2019-02-02 12:51:24 +01:00
Philipp Hörist 18c422d843 Move print for debug message 2019-02-01 17:24:33 +01:00
Philipp Hörist 0b6fac44dc Dont fail on malformed pubsub events 2019-02-01 17:03:46 +01:00
Philipp Hörist b9b9dae6a0 Refactor UserActivity
- Use IconTheme for mood icons
- Simplify modules because nbxmpp handles more stuff
2019-01-31 22:57:15 +01:00
Philipp Hörist be95b04007 Refactor UserNickname and UserMood
- Use IconTheme for mood icons
- Simplify modules because nbxmpp handles more stuff
2019-01-30 23:36:01 +01:00
Philipp Hörist 8e336311cc Add annotations 2019-01-26 21:57:22 +01:00
Philipp Hörist e994b8f402 Count MUC members correctly
- Pass Affiliation enum to get_uf_affiliation
- Pass Role enum to get_uf_role
2019-01-26 20:40:07 +01:00
Philipp Hörist ce0abb991c Add BaseModule 2019-01-26 14:34:58 +01:00
Philipp Hörist 1a7d930fc4 Add blocking list dialog 2019-01-21 22:45:19 +01:00
Philipp Hörist 4670760668 Fix destroying a MUC
- Only close the tab if we initiated the destruction
2019-01-19 23:05:36 +01:00
Philipp Hörist 31d9b39744 Deal with stanza-id not added by a mam archive
Fixes #9550
2019-01-19 21:35:58 +01:00
Philipp Hörist 3e362874be Detect invalid user activity 2019-01-19 21:21:20 +01:00
Philipp Hörist 7c7df9d4a4 Detect invalid user mood
Fixes #9546, #9547
2019-01-19 21:21:16 +01:00
Philipp Hörist cf8eafffb2 Detect full language code
Previously we only used short language codes (en, de, fr)

- Add conversion method to rfc5646 format
2019-01-19 20:40:06 +01:00
Philipp Hörist a9994b791b Windows: Fix language detection 2019-01-19 19:41:52 +01:00
Philipp Hörist 72be14a04d Jingle Audio: Add more log output 2019-01-11 21:53:34 +01:00
Philipp Hörist b22f1baca5 Propagate presences further
Other modules like avatars and entity caps come after the base presence handlers
2019-01-11 20:45:11 +01:00
streaps 88439091b0 Jingle Audio: Update codecs
Fixes #9535
2019-01-10 22:28:00 +01:00
Philipp Hörist dad671c1c7 Remove unused import 2019-01-07 23:52:51 +01:00
Philipp Hörist 4f3e4d2242 Pass xml:lang to nbxmpp 2019-01-07 23:44:51 +01:00
Philipp Hörist 5776d3de48 Chatstates: Add more log output 2019-01-06 11:23:30 +01:00
Philipp Hörist 6a958c5725 Pass contact instead of string
Fixes #9529
2019-01-06 11:10:07 +01:00
Philipp Hörist a64d986c7f Fix pylint error 2019-01-06 02:15:17 +01:00
Philipp Hörist eb99291d44 Add chat state setting per room
- Add menu option to the group chat menu for setting the chat state
- Up the paused timer to 10 seconds
- Default for group chats is composing only
2019-01-06 02:01:12 +01:00
Philipp Hörist 777b8d72e4 Remove print statement 2019-01-06 00:58:07 +01:00
Philipp Hörist 55694b60bf Dont save Gajim settings in bookmarks
- Remove print status from bookmarks
- Remove minimize on join from bookmarks
- Add options to the groupchat menu for both settings

Fixes #9463
2019-01-06 00:00:42 +01:00
Philipp Hörist 19c45510a0 MUC: Fix printing status/show
- rename config values to something more appropriate
2019-01-05 19:17:34 +01:00
Philipp Hörist 633795b7f4 Dont fail on users leaving a group chat
Fixes #9527
2019-01-05 19:17:34 +01:00
Sebastiaan Lokhorst a91f5f2c49 Fix Bonjour (pybonjour) on macOS 2019-01-05 18:37:09 +01:00
Philipp Hörist d200e94fba Better determine language cross platform 2019-01-05 16:27:11 +01:00
Philipp Hörist 4aca2eeae2 Dont send chatstates when cycling MUC nicks
- Add ability to enable/disable the whole module so it doesnt try to send chatstates when we are offline
2019-01-04 15:21:55 +01:00
Philipp Hörist 67318a49e5 Preferences: Add some default options
- Option to set default sync threshold
- Option to set default show join/leave
- Option to set default show status message change
2019-01-04 09:00:12 +01:00
Philipp Hörist 5fd1e7b4bf Remove ping timeout on disconnect handler 2019-01-04 00:49:59 +01:00
Philipp Hörist b600328639 Refactor message handlers
- Adapt to nbxmpp now unwraping MAM messages
- Use nbxmpp properties
- Save message-id to database
2019-01-04 00:11:28 +01:00
Philipp Hörist cdb37828e4 Move message error handler into message module 2019-01-03 11:52:26 +01:00
Philipp Hörist c0fb645309 Move MUC message logging into message module 2019-01-03 11:25:45 +01:00
Philipp Hörist 4631f50372 Remove unused code 2019-01-03 10:46:31 +01:00
Philipp Hörist eb9f340a03 Remove star imports 2019-01-03 10:41:22 +01:00
Philipp Hörist b05f0e1458 Move methods into Connection class 2019-01-03 10:19:53 +01:00
Philipp Hörist 0441ccd4e9 Move 'agent-removed' handler into Gateway module 2019-01-03 10:19:29 +01:00
Philipp Hörist f3d5babc65 Register handlers in CommonConnection class 2019-01-03 10:19:25 +01:00
Philipp Hörist 1399c41d59 Remove old dbus module
We now use Gio DBus
2019-01-03 09:06:49 +01:00
Philipp Hörist 371756c2a5 Remove unnecessary event classes 2019-01-03 09:06:44 +01:00
Philipp Hörist fcb33a10e7 Add missing get_instance() for Gateway/IQ module 2019-01-03 01:00:31 +01:00
Philipp Hörist d1ccfd515a MUC: Dont check for unique room id support
This feature was remove from XEP-0045 in Version 1.25 (2012-02-08). We simply now use an uuid instead.
2019-01-03 00:50:22 +01:00
Philipp Hörist d622439a44 Remove unused code 2019-01-03 00:50:00 +01:00
Philipp Hörist 9ae6654dd3 Add IQ and Gateway module 2019-01-03 00:19:23 +01:00
Philipp Hörist d93fe8b1ea HTTPAuth: Use nbxmpp handlers 2019-01-02 16:53:06 +01:00
Philipp Hörist d121bbf4ab Refactor Zeroconf presence 2019-01-02 16:10:30 +01:00
Philipp Hörist b37c578504 Fix tests
- Fix more pylint errors
- Move caps test for now to broken
2019-01-02 02:27:38 +01:00
Philipp Hörist 0fcf90f8d5 Fix pylint errors 2019-01-02 02:16:42 +01:00
Philipp Hörist f2beea0df3 Refactor Caps module 2019-01-02 02:04:54 +01:00
Philipp Hörist a289ad5f60 Refactor Presence
- Remove option to hide self contacts for now. This makes the code less
complicated.
- Move as much code as possible into the presence module
- Use nbxmpp properties
2019-01-02 02:04:42 +01:00
Philipp Hörist 608607b721 Remove old PEP code 2018-12-31 10:54:51 +01:00
Philipp Hörist d06b73d7c6 Rename some muc events 2018-12-30 21:18:17 +01:00
Philipp Hörist d203d36f07 Remove debug code 2018-12-30 20:44:59 +01:00
Philipp Hörist 0ad369dc97 Refactor MUC Presence
- Use nbxmpp properties
- Split into multiple events
- Add new options in the group chat menu for print settings
2018-12-30 20:06:59 +01:00
Philipp Hörist 79684d90d5 Simplify vcard avatar code
- Use nbxmpp properties
2018-12-28 13:38:15 +01:00
Philipp Hörist 34306921ed Correctly parse delay in groupchats 2018-12-28 11:54:54 +01:00
Philipp Hörist 8094cadbea Refactor MUC module
- nbxmpp provides now most of the MUC code
2018-12-27 22:13:35 +01:00
Philipp Hörist c63e32634a Adapt Zeroconf to nbxmpp changes
Fixes #9503
2018-12-23 22:33:10 +01:00
Philipp Hörist 43f210bbaa Remove unused code 2018-12-21 19:33:34 +01:00
Philipp Hörist 0e6011c088 Ignore bookmark updates from other jids
Because we use +notify to subscribe to the bookmarks node, we get notifications from contacts that have an open access bookmarks node
2018-12-21 19:10:18 +01:00
Philipp Hörist 4503f466d6 Simplify gc-message-received event 2018-12-21 18:36:09 +01:00
Philipp Hörist 40fc727156 Remove unused code 2018-12-21 14:13:08 +01:00
Philipp Hörist 85e79e7b27 Use nbxmpp properties for HTTPAuth
nbxmpp implements HTTPAuth now, so we dont need to parse it anymore
2018-12-21 12:23:26 +01:00
Philipp Hörist 42c1909d3b Remove carbon processing
nbxmpp does that now for us
2018-12-20 23:18:23 +01:00
Philipp Hörist c614ac69df Refactor voice approval 2018-12-19 23:24:44 +01:00
Philipp Hörist 8b5adb06da Allow setting handler priority 2018-12-19 23:24:39 +01:00
Philipp Hörist ce6839957d Catch mediated invites only if type is normal
https://xmpp.org/extensions/xep-0045.html#invite-mediated
2018-12-19 23:00:56 +01:00
Philipp Hörist 5f555193c7 Send active instead of gone as last chatstate
- Also attempt to fix #9446
2018-12-19 23:00:56 +01:00
Philipp Hörist e9f4c5050e Refactor MUC captcha challenge code 2018-12-19 23:00:50 +01:00
Philipp Hörist 1fec6681cd Move MUC config change handling into MUC module
- Remove status conditions code, since the XEP made a namespace bump to :1 and is now backwards compatible its useless
- XEP-0045 mentions status code 100 can be in messages but there is no case given where this would ever happen, so its removed from message handling
2018-12-19 23:00:09 +01:00
Philipp Hörist b935ce7096 Add more log output when calling handlers 2018-12-19 02:18:12 +01:00
Philipp Hörist 99cfb8f629 Cleanup Gajims disco features 2018-12-19 00:11:24 +01:00
Philipp Hörist de4cd80b83 Make namedtuple local 2018-12-18 22:52:29 +01:00
Philipp Hörist ced387e719 Remove legacy code 2018-12-18 22:49:07 +01:00
Philipp Hörist 7286f4286f Add feature-discovered event
This lets us move more GUI code out of the common module
2018-12-18 22:41:06 +01:00
Philipp Hörist 0ac52a390e Allow handlers list to be modifed while iterating 2018-12-18 14:08:27 +01:00
Philipp Hörist 841f12f75b Fix mypy errors 2018-12-17 00:41:46 +01:00
Philipp Hörist 96edd79963 Handle PEP bookmarks notifications
- Handle PEP bookmark notifications
- On new bookmarks with the auto join flag set, join the MUC
- Dont merge private and pubsub bookmarks
- Only use pubsub if the conversion feature is announced
2018-12-17 00:36:45 +01:00
Philipp Hörist 760645f5c3 Improve MUC notifications
- Play sound for received messages, if notify for all messages is activated
- Send system notifications on MUC messages
- Make notify for all the default in private MUCs

Fixes #9383
2018-12-15 23:37:44 +01:00
Philipp Hörist be420d44fc Implement XEP-0411 Bookmarks Conversion
If bookmarks conversion is announced by the server:

- Dont merge bookmarks
- Only push to either private storage or pubsub
2018-12-10 22:30:45 +01:00
Philipp Hörist 6e30d3af64 Adapt to nbxmpp API changes
- Remove support for OAUTH2
- Remove insecure password dialog, its impossible now that a user can connect plain by mistake
- Refactor requesting the password
- Add possibility to delete passwords
2018-12-09 18:48:44 +01:00
Philipp Hörist b8863e82be MUC: Identify subject change correctly
Fixes #9491
2018-12-09 00:29:20 +01:00
Philipp Hörist ace1113d02 Fix pylint errors 2018-12-05 21:40:12 +01:00
Philipp Hörist a979874fa1 Sort imports 2018-12-05 17:05:29 +01:00
Philipp Hörist e419f75217 Remove unused imports 2018-12-05 17:05:10 +01:00
Philipp Hörist 4968fe39e2 Correctly remove ping timeout
Fixes #9481
2018-12-05 17:03:34 +01:00
Philipp Hörist 62253c804a Discover the bookmarks conversion server feature 2018-12-04 20:41:44 +01:00
Philipp Hörist 86bbdd21fd Encode resource with correct profile
Fixes #9465
2018-12-04 19:43:13 +01:00
Philipp Hörist 932377f533 Remove unused event 2018-12-04 19:32:13 +01:00
Philipp Hörist 700666b820 Refactor send timeouts
Fixes #9459
2018-12-04 19:29:32 +01:00
Philipp Hörist 78f439c611 Refactor disconnect code
Fixes #9467
2018-12-04 19:28:50 +01:00
Philipp Hörist 59855a6c8d Determine delay timestamp correctly
- Check the from attr on the delay node to determine if its a user timestamp or from the server
- Dont use user timestamp for sorting
- Record the user timestamp in additional data so its saved to the database

Fixes #9444
2018-12-04 12:18:17 +01:00
Philipp Hörist fd6dec1208 Handle presence without from attr correctly
Fixes #9472
2018-12-03 15:40:43 +01:00
Philipp Hörist 1d11e06647 Fix error when creating MUC
Fixes #9473
2018-12-03 14:17:46 +01:00
Philipp Hörist 3f2e3c6bb2 Better handle not available keyring backends 2018-12-01 21:46:58 +01:00
Philipp Hörist 432a4edbc1 Use custom dict for additional data
This makes it easier to retrive and store values
2018-11-30 23:05:15 +01:00
Philipp Hörist f1ab9fb683 Fix connection resume
Fixes #9458
2018-11-27 19:23:34 +01:00
Andrey Gursky f942e2c70f Fix receipts for chat
This is a regression from e3050697
2018-11-27 02:17:25 +01:00
Philipp Hörist 5fa56684c7 Adapt to nbxmpp API changes 2018-11-25 20:02:20 +01:00
Philipp Hörist c8b5eb94a9 Remove unused imports 2018-11-20 16:16:30 +01:00
Philipp Hörist 15c3de2b4d Add option to show chatstate in roster
- Preferences: Add options for display in banner, tab, roster
- This makes the chatstate Plugin obsolete
2018-11-20 15:32:01 +01:00
Philipp Hörist c61bd65607 Simplify PEP module inits 2018-11-20 15:32:01 +01:00
Philipp Hörist e305069798 Fix receipts for MUC-PMs 2018-11-19 19:33:28 +01:00
Philipp Hörist b5bd5f15f0 Dont check mam:2 compliance for error messages 2018-11-19 18:04:32 +01:00
Philipp Hörist 1504805575 Dont answer groupchat receipt requests 2018-11-19 17:51:18 +01:00
Philipp Hörist 3ba34fa396 Remove old iconset code 2018-11-18 22:24:32 +01:00
Philipp Hörist acc89ad622 Roster: Use icons from IconTheme for Roster
With this Gajim loses the ability to draw animated GIFs in the Roster

GIFs have numerous drawbacks:

- We cant add them to the IconTheme, which means we need a different interface to load them
- The IconTheme scales all icons we load for the current scale (HiDPI)
- The animation causes many updates to the Roster, and causes high cpu usage

Fixes #8814, #8655
2018-11-18 22:24:10 +01:00
Philipp Hörist d13baed80f Improve Entity Time parsing
- Use parse_datetime()
- Improve tzo node validation
2018-11-18 10:35:13 +01:00
Philipp Hörist f40f171ecd Refactor parse_datetime and add unit test 2018-11-18 10:35:13 +01:00
Philipp Hörist 7f1dfe5a8c New DataFormWidget: Add Captcha support 2018-11-15 21:02:09 +01:00
Bronko 4be4998704 fix typos in config.py 2018-11-14 22:44:41 +01:00
Philipp Hörist 9e24c72ba5 Fix incorrect contact status on tabs 2018-11-13 23:47:54 +01:00
Philipp Hörist e509a68139 Determine absolut path for custom config folder
When a relative custom config path is passed via commandline, the logic
which decides if a plugin can be deleted from the plugin manager fails
2018-11-11 15:15:10 +01:00
Philipp Hörist 62b210a9e5 Pass account to plugins when encrypting a file 2018-11-11 10:40:48 +01:00
Philipp Hörist e4a9ffe1ca Dont test for sys.platform == 'linux'
This excludes other unix systems which was not intended
2018-11-10 19:30:19 +01:00
Philipp Hörist 02a9615b94 Dont test if precis_i18n is available
Its listed as dependency
2018-11-10 19:30:19 +01:00
Philipp Hörist a7cc815ca4 Move imports into function 2018-11-10 19:30:18 +01:00
Philipp Hörist 5152611ad7 Try to play sound on all unix systems
sys.platform == 'linux' excludeds other unix systems, for example FreeBSD
2018-11-10 19:30:18 +01:00
Philipp Hörist 0d70352460 Dont test if winsound is available
Its a standard library which will be always available in our builds
2018-11-10 19:30:13 +01:00
Philipp Hörist 1f31ab04f2 Remove unused code
Code is also not cross-platform compatible
2018-11-10 19:30:13 +01:00
Philipp Hörist 8d95eb9b99 Better determine soundplayer on unix systems
- sys.platform == 'linux', excludes many other unix systems
- use shutil.which() to test if a command is available
2018-11-10 19:30:12 +01:00
Philipp Hörist f5a19c24a9 Cast messages from a bare muc jid to groupchat 2018-11-05 21:08:34 +01:00
Emmanuel Gil Peyrot b4d34bf7f6 Move XEP-0231 into its own module 2018-11-05 19:58:49 +01:00
Philipp Hörist 6b65a23371 DataForms: Make validation possible
- Show orange warning icon if a field is required
- Show red error icon if validation of the field failed
- Set validation error text as tooltip of the icon
- DataFormWidget emits a signal 'is-valid' on every change
2018-11-04 00:58:34 +01:00
Philipp Hörist 61a791d67c Rewrite GroupchatConfig dialog
- Complete rewrite of the dialog
- Use new DataFormWidget
2018-11-02 22:24:28 +01:00
Philipp Hörist e615a8e2e3 Add possibility to get windows by jid
This also makes it possible to get windows by an account/jid combination
2018-11-02 22:21:15 +01:00
Philipp Hörist 2a0d6dc1ad Use json format for the servers list 2018-10-28 21:26:25 +01:00
Matthew W. S. Bell 2a62209e1e Obtain sleep inhibitor again after every sleep
- There is a PrepareForSleep signal before and after every sleep event.
The expectation is that before sleep, gajim cleans up and then releases
the sleep inhibitor. Accordingly, we must reacquire the inhibitor after
sleeping, which can helpfully be done with the other signal.

- Moved module to the dbus folder

- Embed logic in a LogindListener object so we can import the module
without listening to dbus
2018-10-26 12:57:13 +02:00
Philipp Hörist 54fe4dacf2 Fix import 2018-10-26 01:49:15 +02:00
Philipp Hörist e5beff266a Guard GeoClue import
- So we dont have to check on module import if GeoClue is installed
2018-10-26 01:45:43 +02:00
Philipp Hörist df7f0324a3 Move dbus modules into own folder
- light refactor of the screensaver module
2018-10-26 01:19:47 +02:00
Philipp Hörist dc59801d93 Make var global 2018-10-22 19:04:37 +02:00
Yann Leboulanger 286f820f77 fix regression from [e265514d]: gupnp object is keept globally. Fixes #9398 2018-10-22 13:38:40 +02:00
Daniel Brötzmann 4f28720db0 Remove ESessions leftovers 2018-10-21 23:17:42 +02:00
Philipp Hörist e44cedf094 Use parse_delay also for presences 2018-10-19 20:43:04 +02:00
Philipp Hörist abf1909360 Remove support for XEP-0091 2018-10-19 20:38:44 +02:00
Philipp Hörist 53ec34a955 Use parse_datetime for parsing idle time
Fixes #9393
2018-10-19 20:37:18 +02:00
Philipp Hörist 8487bdb83e Make bookmark parsing more resilient
Fixes #9385
2018-10-19 15:59:04 +02:00
Philipp Hörist ba2618d035 Set password correctly on MUC join 2018-10-14 21:42:51 +02:00
Philipp Hörist c34ce28f56 Add a dedicated folder for plugin data 2018-10-14 17:09:39 +02:00
Philipp Hörist c58ea13379 Default to showing offline contacts
Many messengers dont show the status anymore, its not evident to new
users that most of their roster is hidden per default and they have to
show it to access the contacts
2018-10-13 16:21:44 +02:00
Yann Leboulanger 00c8e5c01d Ability to update plugins on startup from a download folder 2018-10-12 22:17:34 +02:00
André Apitzsch 8a0ed4af5b Fix missing UI translations on flatpak 2018-10-11 23:21:46 +02:00