mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2024-12-11 08:24:19 -05:00
Incorporate review
This commit is contained in:
parent
5598445655
commit
988d8d6507
@ -144,4 +144,4 @@ class EventContentFields(object):
|
|||||||
"""Fields found in events' content, regardless of type."""
|
"""Fields found in events' content, regardless of type."""
|
||||||
|
|
||||||
# Labels for the event, cf https://github.com/matrix-org/matrix-doc/pull/2326
|
# Labels for the event, cf https://github.com/matrix-org/matrix-doc/pull/2326
|
||||||
Labels = "org.matrix.labels"
|
LABELS = "org.matrix.labels"
|
||||||
|
@ -309,7 +309,7 @@ class Filter(object):
|
|||||||
content = event.get("content", {})
|
content = event.get("content", {})
|
||||||
# check if there is a string url field in the content for filtering purposes
|
# check if there is a string url field in the content for filtering purposes
|
||||||
contains_url = isinstance(content.get("url"), text_type)
|
contains_url = isinstance(content.get("url"), text_type)
|
||||||
labels = content.get(EventContentFields.Labels, [])
|
labels = content.get(EventContentFields.LABELS, [])
|
||||||
|
|
||||||
return self.check_fields(room_id, sender, ev_type, labels, contains_url)
|
return self.check_fields(room_id, sender, ev_type, labels, contains_url)
|
||||||
|
|
||||||
|
@ -1491,7 +1491,7 @@ class EventsStore(
|
|||||||
self._handle_event_relations(txn, event)
|
self._handle_event_relations(txn, event)
|
||||||
|
|
||||||
# Store the labels for this event.
|
# Store the labels for this event.
|
||||||
labels = event.content.get(EventContentFields.Labels)
|
labels = event.content.get(EventContentFields.LABELS)
|
||||||
if labels:
|
if labels:
|
||||||
self.insert_labels_for_event_txn(
|
self.insert_labels_for_event_txn(
|
||||||
txn, event.event_id, labels, event.room_id, event.depth
|
txn, event.event_id, labels, event.room_id, event.depth
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
-- room_id and topoligical_ordering are denormalised from the events table in order to
|
||||||
|
-- make the index work.
|
||||||
CREATE TABLE IF NOT EXISTS event_labels (
|
CREATE TABLE IF NOT EXISTS event_labels (
|
||||||
event_id TEXT,
|
event_id TEXT,
|
||||||
label TEXT,
|
label TEXT,
|
||||||
@ -21,4 +23,8 @@ CREATE TABLE IF NOT EXISTS event_labels (
|
|||||||
PRIMARY KEY(event_id, label)
|
PRIMARY KEY(event_id, label)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
-- This index enables an event pagination looking for a particular label to index the
|
||||||
|
-- event_labels table first, which is much quicker than scanning the events table and then
|
||||||
|
-- filtering by label, if the label is rarely used relative to the size of the room.
|
||||||
CREATE INDEX event_labels_room_id_label_idx ON event_labels(room_id, label, topological_ordering);
|
CREATE INDEX event_labels_room_id_label_idx ON event_labels(room_id, label, topological_ordering);
|
||||||
|
@ -329,7 +329,7 @@ class FilteringTestCase(unittest.TestCase):
|
|||||||
sender="@foo:bar",
|
sender="@foo:bar",
|
||||||
type="m.room.message",
|
type="m.room.message",
|
||||||
room_id="!secretbase:unknown",
|
room_id="!secretbase:unknown",
|
||||||
content={EventContentFields.Labels: ["#fun"]},
|
content={EventContentFields.LABELS: ["#fun"]},
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertTrue(Filter(definition).check(event))
|
self.assertTrue(Filter(definition).check(event))
|
||||||
@ -338,7 +338,7 @@ class FilteringTestCase(unittest.TestCase):
|
|||||||
sender="@foo:bar",
|
sender="@foo:bar",
|
||||||
type="m.room.message",
|
type="m.room.message",
|
||||||
room_id="!secretbase:unknown",
|
room_id="!secretbase:unknown",
|
||||||
content={EventContentFields.Labels: ["#notfun"]},
|
content={EventContentFields.LABELS: ["#notfun"]},
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(Filter(definition).check(event))
|
self.assertFalse(Filter(definition).check(event))
|
||||||
@ -349,7 +349,7 @@ class FilteringTestCase(unittest.TestCase):
|
|||||||
sender="@foo:bar",
|
sender="@foo:bar",
|
||||||
type="m.room.message",
|
type="m.room.message",
|
||||||
room_id="!secretbase:unknown",
|
room_id="!secretbase:unknown",
|
||||||
content={EventContentFields.Labels: ["#fun"]},
|
content={EventContentFields.LABELS: ["#fun"]},
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertFalse(Filter(definition).check(event))
|
self.assertFalse(Filter(definition).check(event))
|
||||||
@ -358,7 +358,7 @@ class FilteringTestCase(unittest.TestCase):
|
|||||||
sender="@foo:bar",
|
sender="@foo:bar",
|
||||||
type="m.room.message",
|
type="m.room.message",
|
||||||
room_id="!secretbase:unknown",
|
room_id="!secretbase:unknown",
|
||||||
content={EventContentFields.Labels: ["#notfun"]},
|
content={EventContentFields.LABELS: ["#notfun"]},
|
||||||
)
|
)
|
||||||
|
|
||||||
self.assertTrue(Filter(definition).check(event))
|
self.assertTrue(Filter(definition).check(event))
|
||||||
|
@ -860,7 +860,7 @@ class RoomMessageListTestCase(RoomBase):
|
|||||||
content={
|
content={
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"body": "with right label",
|
"body": "with right label",
|
||||||
EventContentFields.Labels: ["#fun"],
|
EventContentFields.LABELS: ["#fun"],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -876,7 +876,7 @@ class RoomMessageListTestCase(RoomBase):
|
|||||||
content={
|
content={
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"body": "with wrong label",
|
"body": "with wrong label",
|
||||||
EventContentFields.Labels: ["#work"],
|
EventContentFields.LABELS: ["#work"],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -886,7 +886,7 @@ class RoomMessageListTestCase(RoomBase):
|
|||||||
content={
|
content={
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"body": "with two wrong labels",
|
"body": "with two wrong labels",
|
||||||
EventContentFields.Labels: ["#work", "#notfun"],
|
EventContentFields.LABELS: ["#work", "#notfun"],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -896,7 +896,7 @@ class RoomMessageListTestCase(RoomBase):
|
|||||||
content={
|
content={
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"body": "with right label",
|
"body": "with right label",
|
||||||
EventContentFields.Labels: ["#fun"],
|
EventContentFields.LABELS: ["#fun"],
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -157,7 +157,7 @@ class SyncFilterTestCase(unittest.HomeserverTestCase):
|
|||||||
content={
|
content={
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"body": "with right label",
|
"body": "with right label",
|
||||||
EventContentFields.Labels: ["#fun"],
|
EventContentFields.LABELS: ["#fun"],
|
||||||
},
|
},
|
||||||
tok=tok,
|
tok=tok,
|
||||||
)
|
)
|
||||||
@ -175,7 +175,7 @@ class SyncFilterTestCase(unittest.HomeserverTestCase):
|
|||||||
content={
|
content={
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"body": "with wrong label",
|
"body": "with wrong label",
|
||||||
EventContentFields.Labels: ["#work"],
|
EventContentFields.LABELS: ["#work"],
|
||||||
},
|
},
|
||||||
tok=tok,
|
tok=tok,
|
||||||
)
|
)
|
||||||
@ -186,7 +186,7 @@ class SyncFilterTestCase(unittest.HomeserverTestCase):
|
|||||||
content={
|
content={
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"body": "with two wrong labels",
|
"body": "with two wrong labels",
|
||||||
EventContentFields.Labels: ["#work", "#notfun"],
|
EventContentFields.LABELS: ["#work", "#notfun"],
|
||||||
},
|
},
|
||||||
tok=tok,
|
tok=tok,
|
||||||
)
|
)
|
||||||
@ -197,7 +197,7 @@ class SyncFilterTestCase(unittest.HomeserverTestCase):
|
|||||||
content={
|
content={
|
||||||
"msgtype": "m.text",
|
"msgtype": "m.text",
|
||||||
"body": "with right label",
|
"body": "with right label",
|
||||||
EventContentFields.Labels: ["#fun"],
|
EventContentFields.LABELS: ["#fun"],
|
||||||
},
|
},
|
||||||
tok=tok,
|
tok=tok,
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user