Commit Graph

23 Commits

Author SHA1 Message Date
Damir Jelić
f2415738f3 ui: Don't load the devices from the store.
The device list in the UI thread is replicated so we can show UI clients
the list without the need for a lock.

The previous implementation relied on loading and reloading of the device
list from the store every time an event changed either the devices or their
trust state.

This leads to a couple of ineficiencies leading to timeouts while
waiting on the database lock if a user has a large number of devices.

The new implementation never loads devices in the UI thread from the
database, they get passed through the thread queue by the main thread
which already holds them in memory.
2019-07-01 18:19:30 +02:00
Damir Jelić
9308dfec3f tests: Test that we're sending out user updates from the daemon. 2019-06-19 15:55:40 +02:00
Damir Jelić
dae6084919 tests: Check if the proxy uploaded keys. 2019-06-19 13:38:04 +02:00
Damir Jelić
531d686d8f pantalaimon: Run isort. 2019-06-19 12:07:56 +02:00
Damir Jelić
1311dbdef0 tests: Make the indexstore test async. 2019-06-19 12:01:11 +02:00
Damir Jelić
42e363fafc tests: Test pan client syncs. 2019-06-19 11:57:01 +02:00
Damir Jelić
92267f9fc9 tests: Add initial proxy_tests. 2019-06-19 11:22:47 +02:00
Damir Jelić
315c4bb6f7 tests: Add fixtures for proxydaemon tests. 2019-06-19 11:22:11 +02:00
Damir Jelić
3a1b001244 index: Rewrite the search logic.
This patch moves all the indexing, event storing and searching into a
separate class.

The index and message store are now represented as a single class and
messages are indexed and stored atomically now which should minimize the
chance of store/index inconsistencies.

Messages are now loaded from the store as a single SQL query and the
context for the messages is as well loaded from the store instead of
fetched from the server.

The room state and start/end tokens for the context aren't currently
loaded.
2019-06-14 14:53:25 +02:00
Damir Jelić
b4e60b603a client: Store the history fetcher tasks to the db. 2019-06-12 15:39:08 +02:00
Damir Jelić
383f197e58 client: Store and load sync tokens. 2019-06-11 16:11:53 +02:00
Damir Jelić
a164924b28 tests: Fix the event searching tests. 2019-06-10 16:48:40 +02:00
Damir Jelić
725c043e87 pantalaimon: Initial search support.
This patch adds support for the Matrix search API endpoint.

Events are stored in the pan sqlite database while the indexing is
handled by tanvity.

An tantivy index is created for each pan user. Currently only ordering
by ranking is supported, and all the search options are ignored for now.
2019-06-06 14:25:14 +02:00
Damir Jelić
e5e3f361c2 tests: Remove dbus tests.
The dbus tests require system packages on travis but that limits us to
using the system provided python version which is 3.4 currently.
2019-05-23 15:25:08 +02:00
Damir Jelić
212baad49e store: Remove unused client info storing functionality. 2019-05-21 16:55:07 +02:00
Damir Jelić
a823d85cd8 pantalaimon: Isort the repo. 2019-05-21 16:48:46 +02:00
Damir Jelić
cb38112160 tests: Fix the dbus test. 2019-05-21 13:42:48 +02:00
Damir Jelić
6dc126d03c tests: Add initial dbus tests. 2019-05-14 21:51:03 +02:00
Damir Jelić
e9d0f52a5c pantalaimon: Isort the tree. 2019-05-14 21:50:30 +02:00
Damir Jelić
ea33359daa store: The daemon clients need to be per homeserver. 2019-04-12 17:59:30 +02:00
Damir Jelić
1bbf38e240 daemon: Store and restore client info of our children. 2019-04-11 16:59:37 +02:00
Damir Jelić
51700068b9 pantalaimon: Isort the repo. 2019-04-10 12:25:21 +02:00
Damir Jelić
d0ba6c26da pantalaimon: Add tests. 2019-04-10 12:14:00 +02:00