Use homeserver URL field also as a filter field
This commit is contained in:
@@ -84,6 +84,8 @@ class Backend:
|
||||
- `("<user_id>", "<room_id>", "filtered_members")`:
|
||||
See `models.special_models.FilteredMembers` docstring
|
||||
|
||||
- `("filtered_homeservers")`:
|
||||
See `models.special_models.FilteredHomeservers` docstring
|
||||
|
||||
clients: A `{user_id: MatrixClient}` dict for the logged-in clients
|
||||
we managed. Every client is logged to one matrix account.
|
||||
|
@@ -6,7 +6,9 @@ from typing import Dict
|
||||
|
||||
from . import SyncId
|
||||
from .model import Model
|
||||
from .special_models import AllRooms, FilteredMembers, MatchingAccounts
|
||||
from .special_models import (
|
||||
AllRooms, FilteredMembers, FilteredHomeservers, MatchingAccounts,
|
||||
)
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -36,6 +38,8 @@ class ModelStore(UserDict):
|
||||
model = AllRooms(self["accounts"])
|
||||
elif key == "matching_accounts":
|
||||
model = MatchingAccounts(self["all_rooms"])
|
||||
elif key == "filtered_homeservers":
|
||||
model = FilteredHomeservers()
|
||||
elif is_tuple and len(key) == 3 and key[2] == "filtered_members":
|
||||
model = FilteredMembers(user_id=key[0], room_id=key[1])
|
||||
else:
|
||||
|
@@ -115,3 +115,14 @@ class FilteredMembers(FieldSubstringFilter):
|
||||
|
||||
def accept_source(self, source: Model) -> bool:
|
||||
return source.sync_id == (self.user_id, self.room_id, "members")
|
||||
|
||||
|
||||
class FilteredHomeservers(FieldSubstringFilter):
|
||||
"""Filtered list of public Matrix homeservers."""
|
||||
|
||||
def __init__(self) -> None:
|
||||
super().__init__(sync_id="filtered_homeservers", fields=("id",))
|
||||
|
||||
|
||||
def accept_source(self, source: Model) -> bool:
|
||||
return source.sync_id == "homeservers"
|
||||
|
Reference in New Issue
Block a user