Amber Brown
b37c472419
Rename async to async_helpers because `async` is a keyword on Python 3.7 ( #3678 )
2018-08-10 23:50:21 +10:00
Neil Johnson
09cf130898
only block on sync where user is not part of the mau cohort
2018-08-09 17:39:12 +01:00
Neil Johnson
69ce057ea6
block sync if auth checks fail
2018-08-09 12:26:27 +01:00
Neil Johnson
e92fb00f32
sync auth blocking
2018-08-08 17:54:49 +01:00
Matthew Hodgson
a75231b507
Deduplicate redundant lazy-loaded members ( #3331 )
...
* attempt at deduplicating lazy-loaded members
as per the proposal; we can deduplicate redundant lazy-loaded members
which are sent in the same sync sequence. we do this heuristically
rather than requiring the client to somehow tell us which members it
has chosen to cache, by instead caching the last N members sent to
a client, and not sending them again. For now we hardcode N to 100.
Each cache for a given (user,device) tuple is in turn cached for up to
X minutes (to avoid the caches building up). For now we hardcode X to 30.
* add include_redundant_members filter option & make it work
* remove stale todo
* add tests for _get_some_state_from_cache
* incorporate review
2018-07-26 22:51:30 +01:00
Matthew Hodgson
1a01a5b964
clarify comment on p_ids
2018-07-24 14:03:15 +01:00
Matthew Hodgson
eb1d911ab7
rather than adding ll_ids, remove them from p_ids
2018-07-24 13:40:49 +01:00
Matthew Hodgson
cd241d6bda
incorporate more review
2018-07-24 12:39:40 +01:00
Matthew Hodgson
254fb430d1
incorporate review
2018-07-23 19:21:20 +01:00
Matthew Hodgson
bcaec2915a
incorporate review
2018-07-19 19:03:50 +01:00
Matthew Hodgson
924eb34d94
add a filtered_types param to limit filtering to specific types
2018-07-19 18:32:02 +01:00
Matthew Hodgson
be3adfc331
merge develop pydoc for _get_state_for_groups
2018-07-19 11:26:04 +01:00
Amber Brown
49af402019
run isort
2018-07-09 16:09:20 +10:00
Matthew Hodgson
6eb861b67f
typo
2018-06-25 17:37:16 +01:00
Matthew Hodgson
28f09fcdd5
Merge branch 'develop' into matthew/filter_members
2018-06-04 00:09:17 +03:00
Matthew Hodgson
5f6122fe10
more comments
2018-06-04 00:08:52 +03:00
Amber Brown
c936a52a9e
Consistently use six's iteritems and wrap lazy keys/values in list() if they're not meant to be lazy ( #3307 )
2018-05-31 19:03:47 +10:00
Richard van der Hoff
34b85df7f5
Update some comments and docstrings in SyncHandler
2018-05-29 22:31:18 +01:00
Matthew Hodgson
a6c8f7c875
add pydoc
2018-05-29 01:09:55 +01:00
Matthew Hodgson
7a6df013cc
merge develop
2018-05-29 00:25:22 +01:00
Adrian Tschira
933bf2dd35
replace some iteritems with six
...
Signed-off-by: Adrian Tschira <nota@notafile.com>
2018-05-19 17:59:26 +02:00
Erik Johnston
d26bec8a43
Add comment to sync as to why code path is split
2018-05-09 15:56:07 +01:00
Erik Johnston
e2accd7f1d
Refactor sync APIs to reuse pagination API
...
The sync API often returns events in a topological rather than stream
ordering, e.g. when the user joined the room or on initial sync. When
this happens we can reuse existing pagination storage functions.
2018-05-09 13:43:39 +01:00
Erik Johnston
c4af4c24ca
Refactor get_recent_events_for_room return type
...
There is no reason to return a tuple of tokens when the last token is
always the token passed as an argument. Changing it makes it consistent
with other storage APIs
2018-05-09 11:55:34 +01:00
Richard van der Hoff
8dc4a6144b
Merge pull request #3107 from NotAFile/py3-bool-nonzero
...
add __bool__ alias to __nonzero__ methods
2018-04-20 15:43:39 +01:00
Adrian Tschira
f63ff73c7f
add __bool__ alias to __nonzero__ methods
...
Signed-off-by: Adrian Tschira <nota@notafile.com>
2018-04-15 20:40:47 +02:00
Richard van der Hoff
b78395b7fe
Refactor ResponseCache usage
...
Adds a `.wrap` method to ResponseCache which wraps up the boilerplate of a
(get, set) pair, and then use it throughout the codebase.
This will be largely non-functional, but does include the following functional
changes:
* federation_server.on_context_state_request: drops use of _server_linearizer
which looked redundant and could cause incorrect cache misses by yielding
between the get and the set.
* RoomListHandler.get_remote_public_room_list(): fixes logcontext leaks
* the wrap function includes some logging. I'm hoping this won't be too noisy
on production.
2018-04-12 13:02:15 +01:00
Richard van der Hoff
b3384232a0
Add metrics for ResponseCache
2018-04-10 23:14:47 +01:00
Matthew Hodgson
b2f2282947
make lazy_load_members configurable in filters
2018-03-19 01:15:13 +00:00
Matthew Hodgson
478af0f720
reshuffle todo & comments
2018-03-19 01:00:12 +00:00
Matthew Hodgson
366f730bf6
only get member state IDs for incremental syncs if we're filtering
2018-03-18 21:40:43 +00:00
Matthew Hodgson
fc5397fdf5
remove debug
2018-03-16 01:44:55 +00:00
Matthew Hodgson
4f0493c850
fix tsm search again
2018-03-16 01:43:37 +00:00
Matthew Hodgson
f7dcc404f2
add state_ids for timeline entries
2018-03-16 01:37:53 +00:00
Matthew Hodgson
5b3b3aada8
simplify timeline_start_members
2018-03-16 01:17:34 +00:00
Matthew Hodgson
3bc5bd2d22
make incr syncs work
2018-03-16 00:52:04 +00:00
Matthew Hodgson
4d0cfef6ee
add copyright to nudge CI
2018-03-14 00:02:20 +00:00
Matthew Hodgson
c9d72e4571
oops
2018-03-13 23:46:45 +00:00
Matthew Hodgson
ccca02846d
make it work
2018-03-13 22:31:41 +00:00
Matthew Hodgson
14a9d2f73d
ensure we always include the members for a given timeline block
2018-03-13 22:03:42 +00:00
Matthew Hodgson
8713365265
typos
2018-03-11 20:10:25 +00:00
Matthew Hodgson
9b334b3f97
WIP experiment in lazyloading room members
2018-03-11 20:01:41 +00:00
Erik Johnston
a56d54dcb7
Fix up log message
2018-03-07 11:55:31 +00:00
Erik Johnston
02a1296ad6
Fix typo
2018-03-07 11:55:31 +00:00
Erik Johnston
8cb44da4aa
Fix race in sync when joining room
...
The race happens when the user joins a room at the same time as doing a
sync. We fetch the current token and then get the rooms the user is in.
If the join happens after the current token, but before we get the rooms
we end up sending down a partial room entry in the sync.
This is fixed by looking at the stream ordering of the membership
returned by get_rooms_for_user, and handling the case when that stream
ordering is after the current token.
2018-03-07 11:55:31 +00:00
Erik Johnston
d4ffe61d4f
Remove ability for AS users to call /events and /sync
...
This functionality has been deprecated for a while as well as being
broken for a while. Instead of fixing it lets just remove it entirely.
See: https://github.com/matrix-org/matrix-doc/issues/1144
2018-03-05 15:44:46 +00:00
Erik Johnston
2a7e9faeec
Do logcontexts outside ResponseCache
2017-10-25 15:21:08 +01:00
David Baker
27955056e0
Merge branch 'develop' into erikj/groups_merged
2017-10-02 16:20:41 +01:00
Erik Johnston
e3edca3b5d
Refactor to speed up incremental syncs
2017-09-25 17:35:39 +01:00
Erik Johnston
3166ed55b2
Fix device list when rejoining room ( #2461 )
2017-09-22 14:44:17 +01:00
Erik Johnston
93e504d04e
Ensure that creator of group sees group down /sync
2017-09-19 11:08:16 +01:00
Erik Johnston
b5feaa5a49
Merge branch 'develop' of github.com:matrix-org/synapse into erikj/groups_merged
2017-09-19 11:07:45 +01:00
Erik Johnston
2d1b7955ae
Don't filter out current state events from timeline
2017-09-18 17:13:03 +01:00
Erik Johnston
3a0cee28d6
Actually hook leave notifs up
2017-09-14 11:49:37 +01:00
Erik Johnston
473700f016
Get left rooms
2017-09-13 15:13:41 +01:00
Erik Johnston
9ce866ed4f
In sync handle device lists for newly joined/left rooms
2017-09-12 16:44:26 +01:00
Erik Johnston
69ef4987a6
Add left section to /keys/changes
2017-09-08 14:44:36 +01:00
Erik Johnston
53cc8ad35a
Send down device list change notif when member leaves/rejoins room
2017-09-07 15:08:39 +01:00
Erik Johnston
d5e32c843f
Correctly add joins to correct segment
2017-07-24 13:31:26 +01:00
Erik Johnston
139fe30f47
Remember to cast to bool
2017-07-20 16:47:35 +01:00
Erik Johnston
c544188ee3
Add groups to sync stream
2017-07-20 16:36:42 +01:00
Erik Johnston
e9aec001f4
Use less DB for device list handling in sync
2017-07-12 10:30:10 +01:00
Erik Johnston
b4f59c7e27
Add count of one time keys to sync stream
2017-05-19 15:47:55 +01:00
Erik Johnston
da146657c9
Comments
2017-03-16 13:04:07 +00:00
Erik Johnston
a158c36a8a
Comment
2017-03-16 11:57:45 +00:00
Erik Johnston
6957bfdca6
Don't recreate so many sets
2017-03-16 11:54:26 +00:00
Erik Johnston
2ccf3b241c
Implement no op for room stream in sync
2017-03-16 11:06:41 +00:00
Erik Johnston
6c82de5100
Format presence events on the edges instead of reformatting them multiple times
2017-03-15 14:27:34 +00:00
Erik Johnston
64d62e41b8
Noop repated delete device inbox calls from /sync
2017-03-10 10:36:43 +00:00
Erik Johnston
a597994fb6
Measure new device list stuff
2017-02-02 18:36:17 +00:00
Erik Johnston
6d6591880e
Wake sync up for device changes
2017-02-01 15:15:16 +00:00
Erik Johnston
252b503fc8
Hook device list updates to replication
2017-01-27 14:31:35 +00:00
Erik Johnston
2367c5568c
Add basic implementation of local device list changes
2017-01-25 14:27:27 +00:00
Richard van der Hoff
edc6a1e4f9
Add some logging for syncing to_device events
...
Attempt to track down the loss of to_device events
(https://github.com/vector-im/riot-web/issues/2711 etc).
2016-12-15 18:16:10 +00:00
Erik Johnston
be14c24cea
Fix rare notifier bug where listeners dont timeout
...
There was a race condition that caused the notifier to 'miss' the
timeout notification, since there were no other checks for the timeout
this caused listeners to get stuck in a loop until something happened.
2016-12-09 15:43:18 +00:00
Kegan Dougal
83bcdcee61
Return early on /sync code paths if a '*' filter is used
...
This is currently very conservative in that it only does this if there is no
`since` token. This limits the risk to clients likely to be doing one-off
syncs (like bridges), but does mean that normal human clients won't benefit
from the time savings here. If the savings are large enough, I would consider
generalising this to just check the filter.
2016-11-22 16:38:35 +00:00
Patrik Oldsberg
9bfc617791
storage/appservice: make appservice methods only relying on the cache synchronous
2016-10-06 15:24:59 +02:00
Mark Haines
65fa37ac5e
Only return new device messages in /sync
2016-09-02 15:50:37 +01:00
Erik Johnston
c8cd87b21b
Comment about message deletion
2016-08-30 11:23:26 +01:00
Erik Johnston
1ee6285905
Fix check
2016-08-30 11:17:46 +01:00
Erik Johnston
68e1a872fd
Noop get_new_messages_for_device if token hasn't changed
2016-08-30 10:58:46 +01:00
Erik Johnston
55fc17cf4b
Merge pull request #1049 from matrix-org/erikj/presence_users_in_room
...
Use state handler instead of get_users_in_room/get_joined_hosts
2016-08-30 10:50:37 +01:00
Erik Johnston
bed10f9880
Use state handler instead of get_users_in_room/get_joined_hosts
2016-08-26 14:54:30 +01:00
Mark Haines
4bbef62124
Merge remote-tracking branch 'origin/develop' into markjh/direct_to_device
2016-08-26 14:35:31 +01:00
Erik Johnston
778fa85f47
Make sync not pull out full state
2016-08-25 18:59:44 +01:00
Mark Haines
e993925279
Add store-and-forward direct-to-device messaging
2016-08-25 17:35:37 +01:00
Erik Johnston
afbf6b33fc
defer.returnValue must not be called within Measure
2016-08-19 18:23:44 +01:00
Erik Johnston
248e6770ca
Cache federation state responses
2016-07-21 10:30:12 +01:00
Erik Johnston
6a0afa582a
Load push rules in storage layer, so that they get cached
2016-06-03 11:10:00 +01:00
Mark Haines
661a540dd1
Deduplicate presence entries in sync ( #818 )
2016-06-02 15:20:28 +01:00
Erik Johnston
faad233ea6
Change short circuit path
2016-05-24 14:27:19 +01:00
Erik Johnston
6900303997
Don't send down all ephemeral events
2016-05-24 11:44:55 +01:00
Erik Johnston
1c5ed2a19b
Only work out newly_joined_users for incremental sync
2016-05-24 11:21:34 +01:00
Erik Johnston
b08ad0389e
Only include non-offline presence in initial sync
2016-05-24 11:15:05 +01:00
Erik Johnston
be2c677386
Spell builder correctly
2016-05-24 10:53:03 +01:00
Erik Johnston
79bea8ab9a
Inline function. Make load_filtered_recents private
2016-05-24 10:22:24 +01:00
Erik Johnston
84f94e4cbb
Add comments
2016-05-24 10:14:53 +01:00
Erik Johnston
137e6a4557
Shuffle things room
2016-05-24 09:50:55 +01:00
Erik Johnston
c0c79ef444
Add back concurrently_execute
2016-05-23 18:21:27 +01:00
Erik Johnston
b5605dfecc
Refactor SyncHandler
2016-05-23 18:08:18 +01:00
Mark Haines
f68eea808a
Move SyncHandler out of the Handlers object
2016-05-16 20:19:26 +01:00
Mark Haines
53e171f345
Merge branch 'markjh/liberate_presence_handler' into markjh/liberate_sync_handler
2016-05-16 20:08:32 +01:00
Mark Haines
80cb9becd8
Remove get_joined_rooms_for_user from RoomMemberHandler
2016-05-16 20:06:55 +01:00
Mark Haines
3b86ecfa79
Move the presence handler out of the Handlers object
2016-05-16 18:56:37 +01:00
Mark Haines
7e23476814
move filter_events_for_client out of base handler
2016-05-11 13:42:37 +01:00
Matthew Hodgson
fe97b81c09
Merge pull request #759 from matrix-org/dbkr/email_notifs
...
Send email notifications for missed messages
2016-05-10 16:30:05 +02:00
Erik Johnston
1f0f5ffa1e
Add bulk fetch storage API
2016-05-05 10:03:15 +01:00
Erik Johnston
a438a6d2bc
Implement basic ignore user
2016-05-04 10:16:46 +01:00
David Baker
424a7f48f8
Run filter_events_for_client
...
so we don't accidentally mail out events people shouldn't see
2016-04-27 17:50:49 +01:00
Mark Haines
89e6839a48
Merge pull request #686 from matrix-org/markjh/doc_strings
...
Use google style doc strings.
2016-04-01 16:20:09 +01:00
Mark Haines
2a37467fa1
Use google style doc strings.
...
pycharm supports them so there is no need to use the other format.
Might as well convert the existing strings to reduce the risk of
people accidentally cargo culting the wrong doc string format.
2016-04-01 16:12:07 +01:00
Erik Johnston
8d73cd502b
Add concurrently_execute function
2016-04-01 14:06:00 +01:00
Erik Johnston
35bb465b86
Filter rooms list before chunking
2016-04-01 13:14:53 +01:00
Mark Haines
191c7bef6b
Deduplicate identical /sync requests
2016-03-24 17:47:31 +00:00
Mark Haines
b7a3be693b
Merge pull request #618 from matrix-org/markjh/pushrule_stream
...
Add a stream for push rule updates
2016-03-04 16:35:08 +00:00
Erik Johnston
125f674eae
Always include kicks and bans in full /sync
2016-03-04 15:27:55 +00:00
Mark Haines
1b4f4a936f
Hook up the push rules stream to account_data in /sync
2016-03-04 14:44:01 +00:00
Patrik Oldsberg
baf056bae8
handlers/sync: style fix, line too long
...
Signed-off-by: Patrik Oldsberg <patrik.oldsberg@ericsson.com>
2016-02-23 15:49:36 +01:00
Patrik Oldsberg
1dcfb201c4
handlers/sync: fix SyncResult not counting account_data change when converting to bool
...
This fixes account_data events not triggering an immediate /sync response
Signed-off-by: Patrik Oldsberg <patrik.oldsberg@ericsson.com>
2016-02-23 00:21:59 +01:00
Richard van der Hoff
f7e3de02ef
Merge pull request #587 from matrix-org/rav/guest_access_after_room_join
...
Allow guest users access to messages in rooms they have joined
2016-02-22 16:36:06 +00:00
Erik Johnston
9e696bd6a3
Remove superfluous call to get_state_at when we already have an event for that stream position
2016-02-22 13:54:46 +00:00
Richard van der Hoff
05aee12652
Merge branch 'develop' into rav/guest_access_after_room_join
2016-02-19 12:00:16 +00:00
Richard van der Hoff
b71ca2b014
Allow guest users access to messages in rooms they have joined
...
There should be no difference between guest users and non-guest users in terms
of access to messages. Define the semantics of the is_peeking argument to
filter_events_for_clients (slightly) better; interpret it appropriately, and
set it correctly from /sync.
2016-02-19 11:41:02 +00:00
Erik Johnston
e5ad2e5267
Merge pull request #582 from matrix-org/erikj/presence
...
Rewrite presence for performance.
2016-02-19 09:37:50 +00:00
Erik Johnston
e5999bfb1a
Initial cut
2016-02-17 15:40:50 +00:00
Erik Johnston
4d54d87c3e
Mitigate against incorrect old state in /sync.
...
There have been reports from the field that servers occasionally have
incorrect notions of what the old state of a room is. This proves
problematic as /sync relies on a correct old state.
This patch makes /sync specifically include in the 'state' key any
current state events that haven't been correctly included.
2016-02-12 11:13:06 +00:00
Erik Johnston
24f00a6c33
Use _simple_select_many for _get_state_group_for_events
2016-02-10 12:57:50 +00:00
Erik Johnston
8e49892b21
Only calculate initial sync for 10 rooms at a time
...
This helps to ensure we don't completely starve other requests.
2016-02-10 11:42:07 +00:00
Erik Johnston
feb294d552
Remove dead code
2016-02-09 14:32:17 +00:00
Erik Johnston
eff12e838c
Don't load all ephemeral state for a room on every sync
2016-02-09 13:55:59 +00:00
Erik Johnston
82631c5f94
Fix unit tests
2016-02-09 13:50:37 +00:00
Erik Johnston
6c558ee8bc
Measure some /sync related things
2016-02-09 11:31:42 +00:00
Erik Johnston
2c1fbea531
Fix up logcontexts
2016-02-08 14:26:45 +00:00
Erik Johnston
c8e4d5de7f
Merge pull request #555 from matrix-org/erikj/logcontext
...
Allowing tagging log contexts
2016-02-03 15:20:00 +00:00
Erik Johnston
d4f72a5bfb
Allowing tagging log contexts
2016-02-03 13:52:27 +00:00
Erik Johnston
771528ab13
Change event_push_actions_rm_tokens schema
2016-02-03 10:50:49 +00:00
Erik Johnston
8a391e33ae
s/get_room_changes_for_user/get_membership_changes_for_user/
2016-02-02 16:12:10 +00:00
Erik Johnston
854ca32f10
Comments
2016-02-01 16:52:27 +00:00
Erik Johnston
fa48020a52
Move state calculations from rest to handler
2016-02-01 15:59:40 +00:00
Erik Johnston
ea320d3464
Don't work out unread_notifs_for_room_id unless needed
2016-01-29 13:34:48 +00:00
Erik Johnston
571a566399
Change load limit params
2016-01-28 14:11:16 +00:00
Erik Johnston
3c6518ddbf
Amalgamate incremental and full sync for user
2016-01-28 14:03:48 +00:00
Erik Johnston
aca3193efb
Use the same path for incremental with gap or without gap
2016-01-27 17:33:27 +00:00
Erik Johnston
b97f6626b6
Add cache to room stream
2016-01-27 17:33:26 +00:00
Erik Johnston
dc2647cd3d
PEP8
2016-01-25 15:48:54 +00:00
Erik Johnston
d59c58bc95
Remove weird stuff
2016-01-25 13:38:53 +00:00
Erik Johnston
4021f95261
Move logic from rest/ to handlers/
2016-01-25 10:10:44 +00:00
Daniel Wagner-Hall
da417aa56d
Allow non-guests to peek on rooms using /events
2016-01-20 15:34:07 +00:00
Erik Johnston
ac2842ff1e
Only compute unread notifications for rooms we send down stream
2016-01-19 17:19:53 +00:00
Erik Johnston
b8518ffe65
Use all_ephemeral_by_room in incremental_sync_with_gap_for_room
2016-01-19 14:26:58 +00:00
Erik Johnston
3adcc4c86a
Return highlight_count in /sync
2016-01-19 11:35:50 +00:00
Erik Johnston
63485b3029
Re-enable urnead notifications
2016-01-18 14:48:30 +00:00
Erik Johnston
bce602eb4e
Use logger not logging
2016-01-14 09:56:26 +00:00
Erik Johnston
2655d61d70
Don't change signature. Return empty list
2016-01-13 17:43:39 +00:00
Erik Johnston
fcb05b4c82
Temporarily disable notification branch
2016-01-13 17:39:58 +00:00
Erik Johnston
70dfe4dc96
Don't include old left rooms
2016-01-12 15:01:56 +00:00
David Baker
c232780081
Merge pull request #456 from matrix-org/store_event_actions
...
Send unread notification counts
2016-01-08 14:47:15 +00:00
Erik Johnston
fcbe63eaad
Use logger not logging
2016-01-07 15:28:17 +00:00
David Baker
442fcc02f7
Merge remote-tracking branch 'origin/develop' into store_event_actions
2016-01-06 17:28:55 +00:00
Mark Haines
4cec90a260
Pass whether the user was a guest to some of the event streams
2016-01-06 16:54:57 +00:00
Mark Haines
392773ccb2
Guest users must be joined to a room to see it in /sync
2016-01-06 16:44:13 +00:00
David Baker
eb03625626
Merge remote-tracking branch 'origin/develop' into store_event_actions
2016-01-05 18:39:50 +00:00
Daniel Wagner-Hall
2ef6de928d
Skip, rather than erroring, invalid guest requests
...
Erroring causes problems when people make illegal requests, because they
don't know what limit parameter they should pass.
This is definitely buggy. It leaks message counts for rooms people don't
have permission to see, via tokens. But apparently we already
consciously decided to allow that as a team, so this preserves that
behaviour.
2016-01-05 18:12:37 +00:00
Daniel Wagner-Hall
cfd07aafff
Allow guests to upgrade their accounts
2016-01-05 18:01:18 +00:00
Erik Johnston
acb19068d0
Return /sync when something under the 'leave' key has changed
2016-01-05 14:49:06 +00:00
David Baker
d74c6ace24
comma
2016-01-04 15:32:00 +00:00
David Baker
f1b67730fa
Add unread_notif_count in incremental_sync_with_gap
2016-01-04 14:50:36 +00:00
David Baker
c914d67cda
Rename event-actions to event_push_actions as per PR request
2016-01-04 14:05:37 +00:00
David Baker
d2a92c6bde
Fix merge fail with anon access stuff
2015-12-22 18:25:04 +00:00
David Baker
140a50f641
Merge remote-tracking branch 'origin/develop' into store_event_actions
2015-12-22 17:23:35 +00:00
David Baker
5645d9747b
Add some comments to areas that could be optimised.
2015-12-22 17:19:22 +00:00
Mark Haines
0ee0138325
Include the list of bad room ids in the error
2015-12-22 15:49:32 +00:00
Mark Haines
251aafccca
Use a list comprehension
2015-12-22 14:03:24 +00:00
Mark Haines
cdd04f7055
Hook up read receipts and typing notifications for guest access
2015-12-22 11:59:55 +00:00
Mark Haines
c3fff251a9
Allow guest access to /sync
2015-12-22 11:21:03 +00:00
Mark Haines
45a9e0ae0c
Allow guest access if the user provides a list of rooms in the filter
2015-12-22 10:25:46 +00:00
David Baker
c061b47c57
Merge remote-tracking branch 'origin/develop' into store_event_actions
2015-12-21 15:30:26 +00:00
David Baker
091c545c4f
pep8
2015-12-21 10:14:57 +00:00
David Baker
413d0d6a24
Make unread notification count sending work: put the correct count in incremental syncs too, where necessary, and fix silly bugs like only select the event actions for that user...
2015-12-18 17:47:00 +00:00
David Baker
42ad49f5b7
still very WIP, but now sends unread_notifications_count in the room object on sync (only actually corrrect in a full sync: hardcoded to 0 in incremental syncs).
2015-12-16 18:42:09 +00:00
Mark Haines
1ee7280c4c
Do the /sync in parallel accross the rooms like /initialSync does
2015-12-11 16:48:20 +00:00
Mark Haines
660dee94af
Only include the archived rooms if a include_leave flag in set in the filter
2015-12-04 17:32:09 +00:00
Mark Haines
95f30ecd1f
Add API for setting account_data globaly or on a per room basis
2015-12-01 18:41:32 +00:00
Mark Haines
1c960fbb80
s/private_user_data/account_data/
2015-11-18 15:31:04 +00:00
Richard van der Hoff
fddedd51d9
Fix a few race conditions in the state calculation
...
Be a bit more careful about how we calculate the state to be returned by
/sync. In a few places, it was possible for /sync to return slightly later
state than that represented by the next_batch token and the timeline. In
particular, the following cases were susceptible:
* On a full state sync, for an active room
* During a per-room incremental sync with a timeline gap
* When the user has just joined a room. (Refactor check_joined_room to make it
less magical)
Also, use store.get_state_for_events() (and thus the existing stategroups) to
calculate the state corresponding to a particular sync position, rather than
state_handler.compute_event_context(), which recalculates from first principles
(and tends to miss some state).
Merged from PR https://github.com/matrix-org/synapse/pull/372
2015-11-13 10:39:09 +00:00
Richard van der Hoff
5ab4b0afe8
Make handlers.sync return a state dictionary, instead of an event list.
...
Basically this moves the process of flattening the existing dictionary into a
list up to rest.client.*, instead of doing it in handlers.sync. This simplifies
a bit of the code in handlers.sync, but it is also going to be somewhat
beneficial in the next stage of my hacking on SPEC-254.
Merged from PR #371
2015-11-13 10:35:01 +00:00
Richard van der Hoff
5dea4d37d1
Update some comments
...
Add a couple of type annotations, docstrings, and other comments, in the
interest of keeping track of what types I have.
Merged from pull request #370 .
2015-11-13 10:31:15 +00:00
Richard van der Hoff
c7db2068c8
Don't fiddle with results returned by event sources
...
Overwriting hashes returned by other methods is poor form.
Fixes: SYN-516
2015-11-09 18:09:46 +00:00
Mark Haines
c4135d85e1
SYN-513: Include updates for rooms that have had all their tags deleted
2015-11-09 14:53:08 +00:00
Daniel Wagner-Hall
ca2f90742d
Open up /events to anonymous users for room events only
...
Squash-merge of PR #345 from daniel/anonymousevents
2015-11-05 14:32:26 +00:00
Mark Haines
33b3e04049
Merge branch 'develop' into daniel/removesomelies
...
Conflicts:
synapse/notifier.py
2015-11-04 16:01:00 +00:00
Mark Haines
a3bfef35fd
Merge branch 'develop' into markjh/v2_sync_receipts
...
Conflicts:
synapse/handlers/sync.py
2015-11-03 17:31:17 +00:00
Mark Haines
2657140c58
Include read receipts in v2 sync
2015-11-02 17:54:04 +00:00
Mark Haines
57be722c46
Include room tags in v2 /sync
2015-11-02 16:23:15 +00:00
Daniel Wagner-Hall
771ca56c88
Remove more unused parameters
2015-11-02 15:31:57 +00:00
Daniel Wagner-Hall
192241cf2a
Remove unused arguments and code
2015-11-02 15:10:59 +00:00
Mark Haines
d58edd98e9
Update the other place check_joined_room is called
2015-10-30 11:15:37 +00:00
Mark Haines
5cf22f0596
Don't mark newly joined room timelines as limited in an incremental sync
2015-10-29 19:58:51 +00:00
Richard van der Hoff
c79c4f9b14
Implement full_state incremental sync
...
A hopefully-complete implementation of the full_state incremental sync, as
specced at https://github.com/matrix-org/matrix-doc/pull/133 .
This actually turns out to be a relatively simple modification to the initial
sync implementation.
2015-10-26 18:47:18 +00:00
Mark Haines
5201c66108
Merge branch 'develop' into markjh/v2_sync_typing
...
Conflicts:
synapse/handlers/sync.py
2015-10-21 15:48:34 +01:00
Mark Haines
d63a0ca34b
Doc string for the SyncHandler.typing_by_room method
2015-10-21 15:45:37 +01:00
Mark Haines
e3d75f564a
Include banned rooms in the archived section of v2 sync
2015-10-21 11:15:48 +01:00
Mark Haines
7be06680ed
Include typing events in initial v2 sync
2015-10-20 16:36:20 +01:00
Mark Haines
51d03e65b2
Fix pep8
2015-10-19 17:48:58 +01:00
Mark Haines
68b7fc3e2b
Add rooms that the user has left under archived in v2 sync.
2015-10-19 17:26:18 +01:00
Erik Johnston
366af6b73a
Amalgamate _filter_events_for_client
2015-10-16 14:52:48 +01:00
Mark Haines
a059760954
Merge pull request #305 from matrix-org/markjh/v2_sync_api
...
Update the v2 sync API to work as specified in the current spec.
2015-10-14 13:56:23 +01:00
Mark Haines
c185c1c413
Fix v2 sync polling
2015-10-14 13:16:53 +01:00
Erik Johnston
858634e1d0
Remove unused room_id arg
2015-10-14 09:31:20 +01:00
Mark Haines
cacf0688c6
Add a get_invites_for_user method to the storage to find out the rooms a user is invited to
2015-10-13 14:08:38 +01:00
Mark Haines
54414221e4
Include invites in incremental sync
2015-10-13 11:43:12 +01:00
Mark Haines
ab9cf73258
Include invited rooms in the initial sync
2015-10-13 11:03:48 +01:00
Mark Haines
956509dfec
Start spliting out the rooms into joined and invited in v2 sync
2015-10-13 10:24:51 +01:00
Mark Haines
586beb8318
Update the filters to match the latest spec.
...
Apply the filter the 'timeline' and 'ephemeral' keys of rooms.
Apply the filter to the 'presence' key of a sync response.
2015-10-12 16:54:58 +01:00
Mark Haines
dfef2b41aa
Update the v2 room sync format to match the current v2 spec
2015-10-08 15:17:43 +01:00
Mark Haines
471555b3a8
Move the rooms out into a room_map mapping from room_id to room.
2015-10-05 16:39:36 +01:00
Mark Haines
f31014b18f
Start updating the sync API to match the specification
2015-10-01 17:53:07 +01:00
Daniel Wagner-Hall
825f0875bc
Fix up one more reference
2015-08-25 16:37:37 +01:00
Erik Johnston
daa01842f8
Don't get apservice interested rooms in RoomHandler.get_joined_rooms_for_users
2015-08-19 13:46:03 +01:00
Erik Johnston
7b0e797080
Fix _filter_events_for_client
2015-08-12 17:05:24 +01:00
Erik Johnston
f7e2f981ea
Use list comprehension instead of filter
2015-08-12 16:01:10 +01:00
Erik Johnston
dc8399ee00
Remove debug loggers
2015-08-11 11:30:59 +01:00
Erik Johnston
1b994a97dd
Fix application of ACLs
2015-08-11 10:41:40 +01:00
Erik Johnston
4d6cb8814e
Speed up event filtering (for ACL) logic
2015-08-04 09:32:23 +01:00
Erik Johnston
fb47c3cfbe
Rename key and values for m.room.history_visibility. Support 'invited' value
2015-07-06 13:05:52 +01:00
Erik Johnston
400894616d
Respect m.room.history_visibility in v2_alpha sync API
2015-07-03 14:51:01 +01:00
Mark Haines
3edd2d5c93
Fix v2 sync, update the last_notified_ms only if there was an active listener
2015-05-14 11:25:30 +01:00
Erik Johnston
8e28db5cc9
Change room handlers get_rooms_for_user to get_joined_rooms_for_user. This uses the a storage api that is cached.
2015-03-09 16:43:09 +00:00
Mark Haines
84a769cdb7
Fix code-style
2015-02-10 17:58:36 +00:00
Erik Johnston
d94f682a4c
During room intial sync, only calculate current state once.
2015-02-09 17:41:29 +00:00
Mark Haines
55a186485c
SYN-258: get_recent_events_for_room only accepts stream tokens, convert the topological token to a stream token before passing it to get_recent_events_for_room
2015-02-06 15:58:40 +00:00
Mark Haines
0b1cc7cc0b
Return empty list rather than None when there are no emphemeral events for a room
2015-01-30 16:56:13 +00:00
Mark Haines
017dfaef4c
Add doc string for __nonzero__ overrides for sync results, raise not implemented if the client attempts to do a gapless sync
2015-01-30 15:52:05 +00:00
Mark Haines
8fe39a0311
Check if the user has joined the room between incremental syncs
2015-01-30 13:38:34 +00:00
Mark Haines
4a67834bc8
Pass client info to the sync_config
2015-01-30 11:50:15 +00:00
Mark Haines
8498d348d8
Fix token formatting
2015-01-30 11:42:09 +00:00
Mark Haines
e97de6d96a
Filter the recent events before applying the limit when doing an initial sync
2015-01-30 11:35:20 +00:00
Mark Haines
22dd1cde2d
Filter the recent events before applying the limit when doing an incremental sync with a gap
2015-01-30 11:32:35 +00:00
Mark Haines
ece828a7b7
Update todo for the filtering on sync
2015-01-29 18:15:24 +00:00
Mark Haines
4ad45f2582
Fix indent
2015-01-29 16:41:49 +00:00
Mark Haines
722b65f461
Move typing notifs to an "emphermal" event list on the room object
2015-01-29 16:41:21 +00:00
Mark Haines
cc42d3f907
Fix check for empty room update
2015-01-29 16:27:38 +00:00
Mark Haines
4d9dd9bdc0
Fix v2 initial sync
2015-01-29 16:23:03 +00:00
Mark Haines
e016f4043b
Use get_room_events_stream to get changes to the rooms if the number of changes is small
2015-01-29 14:40:28 +00:00
Mark Haines
e3e72b8c5c
Remove typing TODO
2015-01-29 03:35:25 +00:00
Mark Haines
3dbce6f4a5
Add typing notifications to sync
2015-01-29 03:33:51 +00:00
Mark Haines
e020574d65
Fix Formatting
2015-01-27 20:19:36 +00:00
Mark Haines
b19cf6a105
Wait for events if the incremental sync is empty and a timeout is given
2015-01-27 20:09:52 +00:00
Mark Haines
a56008842b
Start implementing incremental initial sync
2015-01-27 16:24:22 +00:00
Mark Haines
436513068d
Start implementing the non-incremental sync portion of the v2 /sync API
2015-01-26 18:53:31 +00:00