diff options
author | Erik Johnston <erik@matrix.org> | 2017-07-07 14:04:40 +0100 |
---|---|---|
committer | Erik Johnston <erik@matrix.org> | 2017-07-07 14:04:40 +0100 |
commit | f502b0dea14ea07bad1e1e0f5a6d00f19df1c6c0 (patch) | |
tree | 790b0ff43d9a926105bcd4e64cd02583234c2c1e /synapse/storage/account_data.py | |
parent | Merge pull request #2342 from matrix-org/erikj/pusher_pool_instantiate (diff) | |
download | synapse-f502b0dea14ea07bad1e1e0f5a6d00f19df1c6c0.tar.xz |
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.
Diffstat (limited to 'synapse/storage/account_data.py')
-rw-r--r-- | synapse/storage/account_data.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/synapse/storage/account_data.py b/synapse/storage/account_data.py index aa84ffc2b0..ff14e54c11 100644 --- a/synapse/storage/account_data.py +++ b/synapse/storage/account_data.py @@ -308,3 +308,16 @@ class AccountDataStore(SQLBaseStore): " WHERE stream_id < ?" ) txn.execute(update_max_id_sql, (next_id, next_id)) + + @cachedInlineCallbacks(num_args=2, cache_context=True, max_entries=5000) + def is_ignored_by(self, ignored_user_id, ignorer_user_id, cache_context): + ignored_account_data = yield self.get_global_account_data_by_type_for_user( + "m.ignored_user_list", ignorer_user_id, + on_invalidate=cache_context.invalidate, + ) + if not ignored_account_data: + defer.returnValue(False) + + defer.returnValue( + ignored_user_id in ignored_account_data.get("ignored_users", {}) + ) |