Commit graph

178 commits

Author SHA1 Message Date
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
Philipp Hörist
947106bb66 Catch more errors on vCard request 2017-11-09 20:57:03 +01:00
Philipp Hörist
6e91a05590 vCard: Handle IQ error and change logging level 2017-11-08 23:58:25 +01:00
Philipp Hörist
35d2beae74 Logger: only search if ids are available 2017-11-08 22:27:37 +01:00
Philipp Hörist
47f4838c7c Fix typo and logging arg 2017-11-07 22:56:15 +01:00
Philipp Hörist
d4fdf0d7c1 Shorten search intervall for MAM messages 2017-11-07 20:39:45 +01:00
Philipp Hörist
7f1a839e77 Deduplicate GC and MAM Messages based on stanza-id
- Add methods to determine the unique/stable id
- Write the id to the stanza_id DB field
- Add method to deduplicate based on the unique/stable id
2017-11-07 20:39:36 +01:00
Philipp Hörist
46926e71d1 Remove old message duplicate code
- Calculating so many hashes for each Message is quite expensive
- It hides our own implementation bugs, like when we retrieve history
from a MUC with wrong timestamps, or on rejoin. We never know about it
because the Messages are dropped.
- It should not be necessary anymore. The original problem was a bug
in nbxmpp which triggered mass resending of old messages.
2017-11-07 20:39:36 +01:00
Philipp Hörist
8c8b491846 ServerInfo: Show if features are disabled by user
- Show new Symbol if a feature is available but not enabled
- Add this info to the tooltip
2017-11-06 23:04:49 +01:00
Philipp Hörist
3c823d307d Save oob data also on MAM Messages
- add get_oob_data() so we can use it on more than one event
- also remove a forgotten print call
2017-11-04 13:51:12 +01:00
Philipp Hörist
20d5ea90e7 Store oob data into DB
Right now oob data is merged into the message text and stored into the DB.
If we load this message from the DB we cannot know anymore if and which
parts of the text was oob data.

Use the additional_data api to store oob data into the DB instead of
altering the original message text.

This lets us decide later on if and which data we want to display, even
on history replays. Also plugins can use the data.
2017-11-03 20:36:53 +01:00
Philipp Hörist
4c45c186c4 Pass additional_data to groupchats 2017-11-03 16:33:34 +01:00
Philipp Hörist
0c8d88d372 Ensure that jid_id is created on new accounts 2017-11-02 16:00:18 +01:00
Philipp Hörist
3bf3ddebfe Merge branch 'master' into 'master'
Fix additional_data in events

See merge request 
2017-11-01 23:44:43 +01:00
Thilo Molitor
0638cdc690 Fix additional_data in events 2017-11-01 23:14:47 +01:00
Philipp Hörist
f397e1b7cb Rename OptionType.BOOL to VALUE 2017-11-01 12:25:19 +01:00
Philipp Hörist
1b9c5066f5 Add Option to hide Gajim on pressing close
This also adds that Gajim gets present if Gajim is launched a second time
2017-10-31 17:33:32 +01:00
Philipp Hörist
0490414079 Fix saving MUC-PMs
If the JID is not in the DB we need a type to insert
2017-10-29 00:37:05 +02:00
Philipp Hörist
970d6f8c3f New style for ChatControl
- Move ActionBar into HeaderMenu
- Make Design of ChatControl look cleaner
- Hide the Roster in Groupchats per default
- Add Button to hide/show Roster in Groupchats
- Move Groupchat topic into popover
- Display Avatars on the right side of the ChatControl and status on the
left
- Add a default Avatar for contacts that have none
2017-10-26 22:52:20 +02:00
Philipp Hörist
398ad0eed8 Fix removing avatar sha from DB
the account name was passed instead of the account jid
2017-10-22 20:12:26 +02:00
Philipp Hörist
b95759dfb8 Logger: Refactor insert_jid()
- make it use get_jid_id() and return the jid_id
2017-10-22 20:12:26 +02:00
Philipp Hörist
accef11c93 Logger: Get rid of old jids list
Use _jid_ids dict instead
2017-10-22 20:12:26 +02:00
Philipp Hörist
1c7369229e MUC: Save last message time after each message 2017-10-22 20:12:25 +02:00
Philipp Hörist
0aa07522fb Logger: Refactor get_jid_id()
- Cache jid_id so we save on DB querys
2017-10-22 20:12:21 +02:00
Philipp Hörist
2c7861bc1d Groupchat: Dont update avatar on offline presence 2017-10-19 15:54:49 +02:00
Philipp Hörist
3a6e1ac9fc Catch exception for invalid avatars 2017-10-17 20:36:27 +02:00
Philipp Hörist
1f0cc2b665 Fix bindtextdomain not available on MacOS 2017-10-17 16:28:56 +02:00
Philipp Hörist
f234722456 Correctly pass authentication mechs to nbxmpp 2017-10-16 17:04:35 +02:00
Philipp Hörist
ed764789f1 Show blocked contacts as offline 2017-10-15 21:34:42 +02:00
Philipp Hörist
29cf416da4 Send Presence probe on unblock 2017-10-15 21:34:32 +02:00
Philipp Hörist
2446c7e3ed Refactor Blocking List
Fixes 
2017-10-15 18:03:41 +02:00
Philipp Hörist
f22fa200ea Return IQ result on blocking push 2017-10-15 15:53:28 +02:00
Philipp Hörist
2e9de7702f Remove discovery of generic pubsub support
We use PubSub only on our account jid, this use case is what PEP
was made for. If PEP is discovered we know that certain PubSub
features are supported, see: https://xmpp.org/extensions/xep-0163.html#defaults

The current check for <feature var='http://jabber.org/protocol/pubsub'/>
is pretty useless, as it just tells us that there is a PubSub implementation
but not much about the features. Only `publish` and `subscribe` are MUST
in XEP-0060 which is not enough for our needs.

If there is ever need to discover a generic PubSub implementation
that is not PEP we should check for all the PubSub features we need
instead of only for <feature var='http://jabber.org/protocol/pubsub'/>
2017-10-15 01:56:52 +02:00
Philipp Hörist
64d3bf63cf Discover PEP on the account jid
see: https://xmpp.org/extensions/xep-0163.html#support
2017-10-15 00:52:34 +02:00
Philipp Hörist
fcf15fcaf2 Bookmarks: Remove invalid publish option 2017-10-14 00:13:19 +02:00
Philipp Hörist
dd4a80054d Discover PublishOptions also if PubSub is not discovered
PEP supports a subset of PubSub and can also support publish options
2017-10-14 00:13:19 +02:00
Philipp Hörist
ac281533f5 Get Pubsub bookmarks also if PEP is supported 2017-10-14 00:13:19 +02:00
Philipp Hörist
e79af35e9c Refactor store_bookmarks()
- Add logging
- Move Node building code into own methods
2017-10-14 00:13:13 +02:00
Philipp Hörist
4379c2d014 Execute handler only for the correct account 2017-10-08 22:29:15 +02:00
Philipp Hörist
1d5665632a Print malformed pubsub avatar stanzas 2017-10-08 14:32:59 +02:00
Philipp Hörist
1b90f75b17 Fix missing conn attr 2017-10-08 14:21:40 +02:00
Philipp Hörist
fec3fe9605 Fix db migration 2017-10-08 14:03:37 +02:00
Philipp Hörist
ed6278aeb3 Move Presence code into ConnectionHandlers 2017-10-08 11:26:33 +02:00
Philipp Hörist
21db50bbaa Move IQ Handler into ConnectionHandlers 2017-10-08 11:26:33 +02:00
Philipp Hörist
a01cdbf271 Refactor Avatars
- Add support for Pubsub Avatars
- Dont poll for vCard Updates, only use XEP-0153
- Dont cache vCards
- Store the avatar SHA of roster contacts in the DB
- Store the current SHA of each contact in the Contacts Object
- Move some code into the ConnectionVcard Class
2017-10-08 11:26:28 +02:00
Philipp Hörist
68f13788ed Add avatar_sha field to Cache DB 2017-10-08 11:25:49 +02:00