Patrick Cloke
bd6dc17221
Replace iteritems/itervalues/iterkeys with native versions. ( #7692 )
2020-06-15 07:03:36 -04:00
Brendan Abolivier
e47e5a2dcd
Incorporate review bits
2020-06-12 15:13:12 +01:00
Brendan Abolivier
ea8f6e611b
Actually act on mark_unread
2020-06-11 15:30:42 +01:00
Amber Brown
7cb8b4bc67
Allow configuration of Synapse's cache without using synctl or environment variables ( #6391 )
2020-05-11 18:45:23 +01:00
Patrick Cloke
509e381afa
Clarify list/set/dict/tuple comprehensions and enforce via flake8 ( #6957 )
...
Ensure good comprehension hygiene using flake8-comprehensions.
2020-02-21 07:15:07 -05:00
Erik Johnston
fa780e9721
Change EventContext to use the Storage class ( #6564 )
2019-12-20 10:32:02 +00:00
Erik Johnston
c2f525a525
Don't call SQLBaseStore methods from outside stores
2019-12-04 16:23:43 +00:00
Amber Brown
020add5099
Update black to 19.10b0 ( #6304 )
...
* update version of black and also fix the mypy config being overridden
2019-11-01 02:43:24 +11:00
Erik Johnston
d0d8a22c13
Quick fix to ensure cache descriptors always return deferreds
2019-10-28 13:33:04 +00:00
Andrew Morgan
4548d1f87e
Remove unnecessary parentheses around return statements ( #5931 )
...
Python will return a tuple whether there are parentheses around the returned values or not.
I'm just sick of my editor complaining about this all over the place :)
2019-08-30 16:28:26 +01:00
Amber Brown
4806651744
Replace returnValue with return ( #5736 )
2019-07-23 23:00:55 +10:00
Amber Brown
32e7c9e7f2
Run Black. ( #5482 )
2019-06-20 19:32:02 +10:00
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
Erik Johnston
e42510ba63
Use new getters
2018-07-23 13:17:22 +01:00
Amber Brown
49af402019
run isort
2018-07-09 16:09:20 +10:00
Amber Brown
754826a830
Merge remote-tracking branch 'origin/develop' into 3218-official-prom
2018-05-28 18:57:23 +10:00
Amber Brown
e987079037
fixes
2018-05-23 13:03:51 -05:00
Amber Brown
53cc2cde1f
cleanup
2018-05-22 17:32:57 -05:00
Amber Brown
fcc525b0b7
rest of the changes
2018-05-21 19:48:57 -05: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
573712da6b
Update comments
2018-02-21 11:29:49 +00:00
Erik Johnston
6ff8c87484
Batch inserts into event_push_actions_staging
2018-02-20 11:33:07 +00:00
Erik Johnston
012e8e142a
Comments
2018-02-16 11:35:01 +00:00
Erik Johnston
4810f7effd
Remove context.push_actions
2018-02-15 15:47:06 +00:00
Erik Johnston
acac21248c
Store push actions in staging area
2018-02-15 15:47:04 +00:00
David Baker
81a5e0073c
pep8
2017-10-10 15:53:34 +01:00
David Baker
ab1bc9bf5f
Don't KeyError if no power_levels event
2017-10-10 15:34:05 +01:00
David Baker
0f1eb3e914
Use notification levels in power_levels
...
Rather than making the condition directly require a specific power
level. This way the level require to notify a room can be configured
per room.
2017-10-10 15:23:00 +01:00
David Baker
c9f034b4ac
There was already a constant for this
...
also update copyright
2017-10-10 11:47:10 +01:00
David Baker
a9f9d68631
More optimisation
2017-10-10 11:38:31 +01:00
David Baker
269af961e9
Make be faster
2017-10-05 13:27:12 +01:00
David Baker
ed80c6b6cc
Add fastpath optimisation
2017-10-05 13:20:22 +01:00
David Baker
fa969cfdde
Support for channel notifications
...
Add condition type to check the sender's power level and add a base
rule using it for @channel notifications.
2017-10-05 12:39:18 +01:00
Erik Johnston
bfde076022
Increase cache hit ratio for push
...
We don't update the cache in all code paths, which causes subsequent
calls to miss the cache
2017-07-14 16:11:26 +01:00
Erik Johnston
8d26385d76
Add more metrics to push rule evaluation
2017-07-13 14:37:30 +01:00
Erik Johnston
f60218ec41
Push: Don't acquire lock unless necessary
2017-07-13 11:23:53 +01:00
Erik Johnston
f502b0dea1
Perf: Don't filter events for push
...
We know the users are joined and we can explicitly check for if they are
ignoring the user, so lets do that.
2017-07-07 14:04:40 +01:00
Erik Johnston
6489455bed
Comment
2017-05-22 16:22:04 +01:00
Erik Johnston
d668caa79c
Remove spurious log level guards
2017-05-22 16:21:06 +01:00
Erik Johnston
7fb80b5eae
Check if current event is a membership event
2017-05-22 15:02:12 +01:00
Erik Johnston
2d17b09a6d
Add debug logging
2017-05-22 15:01:36 +01:00
Erik Johnston
24c8f38784
Comment
2017-05-22 14:59:27 +01:00
Erik Johnston
25f03cf8e9
Use tuple unpacking
2017-05-22 14:58:22 +01:00
Erik Johnston
270e1c904a
Speed up calculating push rules
2017-05-19 16:51:05 +01:00
Erik Johnston
1c1c0257f4
Move invalidation cb to its own structure
2017-05-19 11:44:11 +01:00
Erik Johnston
cafe659f72
Store ActionGenerator in HomeServer
2017-05-19 10:09:56 +01:00
Erik Johnston
72ed8196b3
Don't push users who have left
2017-05-18 17:48:36 +01:00
Erik Johnston
760625acba
Make get_if_app_services_interested_in_user faster
2017-05-18 16:34:44 +01:00
Erik Johnston
c57789d138
Remove size of push get_rules cache
2017-05-18 16:17:23 +01:00
Erik Johnston
056ba9b795
Add comment
2017-05-18 11:45:56 +01:00
Erik Johnston
66d8ffabbd
Faster push rule calculation via push specific cache
...
We add a push rule specific cache that ensures that we can reuse
calculated push rules appropriately when a user join/leaves.
2017-05-17 16:55:40 +01:00
Erik Johnston
78f306a6f7
Revert "Speed up filtering of a single event in push"
...
This reverts commit 421fdf7460
.
2017-05-08 13:07:41 +01:00
Erik Johnston
421fdf7460
Speed up filtering of a single event in push
2017-04-28 09:52:36 +01:00
Erik Johnston
acb58bfb6a
fix up
2017-04-25 15:39:19 +01:00
Erik Johnston
f7181615f2
Don't specify default as dict
2017-04-25 15:22:59 +01:00
Erik Johnston
d9aa645f86
Reduce size of joined_user cache
...
The _get_joined_users_from_context cache stores a mapping from user_id
to avatar_url and display_name. Instead of storing those in a dict,
store them in a namedtuple as that uses much less memory.
We also try converting the string to ascii to further reduce the size.
2017-04-25 14:38:51 +01:00
Erik Johnston
52d12ca782
Add /room/<room_id>/joined_members API
...
This returns the currently joined members in the room with their display
names and avatar urls. This is more efficient than /members for large
rooms where you don't need the full events.
2016-12-08 13:32:07 +00:00
Erik Johnston
6a5ded5988
Ensure we don't mutate the cache of push rules
2016-09-15 09:16:13 +01:00
Erik Johnston
3847fa38c4
Make bulk_get_push_rules_for_room use get_joined_users_from_context cache
2016-09-05 10:02:38 +01:00
Erik Johnston
c10cb581c6
Correctly handle the difference between prev and current state
2016-08-31 14:26:22 +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
Erik Johnston
a3dc1e9cbe
Replace context.current_state with context.current_state_ids
2016-08-25 17:32:22 +01:00
Erik Johnston
f164fd9220
Move _bulk_get_push_rules_for_room to storage layer
2016-08-19 14:29:20 +01:00
Mark Haines
0b2158719c
Remove dead code.
...
Loading push rules now happens in the datastore, so we can remove
the methods that loaded them outside the datastore.
The ``waiting_for_join_list`` in federation handler is populated by
anything, so can be removed.
The ``_get_members_events_txn`` method isn't called from anywhere
so can be removed.
2016-06-07 15:07:11 +01:00
Erik Johnston
6a0afa582a
Load push rules in storage layer, so that they get cached
2016-06-03 11:10:00 +01:00
Erik Johnston
59f2d73522
Remove unnecessary sets
2016-06-03 11:05:45 +01:00
Erik Johnston
9c26b390a2
Only get local users
2016-06-03 11:04:31 +01:00
Erik Johnston
c8285564a3
Use state to calculate get_users_in_room
2016-06-01 15:25:25 +01:00
Erik Johnston
43db0d9f6a
Add get_users_with_read_receipts_in_room cache
2016-06-01 10:54:32 +01:00
Erik Johnston
e5b0bbcd33
Add caches to bulk_get_push_rules*
2016-05-31 13:46:58 +01:00
Mark Haines
7e23476814
move filter_events_for_client out of base handler
2016-05-11 13:42:37 +01:00
David Baker
757e2c79b4
Don't push for everyone who ever sent an RR to the room
2016-04-14 12:02:50 +01:00
David Baker
ed3979df5f
Fix invite pushes
...
* If the event is an invite event, add the invitee to list of user we run push rules for (if they have a pusher etc)
* Move invite_for_me to be higher prio than member events otherwise member events matches them
* Spell override right
2016-04-08 15:29:59 +01:00
David Baker
7e2c89a37f
Make pushers use the event_push_actions table instead of listening on an event stream & running the rules again. Sytest passes, but remaining to do:
...
* Make badges work again
* Remove old, unused code
2016-04-06 15:42:15 +01:00
Mark Haines
5defb25ac6
Use get_users_in_room to count the number of room members rather than using read_receipts
2016-03-22 13:52:45 +00:00
Mark Haines
7076082ae6
Fix relative imports so they work in both py3 and py27
2016-03-08 11:45:50 +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
Mark Haines
b9977ea667
Remove dead code for setting device specific rules.
...
It wasn't possible to hit the code from the API because of a typo
in parsing the request path. Since no-one was using the feature
we might as well remove the dead code.
2016-02-18 16:05:13 +00:00
Erik Johnston
f28cc45183
Pass in current state to push action handler
2016-02-09 16:01:40 +00:00
David Baker
f92fe15897
Merge pull request #523 from matrix-org/dbkr/no_push_unless_notify
...
Better fix for actions with both dont_notify and tweaks
2016-01-22 17:27:25 +00:00
David Baker
3fe8c56736
Better fix for actions with both dont_notify and tweaks
2016-01-22 17:21:58 +00:00
David Baker
60965bd7e5
Revert b4a41aa542
as it's just broken.
2016-01-22 17:21:15 +00:00
David Baker
0e0e441b33
Merge pull request #522 from matrix-org/dbkr/no_push_unless_notify
...
Don't add notifications to the table unless there's actually a 'notify' action
2016-01-22 17:06:52 +00:00
David Baker
b4a41aa542
Don't add notifications to the table unless there's actually a 'notify' action
2016-01-22 16:56:48 +00:00
Erik Johnston
db6e26bb8c
Don't mutate cached values
2016-01-22 16:03:55 +00:00
David Baker
7065b75bfd
Don't crash if a user has no push rule enabled entries
2016-01-22 15:13:44 +00:00
David Baker
52bdd1b834
Overlay the push_rules_enabled map for users, otherwise they won't be able to disable server default rules.
2016-01-22 14:58:19 +00:00
David Baker
746f6e0eb3
'filtered' is a list of zero or 1
2016-01-20 13:44:04 +00:00
David Baker
259d1ecd1d
Don't generate push actions for our own events
2016-01-20 13:24:59 +00:00
Erik Johnston
5a7d1ecffc
Add regex cache. Only caculate push actions for users that have sent read receipts, and are on that server
2016-01-19 16:01:05 +00:00
Erik Johnston
9654ee0848
Return don't break
2016-01-19 14:24:59 +00:00
Erik Johnston
7ecd211163
Except truthy values
2016-01-19 14:22:02 +00:00
Erik Johnston
29c353c553
Don't split at word boundaries, actually use regex
2016-01-18 16:48:17 +00:00
Erik Johnston
d1f56f732e
Use static for const dicts
2016-01-18 15:17:56 +00:00
Erik Johnston
f59b564507
Make notifications go quicker
2016-01-18 14:48:29 +00:00
David Baker
823b679232
more commas
2016-01-07 10:02:47 +00:00
David Baker
c79f221192
Add is_guest flag to users db to track whether a user is a guest user or not. Use this so we can run _filter_events_for_client when calculating event_push_actions.
2016-01-06 11:38:09 +00:00
David Baker
85ca8cb90c
comment typo
2016-01-05 13:32:39 +00:00
David Baker
3051c9d002
Address minor PR issues
2016-01-04 13:39:29 +00:00