diff options
Diffstat (limited to 'synapse/api')
-rw-r--r-- | synapse/api/filtering.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/synapse/api/filtering.py b/synapse/api/filtering.py index 4390d01e38..5287aaa757 100644 --- a/synapse/api/filtering.py +++ b/synapse/api/filtering.py @@ -149,6 +149,9 @@ class FilterCollection(object): "include_leave", False ) + def list_rooms(self): + return self.room_filter.list_rooms() + def timeline_limit(self): return self.room_timeline_filter.limit() @@ -181,6 +184,15 @@ class Filter(object): def __init__(self, filter_json): self.filter_json = filter_json + def list_rooms(self): + """The list of room_id strings this filter restricts the output to + or None if the this filter doesn't list the room ids. + """ + if "rooms" in self.filter_json: + return list(set(self.filter_json["rooms"])) + else: + return None + def check(self, event): """Checks whether the filter matches the given event. |