Commit graph

68 commits

Author SHA1 Message Date
Philipp Hörist
f5fe4fd8de Better dedupe MUC history messages 2019-03-11 23:13:11 +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
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
bf87ad5ac8 Import _() instead of using builtin namespace
- Prepare for removing the global installed _() method in builtins
- Sort some imports along the way
2018-10-06 22:38:55 +02:00
Philipp Hörist
34553b6ca7 Add a configurable threshold for MAM in MUC 2018-10-04 21:42:06 +02:00
Philipp Hörist
cb692ae4eb Make SQL INSERT querys more resilient
Specify the column in which we insert otherwise downgrading Gajim is
not possible anymore because the query breaks if we modified the column
count in future
2018-09-19 20:12:24 +02:00
Philipp Hörist
ccc06a04ab Fix bad-whitespace pylint errors 2018-09-18 12:06:01 +02:00
Philipp Hörist
ff6ca57033 Fix no-else-return pylint errors 2018-09-18 10:16:54 +02:00
Philipp Hörist
e8ac644440 Fix unused-variable pylint errors 2018-09-17 21:16:19 +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
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
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
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
André Apitzsch
ab3c53bf49 Remove yahoo transport
fixes #9188
2018-06-15 12:19:02 +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
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
707599dd86 Dont determine paths at module import time 2018-04-25 21:26:02 +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
4f2033faff Move constants into const module 2018-04-23 18:23:57 +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
188fb85bd0 Move DB creating into logger module 2018-04-22 22:16:17 +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 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
d8777a78aa Fix deleting an account that was never connected
Fixes #8951
2018-03-17 00:20:11 +01:00
Philipp Hörist
015d99ea63 Print correct archive jid in log message 2018-02-21 22:21:35 +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
Daniel
b0bf74337c Add navigation for chat history 2018-02-07 10:04:56 +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
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
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
35d2beae74 Logger: only search if ids are available 2017-11-08 22:27:37 +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
0c8d88d372 Ensure that jid_id is created on new accounts 2017-11-02 16:00:18 +01:00
Thilo Molitor
0638cdc690 Fix additional_data in events 2017-11-01 23:14:47 +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
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
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
André Apitzsch
89c7eb6e6a Rename gajim.common.gajim to avoid name conflicts 2017-08-18 20:03:20 +02:00
André Apitzsch
efec098aef Use absolute imports 2017-08-18 19:48:48 +02:00
Philipp Hörist
f3bdb596bd Refactor remove_roster()
- Execute as script to save roundtrips
2017-08-08 18:53:25 +02:00
Philipp Hörist
10b0865291 Refactor set_room_last_message_time()
- Dont depend on get_jid_id(), this saves roundtrips
2017-08-08 18:22:29 +02:00
Philipp Hörist
c53e2b1bb9 Dont try to insert if JID is already in DB
- This is added because even an ignored INSERT raises the
autoincrement value of the table.
This means the jid id gets high really fast.
2017-08-08 18:22:29 +02:00
Philipp Hörist
f88e8d835b Remove old DB methods 2017-08-08 18:22:29 +02:00