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
Philipp Hörist
5ef1813405
Fix parsing MAM IQs
...
prosody includes the supplied queryid in the `<fin>` tag, but this is not XEP compliant.
We set the queryid attr so we can match the MAM Messages to our query.
Thats the only purpose, it is not used to identify the iq result at the end of the query.
For that purpose is the `id` attr on the `<iq>` node.
So dont try to parse `queryid` from the `<fin>` tag.
2018-01-17 23:57:49 +01:00
André Apitzsch
06b8eb58e5
Fix tests
2018-01-17 22:36:14 +01:00
Philipp Hörist
84aa61335f
HtmlTextView: Fix some things
...
- Only pass args to logging function
- Dont use 'size' as global var, its again used later in methods
- Fix a missing arg in __parse_font_size_cb()
2018-01-04 18:04:56 +01:00
Philipp Hörist
32e873e6eb
Add ALPN Support
2018-01-03 22:11:42 +01:00
Philipp Hörist
b1d45ec008
Fix config encoding
...
Fixes #8834
2018-01-02 23:55:26 +01:00
Philipp Hörist
b8fd8c8a3f
Catch exception when parsing avatars
...
If the VCard contains a <PHOTO/> tag this is parsed as {'PHOTO': ''}
this throws: TypeError: string indices must be integers
2017-12-29 20:14:59 +01:00
Philipp Hörist
361ad92b26
Remove unused code
2017-12-29 19:08:05 +01:00
Philipp Hörist
d3333ba9d9
Merge branch 'xep_0368' into 'master'
...
Add support for XEP-0368
See merge request gajim/gajim!177
2017-12-27 22:10:26 +01:00
Marc Schink
8e09fd9272
Add support for XEP-0368
...
- Use xmpps-client SRV records
- Use separate host entry per connection type
- Replace 'connection_types' with 'allow_plaintext_connection' option
2017-12-20 18:38:01 +01:00
André Apitzsch
8b960238a6
Zeroconf: fix unexpected keyword argument
...
_update_status() got an unexpected keyword argument 'idle_time'
introduced by 28917aaf56
2017-12-18 22:52:06 +01:00
André Apitzsch
0ffd7b6907
Zeroconf: Fix get_own_jid()
2017-12-18 22:16:22 +01:00
Yann Leboulanger
53a92bdee8
add get_own_jid method to ConnectionZeroconf. Fixes #8809
2017-12-18 14:44:38 +01:00
Philipp Hörist
0959bd44c8
Merge branch 'master' into 'master'
...
Remove incorrect assert
See merge request gajim/gajim!171
2017-12-17 18:01:44 +01:00
Philipp Hörist
1b11d77034
MAM: Dont convert own_jid to string
...
We need it later as JID object
2017-12-17 17:56:11 +01:00
Philipp Hörist
9411ccd827
Fix DB migration for additional_data
2017-12-17 17:10:00 +01:00
Philipp Hörist
dfafedc21f
Remove unused DB fields
...
This field was added but never used
This does not remove the columns from the DB, but doesnt add them
in new migrations.
2017-12-17 12:00:15 +01:00
Philipp Hörist
020d4754df
Add correct DB migration
...
Fixes #8806
2017-12-17 11:55:38 +01:00
Philipp Hörist
410aee7ba0
Fix typo in DB migration
2017-12-17 11:34:54 +01:00
Apromixately
b8fe0e20c3
Remove incorrect assert
...
When a ping reply is received there is probably a connection. Anyway, the
last ping might have been lost and the ids might not match up.
2017-12-16 16:23:44 +01:00
Philipp Hörist
f8ddefb6da
Fix var reference
2017-12-10 22:56:20 +01:00
Philipp Hörist
7815ce19a5
Dont use callbacks when sending messages
...
Using a callback to display a sent message inside the ChatControl means
that all messages we send have to be issued from the GUI layer
(send_message()) if we want them to display in the ChatControl.
This replaces the callback and catches the stanza-message-outgoing event
after it was processed by the core.
This is easier to read/understand than dealing with callbacks and lets
the core issue messages without having to care if a ChatControl is open or not
2017-12-10 18:56:29 +01:00
Philipp Hörist
786ef96400
Port InformationEvent handling to new interface
2017-12-09 00:15:26 +01:00
Philipp Hörist
beb9fa2f17
Merge branch 'location' into 'master'
...
Get location with GeoClue2
Closes #8772
See merge request gajim/gajim!164
2017-12-05 17:10:51 +01:00
André Apitzsch
2aab433932
Get location with GeoClue2
2017-12-04 21:00:20 +01:00
Philipp Hörist
1afd4f0e72
New StartChat Dialog
2017-12-03 23:58:02 +01:00
Philipp Hörist
ace904573a
Add new Join Groupchat dialog
...
- Complete rewrite of the old Groupchat dialog
- Has now a "minimal" mode, which is used if we have all infos for joining except the nickname and if we want to bookmark
- Handle xmpp uris received via command line
2017-12-03 23:58:02 +01:00
Yann Leboulanger
086eeb3dc8
resolve TXT record only for non-zeroconf accounts. Fixes #8792
2017-12-03 14:55:41 +01:00
Yann Leboulanger
eb764fa1af
refactor the way we call SQL
2017-11-30 22:45:21 +01:00
Yann Leboulanger
79ba81825d
better parse of version in config file in case old sha version of git is
...
used (-xyz instead of +xyz)
2017-11-30 17:19:17 +01:00
Yann Leboulanger
46711e1107
Merge branch 'XEP-156' into 'master'
...
implement XEP-0156
Closes #5795
See merge request gajim/gajim!154
2017-11-29 14:25:49 +01:00
Philipp Hörist
b3ef0d6196
Catch ValueError on Gspell import
2017-11-26 01:11:19 +01:00
Philipp Hörist
7692b376ee
Refactor SpellChecker
...
- use Gspell instead of GtkSpell, it seems to have alot less problems
and needs less code
2017-11-26 00:44:50 +01:00
Emmanuel Gil Peyrot
cdf4d0ee69
Also log the offending JID on avatar decoding issue
2017-11-25 17:37:48 +00:00
Philipp Hörist
fc627fc19c
Use appmenu only if system supports it
2017-11-24 18:54:30 +01:00
Philipp Hörist
276daa991c
Correctly split version string
...
We changed the version format
2017-11-24 16:49:30 +01:00
Philipp Hörist
9322ed4405
Show missing dbus message only on Linux
...
Mac and Windows dont have dbus available
2017-11-24 16:28:22 +01:00
Yann Leboulanger
d86c7f47f5
lower debug level for unresolved host.
2017-11-22 14:57:08 +01:00
Philipp Hörist
7ec57e4dab
Lower debug level for malformed avatar stanzas
2017-11-22 14:53:32 +01:00
Yann Leboulanger
149edfe3ef
implement XEP-0156. Fixes #5795
2017-11-20 21:31:29 +01:00
Philipp Hörist
1c895e8983
Persist resource across sessions
...
This was somehow lost once we implemented random resource strings
Although its good that initally a random resource is chosen, it
still should persist across sessions.
This helps to kill zombie client connections on the server because
most servers kill the old session once a new with the same resource
connects
Also dont notify the user about resource conflicts if no custom
resource is set. We should not expect users to know about resources
and what they are used for as long as possible.
2017-11-20 18:10:51 +01:00
Philipp Hörist
c45d0f5b27
Query MUC archives with the correct namespace
2017-11-19 23:45:03 +01:00
Philipp Hörist
7f1776ede9
Improve deduplication
...
A stanza-id is only unique within a specific archive
This adds the archive jid to the query
2017-11-19 19:36:26 +01:00
Philipp Hörist
cac1185a23
Remove log message
2017-11-19 19:36:26 +01:00
Philipp Hörist
44bb8e374d
Request one day history when first joining MUCs
2017-11-19 19:36:26 +01:00
Philipp Hörist
51c0a05ac9
Parse from jid correctly
2017-11-19 19:36:26 +01:00
Philipp Hörist
f57ec2fa34
Move common code out of HistoryWindow
...
- move it into message_archiving.py
2017-11-19 19:36:26 +01:00
Philipp Hörist
40f537cda9
Save last archive timestamps in DB
...
- A Migration from last_mam_id config value is included
2017-11-19 19:36:26 +01:00
Philipp Hörist
95357361bf
Save account_id in logs table
2017-11-19 19:36:25 +01:00
Philipp Hörist
a07470a7d2
Add new DB methods
2017-11-19 19:36:25 +01:00
Philipp Hörist
9759dcf152
Add account_id column to logs table
...
When we search for duplicated stanza-ids we have to do it
in the context of an account
2017-11-19 19:36:25 +01:00
Philipp Hörist
52827c6add
Add new DB table last_archive_message
2017-11-19 19:36:25 +01:00
Philipp Hörist
536a504f69
Remove Support for mam:0
2017-11-19 19:36:25 +01:00
Philipp Hörist
75b1d54b4c
Add MAM for MUCs
2017-11-19 19:36:20 +01:00
Philipp Hörist
a80f41e2bf
Support unpublishing avatars (with XEP-0084)
...
- Add more logging
2017-11-17 19:19:59 +01:00
Philipp Hörist
9f0154ef84
Add caps to first presence
...
According to the XEP, caps hash has to be added to all presences
2017-11-15 22:28:57 +01:00
Philipp Hörist
d5ddbe3766
Add extension point for plugins to add their caps
2017-11-15 22:28:11 +01:00
Philipp Hörist
5236693df9
Parse stanza-id in groupchat correctly
2017-11-11 21:46:00 +01:00