Commit Graph

780 Commits

Author SHA1 Message Date
Philipp Hörist 328d250f4c Fix evaluation for subject change 2018-09-16 14:36:54 +02:00
Philipp Hörist 7018d5be0e Dont retract pep items on UserXEPs
This leads to multiple problems

1. We cant assume only items with id='current' are stored in the node
which would lead to retracting 'current' but another item would become
the last published and sent to users

2. Even if we have a SingletonNode retracting the only item means the Node
would be empty and offline clients would not receive the last published item
on coming online, because there is no item anymore

Instead we always publish an empty item from now on
2018-09-16 13:35:55 +02:00
Philipp Hörist e85bc52c8b Fix sending empty pep data 2018-09-16 12:58:37 +02:00
Philipp Hörist bb545d546a Fix useless-object-inheritance pylint errors 2018-09-16 11:56:56 +02:00
Philipp Hörist de0c0a9c08 Fix unsued-import pylint errors 2018-09-16 11:37:38 +02:00
Philipp Hörist 49ca238252 Fix len-as-condition pylint errors 2018-09-16 01:10:04 +02:00
Philipp Hörist f7a139eac2 Zeroconf: Store time of outgoing messages 2018-09-15 12:00:32 +02:00
Philipp Hörist d54d4bc232 Add annotations and fix pylint/mypy errors 2018-09-13 23:56:12 +02:00
Philipp Hörist 62c54525d8 fuzzyclock: Fix pylint errors 2018-09-13 00:33:54 +02:00
Philipp Hörist 64aec8adce Add annotations 2018-09-12 21:08:37 +02:00
Philipp Hörist b99632ab03 Fix pylint errors 2018-09-12 00:01:54 +02:00
Philipp Hörist 09c5183575 Fix pylint errors in common/modules 2018-09-11 22:25:55 +02:00
Philipp Hörist 4ad38d5398 Make some vars private 2018-09-11 20:00:34 +02:00
Philipp Hörist dad7def794 Catch error if no translation is found 2018-09-11 19:37:48 +02:00
Philipp Hörist a34bf54c46 Fix mypy error regarding _() 2018-09-11 19:29:08 +02:00
Philipp Hörist 21672fadee Refactor i18n
- Make _() available, so other modules can import it from i18n, we need
this because mypy cant handle _() in the builtins namespace
2018-09-11 19:27:10 +02:00
Philipp Hörist 2649b3d01e Add annotations to modules/util.py 2018-09-11 00:47:59 +02:00
Philipp Hörist ca9b4cb596 Add annotations for modules/__init__.py 2018-09-11 00:47:54 +02:00
Philipp Hörist bcf2a3770d Remove unnecessary code
NetworkIncomingEvent defines base_network_events and generate() already
2018-09-11 00:37:00 +02:00
Philipp Hörist f82cd95f2c Fix subscribing to contact
Fixes #9321
2018-09-09 17:43:17 +02:00
Philipp Hörist 432704005d Request blocking list on connect 2018-09-09 16:50:55 +02:00
Philipp Hörist 0a20cb5997 Fix fallback for bookmark name 2018-09-08 23:55:31 +02:00
Philipp Hörist 27dd36cca3 Improve speed of groupchat roster
- Save reference to contact in a dict instead of iterating the whole model
- Sort roster only once after all contacts have been added to the roster
- Speed up get_gc_contact()

Fixes #9334
2018-09-08 20:49:26 +02:00
Philipp Hörist c8b31dffbb Remove verbose logging of idle time 2018-09-06 21:44:31 +02:00
Philipp Hörist bba88cf609 Windows: Improve locked screen detection
UAC prompts count as locked screens, so only trigger extended away
when the screen is more than 10 seconds locked

Fixes #9117
2018-09-06 21:41:38 +02:00
Philipp Hörist 3a16ccb4d4 Revert "Windows: Remove locked screen detection"
This reverts commit 05307bd609
2018-09-06 21:38:41 +02:00
Philipp Hörist 05307bd609 Windows: Remove locked screen detection
This does not reliably tell us when the screen is locked.
For example this triggers when a UAC prompt is active.
From the Windows documentation there is no way to determine
if a workstation is locked

Fixes #9117
2018-09-06 21:17:05 +02:00
Philipp Hörist a4a136566f Fix license comment format
every linter flags this as an error
2018-09-05 02:59:34 +02:00
Philipp Hörist 9dd747dfe5 Windows: Fix IPV6 for Windows 10+
Fixes #9326
2018-09-05 02:14:51 +02:00
Philipp Hörist 27f7580688 Light refactring of bookmark code
- Convert xs:boolean values in bookmark module
- Use python booleans for minimize and autojoin in other parts of Gajim
- Use add_bookmark() instead of manipulating the bookmarks dict
2018-09-05 00:06:59 +02:00
Philipp Hörist b62335eaf5 Add a bookmark sorting method 2018-09-04 23:22:57 +02:00
Philipp Hörist be6c2d4f7a Add XEP-0398 optimizations
- If the server implements XEP-0398 we dont need to add the avatar sha
anymore, the server adds it for us.
- It also means we dont have to query our own avatar from vcard at start
because the server tells us the avatar sha that is published with the inital
presence reflection
2018-09-01 20:40:20 +02:00
Philipp Hörist c68f4f1041 Send all presence through the presence module 2018-09-01 18:06:21 +02:00
Philipp Hörist 7d723d7b98 Fix contact not beeing found after room destroy 2018-09-01 12:44:45 +02:00
Philipp Hörist 527762f726 Fix missing attribute 2018-08-31 06:37:53 +02:00
Sophie Herold 7743c11a50 Unify to use app.get_account_label() 2018-08-30 19:27:40 +02:00
Philipp Hörist dd8dda9b32 Fix displaying MUC subjects with delay tag
Dont print it as "old" conversation, instead add the delay timestamp
at the end of the subject
2018-08-30 19:19:47 +02:00
Philipp Hörist 8a34261137 Parse delay after decryption
Delay could be encrypted with full stanza encryption
2018-08-30 19:19:47 +02:00
Philipp Hörist 931e3f60ba Register modules defined by plugins 2018-08-28 23:03:00 +02:00
Philipp Hörist a087486e45 Windows: Fix gstreamer/farstream plugin paths 2018-08-21 19:21:07 +02:00
Philipp Hörist fb4c5a2351 Call link() on correct object 2018-08-21 18:48:20 +02:00
Philipp Hörist fef8cff254 Display only emojis the font supports
Fixes #9299
2018-08-20 19:18:07 +02:00
André Apitzsch 5d853e902a Time: use classes from standard library 2018-08-19 23:29:05 +02:00
Philipp Hörist 9e3e6f80bb Add JID to VcardReceivedEvent 2018-08-19 16:43:59 +02:00
Philipp Hörist c4dfc0f8f2 Caps: Lower log level 2018-08-19 10:50:51 +02:00
Yann Leboulanger c49f9d60ab fix jingle negotiation from an XMPP point of view 2018-08-18 16:05:33 +02:00
Philipp Hörist bab834814e Use a python 3.5 compat method to scan dirs 2018-08-18 14:06:54 +02:00
Philipp Hörist c8c44f5a78 Fix XMLConsole
- Print the stream header again
- Fix template button, it should not be translated
2018-08-18 12:35:21 +02:00
Philipp Hörist 5feb4becfd Rework Emoji implementation
- Use emoji data from a generated dict based on the offical unicode docs,
this makes it easier to update in the future
- Rewrite the emoji chooser
- Add a search field to the emoji chooser
- The emoji chooser is loaded async
- Update to current Unicode 11 Noto theme
2018-08-17 21:55:42 +02:00
Philipp Hörist 9d5131b8b4 Rework Gajim Theming
- Save all Theme settings to .css instead of the config file
- Add a gajim-dark.css
- Refactor the ThemesWindow
2018-08-16 22:53:33 +02:00
Sophie Herold ee3cc9cbab Reduce number of notifications kept in message tray 2018-08-16 22:48:40 +02:00
Philipp Hörist 2ce78334ca Fix direct MUC invite 2018-08-04 21:41:44 +02:00
Philipp Hörist 043e764896 Make Service Registration a Gtk.Assistant
- Move all xmpp Register methods into the register module
2018-08-04 19:47:57 +02:00
Sophie Herold 99ec800856 Rework History Dialog 2018-08-04 11:04:36 +02:00
Philipp Hörist 560a122ab5 Add error message to change password dialog
- Move register methods to own module
2018-08-01 00:35:42 +02:00
Philipp Hörist 4096ab5db5 Fix detecting oob data 2018-07-31 21:20:02 +02:00
Philipp Hörist 85bc3896ab Handle messages without 'to' correctly 2018-07-30 21:58:22 +02:00
Philipp Hörist 137bf1f831 MAM: Request from last received stanza-id
Record stanza-ids from live messages. If Gajim is started query the
archive from the last received stanza-id
2018-07-29 23:16:13 +02:00
Philipp Hörist dbf891e97c Add missing bookmark dict entry 2018-07-29 22:26:52 +02:00
Philipp Hörist 394d38e663 Add lost server discovery query 2018-07-29 22:16:06 +02:00
Philipp Hörist 80aee95f2e Reset connect_maschine after disconnect on purpose 2018-07-29 19:35:45 +02:00
Philipp Hörist 7584037fc7 Fix typo 2018-07-28 13:32:37 +02:00
Philipp Hörist 2f3d50b13f Fix restoring open chatcontrols after restart 2018-07-27 16:16:23 +02:00
Philipp Hörist 5a6f03dea4 Add connect_maschine()
Add method that sequentially works the steps we have to do
before sending first presence

- Move Delimiter into own module
- Move Metacontacts into own module
2018-07-27 16:01:10 +02:00
Philipp Hörist db77fa1ace Add roster implementation to Gajim 2018-07-26 20:38:00 +02:00
Philipp Hörist 7ad6a28e12 Fix event name 2018-07-26 17:27:56 +02:00
Philipp Hörist cf580c62de Discover httpupload also on the user domain 2018-07-25 19:33:03 +02:00
Philipp Hörist 5d24c9bbdd Move subscription code into presence module 2018-07-23 23:04:07 +02:00
Philipp Hörist 6c4d9ff4c7 Dont disco unnecessary server items 2018-07-23 20:44:57 +02:00
Philipp Hörist ea34959b35 Catch cert error in posh query 2018-07-23 19:51:25 +02:00
Philipp Hörist a943a35a5d Move caps code into own module 2018-07-22 20:49:53 +02:00
Philipp Hörist 07c87a4194 Rewrite discovery code and move it into own module 2018-07-22 16:20:00 +02:00
Philipp Hörist 5ff9e9febf Move dataforms into modules folder 2018-07-22 16:20:00 +02:00
Philipp Hörist afb0306160 Move security labels into own module 2018-07-22 16:19:59 +02:00
Philipp Hörist 78858f7c82 Move more MUC methods into muc module 2018-07-22 16:19:53 +02:00
Philipp Hörist 37f7a80396 Move message handler into own module 2018-07-22 12:33:55 +02:00
Philipp Hörist d4fd621d11 Use misc module to parse correction 2018-07-21 08:50:46 +02:00
Philipp Hörist 9f65bca3d3 Remove traces of forwarding messages (XEP-0146)
This is deprecated because its very insecure and also not needed
anymore because of MAM
2018-07-21 08:50:46 +02:00
Philipp Hörist 54b5dec6c7 Mock bookmarks for zeroconf
Fixes #9256
2018-07-20 23:17:58 +02:00
Philipp Hörist 5ed9768b87 Add JID to log output 2018-07-19 17:15:28 +02:00
Philipp Hörist 3a3b5aff20 Move some dialogs into gtk module 2018-07-18 00:15:46 +02:00
Philipp Hörist bff5f14b92 Move invites into MUC module 2018-07-17 18:38:36 +02:00
Philipp Hörist d65253b021 Move Carbons into own module 2018-07-17 18:38:36 +02:00
Philipp Hörist 6c70b63e34 Fix parsing jid from roster set event 2018-07-17 00:13:12 +02:00
Sophie Herold 67d9b7a7ea Rework Bookmarks Dialog 2018-07-16 19:44:38 +02:00
Philipp Hörist 8fbafcd8fb Register mam handler correctly 2018-07-15 23:58:21 +02:00
Philipp Hörist ebbe06d587 Refactor MAM into own module
- Rework the MAM Preference dialog
- Move MAM Preference dialog into a new gtk module
- Refactor all MAM code into own module
- Refactor the MAM code itself so we can easier test it in the future
- Add a misc module for smaller XEPs and move EME, Last Message Correction
Delay, OOB into it
- Add dedicated module for XEP-0082 Time Profiles
2018-07-15 14:26:00 +02:00
Philipp Hörist 72ee9af79c Set lower log level for password errors 2018-07-14 08:21:43 +02:00
Philipp Hörist 28aada122d Fix it better 2018-07-13 18:09:48 +02:00
Philipp Hörist 45635736bf Fix error if session is None 2018-07-13 18:06:31 +02:00
Philipp Hörist 4cb852914e Fix bookmarks strategy
Strategy is now:

1. Get pubsub if supported
2. Get private storage and merge if we find boomarks we dont have
3. Store bookmarks to both pubsub and privatestorage

The only drawback with this strategy is, that a client that supports
only private storage cant delete bookmarks
2018-07-12 21:34:15 +02:00
Ave O c3a359ba23
Change to gender-neutral alternatives of pronouns 2018-07-11 23:15:56 +03:00
Philipp Hörist d9eb3e6891 Blocking: Raise NodeProcessed 2018-07-09 23:37:13 +02:00
Philipp Hörist 828d74570a Remove print statement 2018-07-09 19:52:57 +02:00
Philipp Hörist c25a4a0aab Fallback to account name when label is missing
Fixes #9236
2018-07-08 21:28:02 +02:00
Philipp Hörist a2d7283e6e Refactor AdHocCommands into own module 2018-07-08 19:39:57 +02:00
Philipp Hörist 78d16c44f3 Register PEP module first
Other modules depend on it
2018-07-08 17:06:12 +02:00
Philipp Hörist bd79fe629f Refactor Privacy and Blocking into own modules 2018-07-08 16:44:14 +02:00
Philipp Hörist 3cfd82b0c2 Fix method call 2018-07-08 10:31:05 +02:00
Philipp Hörist 3a6f667008 Check if we have a nbxmpp Client object
In some cases the XMPPDispatcher which handles the callbacks is not
yet created.
2018-07-07 20:01:47 +02:00
Philipp Hörist e918ac85fe Remove streamhost redirect
After asking around this is a dead feature.
Because servers cannot be sure if clients support redirection, a server
using this feature would essentially risk that his users are not able to
connect at all.
2018-07-07 20:00:09 +02:00
Philipp Hörist af7ac9211d Fix pylint errors in dataforms module 2018-07-07 19:36:24 +02:00
Philipp Hörist 3e4cf4a07d Change nbxmpp event we use for XMLConsole 2018-07-07 18:28:43 +02:00
Philipp Hörist 59428d2f2f Register all available modules automatically 2018-07-07 13:52:44 +02:00
Philipp Hörist 3a3b32249c Fix requesting pubsub node config
Regression from refactoring
2018-07-07 01:49:50 +02:00
Philipp Hörist 09aead3e7f Remove unused imports 2018-07-07 01:49:50 +02:00
Philipp Hörist 4bcdbde2c8 Move httpupload into modules 2018-07-07 01:49:50 +02:00
Philipp Hörist 1e9fb205ee Fix regression from 8b800f46 2018-07-06 23:54:29 +02:00
Sophie Herold 4fa4484dfd Rework JoinGroupchat Dialog 2018-07-06 22:14:32 +02:00
Philipp Hörist 63a27ace61 Use open JoinGroupchat Dialog when browsing MUCs 2018-07-06 21:43:53 +02:00
Philipp Hörist d45fa13ee9 Refactor atom into new module and disable it
Gajim lacks a good UI for microblogging

Fixes #9218
2018-07-06 21:02:06 +02:00
Philipp Hörist 70661b70d3 Rename method to something more appropriate 2018-07-06 20:12:50 +02:00
Philipp Hörist ccb3c2decc Move rest of UserAvatar into new module 2018-07-06 19:55:13 +02:00
Philipp Hörist 0a6b2126b3 Raise NodeProcessed after processing ROSTERX 2018-07-05 23:55:09 +02:00
Philipp Hörist 51e85f14a3 Remove unused code 2018-07-05 21:41:28 +02:00
Philipp Hörist 503ee35bd0 Add message handlers for AUTH and ROSTERX 2018-07-05 21:09:55 +02:00
Philipp Hörist fe3c1b4fbd Refactor UserNickname into own module 2018-07-05 20:20:22 +02:00
Philipp Hörist b04f9af4c5 Fix copy/paste typo 2018-07-05 19:54:32 +02:00
Philipp Hörist 31d6235881 Fix retracting UserTune/UserActivity 2018-07-05 19:38:41 +02:00
Philipp Hörist bbf3a544e8 Refactor UserLocation into own module 2018-07-05 19:38:03 +02:00
Philipp Hörist 14f088c2d9 Refactor UserMood into own module 2018-07-05 19:37:51 +02:00
Philipp Hörist 1712743fd5 Fix typo 2018-07-05 18:14:36 +02:00
Philipp Hörist 73f290b518 Fix incorrect argument 2018-07-05 00:28:09 +02:00
Philipp Hörist 42ccbe7499 Dont fail if modules are not registered
This is for Zeroconf so we dont have to test in GUI always for
account != local

Fixes #9229
2018-07-05 00:16:42 +02:00
Philipp Hörist a4350a812b Refactor UserTune into own module 2018-07-05 00:16:42 +02:00
Philipp Hörist 568c2d93a0 Make new pep module more abstract 2018-07-05 00:16:32 +02:00
Philipp Hörist b7775afd0c Refactor UserActivity and PEP into own modules 2018-07-03 20:00:31 +02:00
Philipp Hörist 2ca0ca38a5 Refactor Pubsub/Bookmarks/UserAvatar into own modules 2018-07-01 22:35:56 +02:00
Philipp Hörist 9c6a8df658 Fix updating room avatar correctly 2018-06-30 20:02:16 +02:00
Philipp Hörist 3b147a8c7f Fix logging arguments 2018-06-30 19:41:03 +02:00
Philipp Hörist 8b800f4646 Refactor VCard code into own modules 2018-06-30 19:32:36 +02:00
Alexander Krotov 7fa4c9e1c2 Spellcheck 2018-06-28 23:37:34 +02:00
Philipp Hörist b0ce012ce3 Remove RC4-SHA because it is insecure
Newer openssl version would not use this even if it was stated in our cipher string
2018-06-28 18:43:15 +02:00
Philipp Hörist ce9af46fc3 Fix join groupchat dialog with multiple accounts
The dialog didnt show the account combobox when activated
via CTRL + J from the Roster

Also add a application action for join groupchat
2018-06-28 00:04:17 +02:00
Philipp Hörist 129f72bf8e Refactor http auth code into own module 2018-06-25 23:47:06 +02:00
Philipp Hörist 8fa1ee4617 Refactor last activity code into own module 2018-06-25 23:00:40 +02:00
Philipp Hörist b74706afcf Refactor roster item exchange code into own module 2018-06-25 22:43:09 +02:00
Philipp Hörist f382ce2a6c Remove unused code 2018-06-25 20:08:48 +02:00
Philipp Hörist c39da015cc Refactor annotations code into own module 2018-06-25 20:04:56 +02:00
Philipp Hörist a0bc6f0155 Refactor search code into own module 2018-06-25 19:34:10 +02:00
Philipp Hörist 6d2a07df70 Remove support for XEP-0090
This is deprecated almost 10 years
2018-06-24 23:33:42 +02:00
Philipp Hörist 7b957a2876 Refactor ping code into own module 2018-06-24 23:33:42 +02:00
Philipp Hörist 81d9e1bcf2 Refactor software version code into own module 2018-06-24 23:33:42 +02:00
Philipp Hörist 1499010394 Refactor entity time code into own module 2018-06-24 23:33:42 +02:00
Philipp Hörist fd137be30f Send cancel IQ if muc configuration is aborted
Fixes #9069
2018-06-23 23:36:26 +02:00
Philipp Hörist 78ebaefaec Dont punycode encode all domain names
RFC7622 3.2.1

... This implies that the string MUST NOT include A-labels ...

Fixes #9211
2018-06-23 20:15:00 +02:00
Philipp Hörist 86eddc2ee9 Remove unused config option log_encrypted_sessions
Fixes #9189
2018-06-23 17:13:57 +02:00
Philipp Hörist 23c302ca70 Fix translation on Windows
Fixes #8658
2018-06-23 17:07:43 +02:00
Philipp Hörist af11aa985b Make sure show is always a string
This is so we hopefully can find some bugs
2018-06-22 20:23:35 +02:00
Alexander Krotov 672f02b3b0 Fix usage of loop variable in socks5.py
Loop seems to be checking whether on_success callback
is already called, but due to wrong variable used
it did nothing.
2018-06-22 08:05:31 +02:00
Alexander Krotov d871dcdcb1 More spelling fixes 2018-06-22 01:47:29 +03:00
Alexander Krotov 1d27ab2254 Spellcheck 2018-06-21 03:05:47 +03:00
Alexander Krotov 22d799a75e Set secure_delete pragma for SQLite3 connections
secure_delete makes SQLite3 overwrite deleted data with zeros, thus actually deleting it from the filesystem.

Ubuntu and FreeBSD enable it by defualt, but some distributions, such as Debian, have it disabled by default, so it is better to set it explicitly.

The performance impact should be negligible as Gajim uses the database rarely.
2018-06-19 19:07:16 +02:00
Philipp Hörist e20f044001 Increase timeframe for duplicate search
A too short timeframe leads to not recognizing duplicates if the server
time differs from the user time. This is only a problem with mam:1

Fixes #8750
2018-06-19 19:05:44 +02:00
Philipp Hörist 3c1490a306 Remove forward message adhoc commands
These commands introduce security concerns because how they interact
with encrypted messages.

With MAM and Carbons installed on nearly every server these Adhoc commands
became not useful anymore
2018-06-17 23:21:29 +02:00
Alexander Krotov 956a420171 Fix docstrings for XEP-0146 commands 2018-06-17 20:09:32 +02:00
André Apitzsch ab3c53bf49 Remove yahoo transport
fixes #9188
2018-06-15 12:19:02 +02:00
Philipp Hörist 1303b89ba1 Dont request vcard more than once per session
Print a warning message if the announced avatar sha differs from the
received one

Fixes #9171
2018-06-05 23:37:10 +02:00
Philipp Hörist ce7892546c Catch error on calling setlocale()
Fixes #9167
2018-06-05 12:02:50 +02:00
Philipp Hörist 631740b66b MUC: Fix voice request
Fixes #9159
2018-06-01 20:58:09 +02:00
Philipp Hörist c5f8fe915a Disable subject change if room doesnt allow it 2018-06-01 20:02:29 +02:00
Philipp Hörist 4bed8ace95 Refactor Notifications
- Use icon names instead of path
- Move PopupNotificationWindow into notify.py
- Make popup class method instead of module method
- Dont use sessions to get control on notification action Fixes #9140
- Add has_focus() method to ChatControlBase
2018-06-01 17:48:05 +02:00
Philipp Hörist 2abbb1e224 Define JID type when searching for duplciates
Fixes #9163
2018-06-01 17:46:54 +02:00
Philipp Hörist a506758ed3 Remove TLEN related transport code/icons
This Messenger shut down and is not available anymore
2018-05-31 21:01:29 +02:00
Philipp Hörist d656428090 Remove MSN related transport code/icons
This Messenger shut down and is not available anymore
2018-05-31 20:29:13 +02:00
Philipp Hörist 38c669b6e1 Remove AIM related transport code/icons
This Messenger shut down and is not available anymore
2018-05-31 20:29:06 +02:00
Philipp Hörist 395d24bee6 Use certifi on MacOS
Python 3.6 does not use the MacOS cert store anymore
2018-05-31 17:35:46 +02:00
André Apitzsch 5e712768cf Add support for flatpak extensions 2018-05-29 08:34:20 +02:00
Philipp Hörist 32b74b459e Remove support for ESessions
Fixes #5294
2018-05-28 18:21:45 +02:00
Philipp Hörist 56fbe32b11 Fix zeroconf txtrecord encoding
Fixes #9146
2018-05-27 21:03:42 +02:00
Philipp Hörist dbbf078229 Determine earlier if we run as Flatpak 2018-05-27 13:45:07 +02:00
Philipp Hörist b749eccf51 Fix idle detection
Fixes #9149
2018-05-27 10:51:57 +02:00
lovetox 2d6e7d2eee Get rid of python-avahi 2018-05-23 11:47:13 +02:00
Philipp Hörist bc24ab470d Fix translation in flatpak build
Fixes #9138
2018-05-23 08:38:09 +02:00
Philipp Hörist d0ec9812a6 Fix Zeroconf
- Port pybonjour code from gajim_0.16 branch
- Fix some other small things that broke zeroconf
2018-05-22 23:38:04 +02:00
Philipp Hörist 7b0cbb7763 Fix detecting language 2018-05-21 21:49:19 +02:00
Philipp Hörist b3162f400c Detect if we run as flatpak
Fixes #9110
2018-05-21 19:17:47 +02:00
Philipp Hörist 714d70cb23 Dont get current version from config 2018-05-21 18:49:06 +02:00
Philipp Hörist 0ea721fbf1 Fix log message
Presence without vcard hash is not invalid
2018-05-21 18:38:47 +02:00
Philipp Hörist 7040ea6b2e Move module calls into init
On Linux ctypes has not attr windll, move it into the __init__()
so it does not get evaluatet on module import
2018-05-21 02:39:29 +02:00
Philipp Hörist c5df74c509 Refactor idle module
- Get rid of sleepy.py, handle everything in idle.py
- Introduce one Monitor class that handles everything
2018-05-21 02:32:33 +02:00
Sophie Herold 2e5d966f1d Support for idle time under GNOME without X11
* Removes use of most global variables
* Adds some some logging
* Removes unused close() method for Xss
2018-05-20 20:45:46 +02:00
Philipp Hörist 3e0557dae6 Dont build menu for Local account 2018-05-20 20:15:08 +02:00
Philipp Hörist 2636e3449f Refactor avatar publishing
- Publish avatars with a size of 200x200
- Add AvatarSize.PUBLISH so we can easily change it in the future
- Dont upscale small avatars on publish
- Use surfaces for displaying the avatar in ProfileWindow and VcardWindow
because this scales correctly on HiDPI screens
2018-05-20 01:28:12 +02:00
Philipp Hörist 117036b872 Init Roster after stream management resume
nbxmpp deletes the roster object on disconnect. Init the roster from db
again on resume.

Fixes #8296
2018-05-18 18:20:30 +02:00
Philipp Hörist 6ed04e2dd2 Simplify generating random int
No need to use SystemRandom() here, as this is not needed for security
purposes
2018-05-17 21:13:37 +02:00
Philipp Hörist 4731e8491b Move signal code into gajim.py
The reason for signal.signal(signal.SIGPIPE, signal.SIG_DFL)

Python ignores SIGPIPE by default ( signal(SIGPIPE, SIG_IGN) )
Write on a socket return then an error 32 EPIPE, which naturally
turns into an exception.

signal.SIG_DFL restores normal UNIX behavior
2018-05-17 20:59:22 +02:00
Philipp Hörist 72df2524e9 Remove check_X509
We dont need this module anymore
2018-05-17 20:12:02 +02:00
Philipp Hörist 3b130db60c Simplify set_i18n_env()
We already determine LANG in initialize_lang()

getdefaultlocale() takes env var LANG into consideration
2018-05-17 20:07:30 +02:00
Philipp Hörist 03aa1db306 Handle LC_ALL=C correctly
We default to 'en' for LANG if LC_ALL=C is set
2018-05-17 20:01:59 +02:00
Philipp Hörist 2a8c0da367 Use i18n module to determine locale 2018-05-17 20:01:59 +02:00
Philipp Hörist 40aa3d808b Remove unused comments
The attributes were removed in 8e09fd92
2018-05-17 20:01:59 +02:00
Andrey Gursky 4f29e2b353 Preserve SSL handshake errors order
Sets are unordered and list with push/pop acts as LIFO, though we need FIFO.
Since the number of elements is tiny, no need to use deque.

Addresses #9120
2018-05-16 19:50:21 +02:00
BBreeziN f13ff8ac68 Fix call to config.get_per() in method that gets account name from jid 2018-05-15 23:39:44 -04:00
Philipp Hörist ffe8ee8068 Return account instead of jid 2018-05-10 13:28:26 +02:00
Philipp Hörist 093ba8dd97 Provide method to get the account name from a jid 2018-05-10 10:53:56 +02:00
Philipp Hörist 2bb5d55c03 Add conversion from account_id to account jid
To use this alias `account_id` with `account`

Example: SELECT account_id as account FROM logs
2018-05-08 19:20:11 +02:00
Philipp Hörist 8b9eb59ee4 Set no-store hint on groupchat chatstates 2018-05-07 18:04:24 +02:00
Philipp Hörist 913634c4c6 Add menu for uploading room avatars 2018-05-06 09:11:32 +02:00
Philipp Hörist c38db84e04 Refactor FileChooserDialogs
Use GtkFileChooserDialog only when we need previews, default to
NativeFileChooser otherwise.

GtkFileChooserDialogs have a long list of issues, so lets only use it
if we gain something from it.

Flatpak should only run NativeFileChoosers because its sandboxed and
this is needed for security purposes. As a result of that, Flatpak Users
dont have image previews in the FileOpenDialogs

Refactor all FileChoosers for a more simple approach when we use them

Add a new SendFileDialog, so we dont have to put widgets into the FileChooser
which forces non-native Dialogs.
2018-05-05 09:22:08 +02:00
Marcin Mielniczuk ad4c1347ff Be more descriptive about the ascii_emoticons configuration option 2018-05-02 20:19:24 +02:00
Philipp Hörist bcf27cb3c1 Support for PKIX over Secure HTTP (POSH)
Fixes #9083
2018-05-01 21:08:26 +02:00
Philipp Hörist c534d3a147 Refactor SSL errors
Dont save fingerprints to config and check certs with our own methods.
We should trust openssl to do all necessary checks.

Self signed certs can be added to cacert.pem and will not show up as
an error until the cert changes.

nbxmpp now saves all ssl errors and passes them, so now we loop over
all errors until all are confirmed or ignored by the user

Also cacerts are now saved in utf-8
2018-05-01 14:03:20 +02:00
Philipp Hörist 06c4ce60b9 Show correct account lable in tooltip
Fixes #9065
2018-04-29 23:47:30 +02:00
Philipp Hörist 56a5d01609 Dont allow plain BOSH by default 2018-04-29 23:34:46 +02:00
Philipp Hörist b8554e3e22 Jingle: Check first if we have a content
Fixes #9094
2018-04-29 23:30:08 +02:00
Philipp Hörist 707599dd86 Dont determine paths at module import time 2018-04-25 21:26:02 +02:00
Philipp Hörist 8c23d5a4b5 Move some imports 2018-04-25 21:24:05 +02:00
Philipp Hörist 105427b8fd Use consistent way to get paths
This lets us now import the app module without setting paths
2018-04-25 20:49:37 +02:00
Philipp Hörist 52cbae69ee Refactor Gajim startup
Remove as much as possible startup code from GtkApplication to stay
more true to our goal to separate GUI from the rest of Gajim
2018-04-25 19:16:38 +02:00
Philipp Hörist e2383fd7a4 Refactor i18n module
- Move everything translation related from gajim.py to i18n.py
2018-04-24 23:03:19 +02:00
Philipp Hörist 21d4d0cb1e Remove unused import / codestyle
Pass args to logging method instead of string formatting
2018-04-24 21:34:53 +02:00
Philipp Hörist e265514d88 Detect dependencys only on demand
This allows us to import the app module without triggering
dependency detection

Also add is_installed() for checking if a dependency is installed and
disable_dependency() in case we dont want to use a dependency
2018-04-24 19:36:33 +02:00
Philipp Hörist 986898f69d Dont check for OpenSSL we require it on install 2018-04-23 23:47:17 +02:00
Philipp Hörist 5ee45b86e9 Refactor database migration
- Move database migration to the logger module
- Dont depend on Gajim version for migration use PRAGMA user_version
- Refactoring of some methods in the logger module
- Dont use cursor object, if there is no reason
- Make some attributes and methods private
2018-04-23 21:27:01 +02:00
Philipp Hörist 4c1bfda48d Fix const imports 2018-04-23 18:32:01 +02:00
Philipp Hörist 4f2033faff Move constants into const module 2018-04-23 18:23:57 +02:00
Philipp Hörist 86bfc81ad3 Remove old unused migration method 2018-04-23 17:34:14 +02:00
Philipp Hörist 3efa731fbf Add stanza_id index also when we create the DB 2018-04-23 00:10:35 +02:00
Philipp Hörist 8306f076b3 Move path creation into configpaths module 2018-04-22 23:12:34 +02:00
Philipp Hörist 188fb85bd0 Move DB creating into logger module 2018-04-22 22:16:17 +02:00
Philipp Hörist efd2ca50c6 Remove unused old migration method 2018-04-22 02:30:34 +02:00
Philipp Hörist 3ad539cbf2 Make sure all config dirs get created
LOG_DB_FOLDER and CACHE_DB_FOLDER are equal to MY_DATA and MY_CACHE
2018-04-22 02:30:08 +02:00
Philipp Hörist 220bf35827 Create some folders only on demand 2018-04-22 00:55:48 +02:00
Philipp Hörist c0c16dbf94 Dont change path names because plugins use them 2018-04-21 21:28:19 +02:00
Philipp Hörist 848c5cbdd0 More refactoring around paths
- Remove old config dir migration
- Remove some unused config paths
- Rewrite configpaths.init()
- Simplify creating paths in check_paths
2018-04-21 21:19:32 +02:00
Philipp Hörist 72e69a59af Fix setting custom config root 2018-04-21 14:47:47 +02:00
Philipp Hörist 4a26ecb12c Refactor configpaths
- init configpaths earlier so logging can access it to store debug logs
- First step for more consistency across Gajim when looking up paths

  Recommended usage for the future:
  app.configpaths.get()
  configpaths.get()
2018-04-21 12:48:57 +02:00
philipp 8e9c040acf Support http:upload:0 2018-04-20 08:35:40 -04:00
Philipp Hörist dadc85bb52 Fix tests 2018-04-19 22:22:04 +02:00
Philipp Hörist 290e761f88 Add support for Room Avatars
- Groupchats promote a vcard hash with presence

Refactoring:

- Dont delete groupchat contacts if they are maximized from the roster
- Roster and GroupchatControl use the same contact object
2018-04-19 22:11:41 +02:00
Philipp Hörist 70a7000d44 Dont be lenient with namespace 2018-04-19 17:59:17 +02:00
Philipp Hörist e3066fb5ca Improve AccountsWindow design
Fixes #8940
2018-04-15 23:36:34 +02:00
Philipp Hörist 93af68f81c Dont show error when receiving invalid avatars
Fixes #9022
2018-04-14 10:34:58 +02:00
Yann Leboulanger 879e03449c fix some py2->py3 missing things. Fixes #9019 2018-04-07 23:06:48 +02:00
Yann Leboulanger 27e45856b0 prevent traceback. Fixes #9054 2018-04-07 22:04:32 +02:00
Philipp Hörist 711f3cbbb0 Encode filenames before sending
Fixes #9039
2018-04-05 19:38:17 +02:00
Philipp Hörist 1b8d76bf9e Add missing return statement 2018-04-04 22:10:34 +02:00
Philipp Hörist f29d57e50b Catch invalid IQ stanzas and log them
Fixes #9044
2018-04-03 19:54:09 +02:00
Philipp Hörist e326aabf5f Decode PGP decrypted messages 2018-03-31 01:18:28 +02:00
Yann Leboulanger c2184aaf8c remove bookmark and close muc when destroying the room. Fixes #8862 2018-03-29 11:01:25 +02:00
Yann Leboulanger a884ba6762 prevent traceback. Fixes #8936 2018-03-29 09:41:40 +02:00
Yann Leboulanger f52e8d889c don't traceback on account deletion. Fixes #8960 2018-03-28 11:36:14 +02:00
Yann Leboulanger a3853f6958 fix string 2018-03-27 15:02:11 +02:00
Philipp Hörist 5794d54d1c Dont print status if it has not changed
Only print the status, if status has changed or the status message

Clients announce there idle-time with presences but adding a idle-time
does not necessarily mean they went from available -> away

Fixes #9001
2018-03-26 23:47:43 +02:00
Philipp Hörist 99b3aebc99 Remove unused imports 2018-03-26 01:06:56 +02:00
Yann Leboulanger faa88819a1 improve some strings 2018-03-25 16:26:29 +02:00
Philipp Hörist 040521397e Dont use invalid sound devices
PulseAudio has devices that are None

Fixes #8797
2018-03-25 00:48:29 +01:00
Philipp Hörist 6207e607a8 Fix NoneType Error
element can be None if there was a error while calling Gst.ElementFactory.make()
2018-03-24 21:57:40 +01:00
Philipp Hörist 0fb19c2b1c Show error message on account registration
Prefer the error message text over the error code
2018-03-24 17:55:32 +01:00
Philipp Hörist 058d3db1b0 Logger: Test for None after fetchone()
fetchone() returns None when nothing is found
len(None) yields a TypeError
2018-03-24 17:13:15 +01:00
Philipp Hörist 77dc975023 Only test if MUCs are on the blacklist 2018-03-24 10:52:16 +01:00
Philipp Hörist 9314a0543b Add non-compliant mam:2 MUCs to blacklist
For MUCs on the blacklist we do a deduplication not depending on
stanza-id

This patch is only for current Prosody 0.10 stable and the mod_mam_muc
module which does not add stanza-id to the messages.

This can be removed once Prosody 0.11 hits or the module is updated
2018-03-24 01:47:03 +01:00
Philipp Hörist 4e1a9db6cc Remove conditional code for nbxmpp < 0.6.3 2018-03-24 00:19:27 +01:00
Philipp Hörist b3e6170e57 Remove cacert.pem
Dont ship cacerts, use certifi on Windows
2018-03-24 00:17:34 +01:00
Yann Leboulanger ba48e4530b don't just ignore when we receive an error to vcard request. Fixes #8965 2018-03-23 22:17:59 +01:00
Philipp Hörist a218864d91 Add stanza to log output in case of an error 2018-03-21 19:53:07 +01:00
Philipp Hörist a5db65703b Fix displaying VCard of unknown contact
In some cases sub can be None

Fixes #8954
2018-03-17 20:37:35 +01:00
Philipp Hörist 52c06cd64f Catch all exceptions when testing Farstream 2018-03-17 12:20:21 +01:00
Philipp Hörist d8777a78aa Fix deleting an account that was never connected
Fixes #8951
2018-03-17 00:20:11 +01:00
Philipp Hörist 956feb7ac4 Deactivate httpupload for zeroconf 2018-03-11 22:12:00 +01:00
Philipp Hörist 1935a4f40e Disable ZeroConf account by default 2018-03-07 20:24:08 +01:00
Yann Leboulanger c40dfe3817 fix traceback at end of file transfer. Fixes #8932 2018-03-06 12:10:37 +01:00
Sebastian Wagner e740d12727 Defer txt record lookup until connection attempt
Don't try to resolve _xmppconnect records for servers before trying to connect.
Prevent warnings from gajim.c.resolver for accounts with "connect on startup" disabled.
2018-03-05 22:55:25 +01:00
Philipp Hörist 882be87a3b Remove old config migrations
No one will ever update from these versions anymore
2018-02-28 22:38:40 +01:00
Philipp Hörist a4bfd2fcbb Add get_contact_strict()
This adds a method that returns only a contact if there is an exact match,
instead of a contact where only the barejid matches.

We need this when we update the Caps of a contact.
2018-02-26 22:24:30 +01:00
Philipp Hörist c6e39309cf Use MessageSentEvent to print to ChatControl
Its later than StanzaMessageOutgoingEvent, this allows encryption
Plugins to not return the encrypted payload immediatly.
For example encrypting may take some time because a password is needed
or the load has to be encrypted in another Thread.
2018-02-26 20:49:01 +01:00
Philipp Hörist 77be67f6a8 Only use fallback duplicate search on MAM < 2 2018-02-25 22:02:39 +01:00
Philipp Hörist 51a4c4b5fd MAM: Display corrected messages on MAM catchup
This shows corrected messages correctly in groupchat when we
receive the messages via MAM
2018-02-25 21:20:38 +01:00
Philipp Hörist c6e7f8628d MAM: Display received mam message in open chats 2018-02-25 21:04:34 +01:00
Philipp Hörist 994244c910 MAM: Check muc#user namespace before we disco
1. Check if the message has the muc#user namespace
2. Check if we have this jid already in the DB
3. Last resort disco the jid
2018-02-22 22:03:55 +01:00
Philipp Hörist f30564c15c Dont notify about PMs from MUCs we are not joined
The server sends us carbons if one of our other resources has
a conversation in a muc we are not joined.
Instead we log the messages silently.
2018-02-22 21:42:49 +01:00
Philipp Hörist 52fa57795a Better emoticon theme fallback strategy
Fallback must be happening in init_emoticon() instead of PreferencesWindow
2018-02-22 00:37:54 +01:00
Philipp Hörist eb3a53c791 Refactor emoticon theme combobox
- Use ComboBoxText, its much simpler
- Add a dedicated method that returns all available themes
- If the configured Theme is not available fallback to font-emoticons
2018-02-21 23:52:53 +01:00
Philipp Hörist 1fbc6a2304 Tag MUC PMs
This gives the server the chance to react accordingly without applying
much logic.
Also it makes it easier for us to recognize MUC PMs in MAM querys
2018-02-21 23:09:30 +01:00
Philipp Hörist 70e0bcc5db Pass jid as string to find_stanza_id() 2018-02-21 23:01:47 +01:00
Philipp Hörist 015d99ea63 Print correct archive jid in log message 2018-02-21 22:21:35 +01:00
Philipp Hörist 0c7f1937cf Fix duplicates for self messages and MUC PMs
Fixes #8812
2018-02-21 22:09:13 +01:00
Philipp Hörist 17fc8ff927 Limit deduplication to correct archive
We limit the search to non-groupchat messages because a stanza id
is only unique within an archive
2018-02-21 19:23:26 +01:00
Yann Leboulanger 4149bcacb9 add index on stanza_id column to speed up de-duplication when syncing logs 2018-02-17 18:37:22 +01:00
Philipp Hörist 877b754ef3 Simplfy writing to config file
- use `with` statement and open() instead of os.open()
- execute run() on dialog, otherwise sys.exit() is called immediatly
2018-02-12 23:39:50 +01:00
Philipp Hörist fb4b262477 Dont use getTimestamp()
getTimestamp() generates always a timestring with a resolution of seconds and
this means time gets always rounded down.
Because we use a resolution of .00000 precision for outgoing messages this
can lead to wrongly sorted messages.
2018-02-12 21:27:55 +01:00
Philipp Hörist f47ea05b79 Read config files with UTF-8 2018-02-10 18:59:34 +01:00
Philipp Hörist 7479bd8bd6 Refactor getting avatars from pubsub
- use SendAndCallForResponse instead of triggering an Event
- validate iq result even more, it didnt print iq errors before
2018-02-08 21:06:23 +01:00
Philipp Hörist 7b1bdc5591 Merge branch 'history-navigation' into 'master'
Add navigation for chat history

See merge request gajim/gajim!202
2018-02-08 17:34:19 +01:00
Philipp Hörist 4bbc6b1972 Fail gracefully on invalid MAM GC Stanza
Fixes #8883
2018-02-07 19:20:19 +01:00
Daniel b0bf74337c Add navigation for chat history 2018-02-07 10:04:56 +01:00
André Apitzsch f1e95825c6 Migrate config for new password identifier + version bump 2018-02-04 17:02:02 +01:00
André Apitzsch 0d37609d8a PasswordStorageManager: remove unused member 2018-02-03 22:13:43 +01:00
André Apitzsch d0f4ebd0bc Use keyring module to handle password storage 2018-02-03 20:32:37 +01:00
Philipp Hörist 232dc1dda0 Scale Avatars for HiDPI Screens 2018-01-29 00:06:31 +01:00
Philipp Hörist c609d3c5ae Merge branch 'removeCmp' into 'master'
Remove cmp_to_key functions

See merge request gajim/gajim!197
2018-01-27 17:27:53 +01:00
Philipp Hörist 36f23c9cf2 Update httpupload action on discovery 2018-01-27 10:55:25 +01:00
André Apitzsch 28749a7989 Remove cmp_to_key functions 2018-01-27 00:21:53 +01:00
Philipp Hörist 7dacd51c1d Add complex caps test 2018-01-26 23:57:32 +01:00
Philipp Hörist 4c545be737 Inlcude account for message deduplication
It was not possible to write with 2 different accounts into the
same MUC
2018-01-25 00:47:00 +01:00
Philipp Hörist 8cdad276bf Fix httpupload when using multiple accounts
Fixes #8865
2018-01-24 17:05:41 +01:00
Bronko 3a3be94aa8 integrate httpupload plugin into gajim core
add new config option 'filetransfer_preference'
add drag and drop support for file upload
2018-01-22 17:29:27 +01:00
André Apitzsch c473fa6110 location_listener: location update notifier requires three parameters
the third parameter contains the location parameter specification
2018-01-19 01:52:58 +01:00
Philipp Hörist 1605b722b7 Merge branch 'fixTest' into 'master'
Fix tests

See merge request gajim/gajim!192
2018-01-19 00:33:43 +01:00