Commit Graph

223 Commits

Author SHA1 Message Date
Damir Jelić
1ad2a3af28 daemon: Add access control headers to the search endpoint.
These headers are important for riot to be able to use pan's search
endpoint instead of the default Homeserver endpoint. It fails to search
using pan with CORS errors.
2019-06-12 15:34:08 +02:00
Damir Jelić
a2d6f3cc84 client: Fetch room members before the first encrytped send. 2019-06-12 15:33:27 +02:00
Damir Jelić
383f197e58 client: Store and load sync tokens. 2019-06-11 16:11:53 +02:00
Damir Jelić
2fc738dc20 client: Change the initial sync to contain full state.
Fetching the full state with the initial sync is important because we
don't store any room state locally.

Since we don't store any sync token we are getting the full state
anyways. But once we do this change will be crucial for encryption to
work correctly.
2019-06-11 15:00:35 +02:00
Damir Jelić
8c3cfbc0dd client: Fetch old room messages if there was a limited room timeline.
This patch adds the ability to fetch the whole room history. Note that
this is still incomplete as it not fetch the whole history if it gets
interrupted.

Another deficiency is that it always tries to start fetching room
history after a restart even though we know that it doesn't need to do
so.
2019-06-11 13:59:34 +02:00
Damir Jelić
c7ca5d9851 pantalaimon: Mypy fixes. 2019-06-11 11:24:37 +02:00
Damir Jelić
5b58294a95 pantalaimon: Isort the tree. 2019-06-11 11:24:18 +02:00
Damir Jelić
a164924b28 tests: Fix the event searching tests. 2019-06-10 16:48:40 +02:00
Damir Jelić
1e3d891a57 client: Add the ability to order the search by recency. 2019-06-10 16:12:45 +02:00
Damir Jelić
88dbd2000a index: Change the index format.
Tantivy allows search results to be ordered by arbitrary index fields as
long as they are a fast field and have the FastValue trait implemented.
This trait is only for u64 and i64 fields implemented.

To order the the search results by recency we need to add a unsigned
field that stores the server timestamp of the message.
2019-06-10 15:56:05 +02:00
Damir Jelić
818db73a48 daemon: Handle invalid order by fields for the search. 2019-06-10 15:55:37 +02:00
Damir Jelić
8927bb0c90 client: Fix the search response format. 2019-06-10 15:53:19 +02:00
Damir Jelić
71e672a431 client: Make the room messages callback more specific. 2019-06-10 15:52:22 +02:00
Damir Jelić
1db93a731f client: Add the ability to add the context and state to search results. 2019-06-07 11:59:53 +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ć
9444e540df man: Move the man folder under the docs folder. 2019-05-25 12:47:53 +02:00
Damir Jelić
5718596f77 Merge branch 'matthew/macos' 2019-05-24 22:37:24 +02:00
Matthew Hodgson
d185875d91 typo 2019-05-24 21:34:05 +01:00
Matthew Hodgson
4d268f639a add pan GIF 2019-05-24 21:28:43 +01:00
Matthew Hodgson
043b2fa3df yet more voodoo 2019-05-24 17:41:37 +01:00
Matthew Hodgson
71ecd229ff dark magic runes 2019-05-24 16:53:57 +01:00
Matthew Hodgson
b3b2a35bfd macOS runes 2019-05-24 16:09:12 +01:00
Damir Jelić
6c91466537 man: Add the man pages in the markdown format. 2019-05-24 16:00:26 +02:00
Damir Jelić
6a578c95b6 README: Update the readme to the current pantalaimon version. 2019-05-24 14:00:33 +02:00
Damir Jelić
160fbbaf98 panctl: Add a version option. 2019-05-24 13:48:39 +02:00
Damir Jelić
f8820c0e73 pantalaimon: Add a version option. 2019-05-24 13:48:21 +02:00
Damir Jelić
2a2babee7b man: Add a panctl man page. 2019-05-24 13:36:04 +02:00
Damir Jelić
7ed29e8691 man: Add a daemon man page. 2019-05-24 13:35:49 +02:00
Damir Jelić
cc76a8159b panctl: Add a help command. 2019-05-24 11:33:02 +02:00
Damir Jelić
1faa787090 man: Rename pantalaimon.conf.5. 2019-05-23 18:23:42 +02:00
Damir Jelić
f779326f7e man: Pantalaimon is a daemon so put it in the system admin section. 2019-05-23 18:22:49 +02:00
Damir Jelić
5b9372d7ce setup.py: Add pyGObject to the dependencies. 2019-05-23 18:18:58 +02:00
Damir Jelić
eadbba876d travis: Remove gobject as a dependency. 2019-05-23 18:18:24 +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ć
3772322a1d setup.py: Add dbus-python to the dependencies. 2019-05-23 14:46:48 +02:00
Damir Jelić
4fe5e7d584 pantalaimon: Isort fixes. 2019-05-23 14:46:29 +02:00
Damir Jelić
ce89b1e407 pantalaimon: Abort the daemon gracefully on keyring errors. 2019-05-23 13:50:02 +02:00
Damir Jelić
e597969a21 config: Make the OS keyring optional. 2019-05-23 13:34:59 +02:00
Damir Jelić
32c17421e2 man: Document the OS notifications setting. 2019-05-23 12:29:32 +02:00
Damir Jelić
a25ab95f62 config: Allow notifications to be disabled in the config. 2019-05-23 12:00:39 +02:00
Damir Jelić
bfcfdd61ea ui: Add OS notifications. 2019-05-22 16:40:15 +02:00
Damir Jelić
186560dd4f daemon: Connect the queue for unverified devices messages while sending. 2019-05-22 11:51:49 +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ć
c85f82423d main: Remove spurious print. 2019-05-21 16:47:56 +02:00
Damir Jelić
d0d0e80931 daemon: Fix a typo in a variable name. 2019-05-21 16:47:31 +02:00
Damir Jelić
42a4391597 pantalaimon: Remove an unused variable and fix a whitespace issue. 2019-05-21 16:46:50 +02:00
Damir Jelić
d5b1ef27a9 pantalaimon: Add license headers. 2019-05-21 16:46:22 +02:00
Damir Jelić
3d87b468b2 daemon: Ask the homeserver about unknown access tokens.
This patch changes the way clients register to pantalaimon. If there is
already a pan client running for a given user ID clients can now avoid
logging in.

Pantalaimon checks with the homeserver if the access token
is valid and for a user that we already have a pan client running.

This also removes the need to remember access tokens that don't belong
to a pan client.

This partially fixes #14.
2019-05-21 16:25:23 +02:00
Damir Jelić
a6bc5de523 client: Don't verify devices automatically anymore. 2019-05-21 13:43:05 +02:00