Merge pull request #537 from matrix-org/erikj/cache_filters
Cache user filters.
This commit is contained in:
commit
f3af1840cb
|
@ -15,6 +15,8 @@
|
|||
from synapse.api.errors import SynapseError
|
||||
from synapse.types import UserID, RoomID
|
||||
|
||||
import ujson as json
|
||||
|
||||
|
||||
class Filtering(object):
|
||||
|
||||
|
@ -149,6 +151,9 @@ class FilterCollection(object):
|
|||
"include_leave", False
|
||||
)
|
||||
|
||||
def __repr__(self):
|
||||
return "<FilterCollection %s>" % (json.dumps(self._filter_json),)
|
||||
|
||||
def get_filter_json(self):
|
||||
return self._filter_json
|
||||
|
||||
|
|
|
@ -16,12 +16,13 @@
|
|||
from twisted.internet import defer
|
||||
|
||||
from ._base import SQLBaseStore
|
||||
from synapse.util.caches.descriptors import cachedInlineCallbacks
|
||||
|
||||
import simplejson as json
|
||||
|
||||
|
||||
class FilteringStore(SQLBaseStore):
|
||||
@defer.inlineCallbacks
|
||||
@cachedInlineCallbacks(num_args=2)
|
||||
def get_user_filter(self, user_localpart, filter_id):
|
||||
def_json = yield self._simple_select_one_onecol(
|
||||
table="user_filters",
|
||||
|
|
|
@ -382,19 +382,20 @@ class FilteringTestCase(unittest.TestCase):
|
|||
"types": ["m.*"]
|
||||
}
|
||||
}
|
||||
user = UserID.from_string("@" + user_localpart + ":test")
|
||||
|
||||
filter_id = yield self.datastore.add_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
user_localpart=user_localpart + "2",
|
||||
user_filter=user_filter_json,
|
||||
)
|
||||
event = MockEvent(
|
||||
event_id="$asdasd:localhost",
|
||||
sender="@foo:bar",
|
||||
type="custom.avatar.3d.crazy",
|
||||
)
|
||||
events = [event]
|
||||
|
||||
user_filter = yield self.filtering.get_user_filter(
|
||||
user_localpart=user_localpart,
|
||||
user_localpart=user_localpart + "2",
|
||||
filter_id=filter_id,
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue