Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Remove the is_room_mention support.
Browse files Browse the repository at this point in the history
  • Loading branch information
clokep committed Feb 10, 2023
1 parent a7e64a8 commit 5296f39
Show file tree
Hide file tree
Showing 7 changed files with 8 additions and 53 deletions.
4 changes: 0 additions & 4 deletions rust/benches/evaluator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ fn bench_match_exact(b: &mut Bencher) {
flattened_keys,
false,
BTreeSet::new(),
false,
10,
Some(0),
Default::default(),
Expand Down Expand Up @@ -94,7 +93,6 @@ fn bench_match_word(b: &mut Bencher) {
flattened_keys,
false,
BTreeSet::new(),
false,
10,
Some(0),
Default::default(),
Expand Down Expand Up @@ -143,7 +141,6 @@ fn bench_match_word_miss(b: &mut Bencher) {
flattened_keys,
false,
BTreeSet::new(),
false,
10,
Some(0),
Default::default(),
Expand Down Expand Up @@ -192,7 +189,6 @@ fn bench_eval_message(b: &mut Bencher) {
flattened_keys,
false,
BTreeSet::new(),
false,
10,
Some(0),
Default::default(),
Expand Down
7 changes: 0 additions & 7 deletions rust/src/push/evaluator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,6 @@ pub struct PushRuleEvaluator {
has_mentions: bool,
/// The user mentions that were part of the message.
user_mentions: BTreeSet<String>,
/// True if the message is a room message.
room_mention: bool,

/// The number of users in the room.
room_member_count: u64,
Expand Down Expand Up @@ -112,7 +110,6 @@ impl PushRuleEvaluator {
flattened_keys: BTreeMap<String, SimpleJsonValue>,
has_mentions: bool,
user_mentions: BTreeSet<String>,
room_mention: bool,
room_member_count: u64,
sender_power_level: Option<i64>,
notification_power_levels: BTreeMap<String, i64>,
Expand All @@ -132,7 +129,6 @@ impl PushRuleEvaluator {
body,
has_mentions,
user_mentions,
room_mention,
room_member_count,
notification_power_levels,
sender_power_level,
Expand Down Expand Up @@ -270,7 +266,6 @@ impl PushRuleEvaluator {
false
}
}
KnownCondition::IsRoomMention => self.room_mention,
KnownCondition::ContainsDisplayName => {
if let Some(dn) = display_name {
if !dn.is_empty() {
Expand Down Expand Up @@ -494,7 +489,6 @@ fn push_rule_evaluator() {
flattened_keys,
false,
BTreeSet::new(),
false,
10,
Some(0),
BTreeMap::new(),
Expand Down Expand Up @@ -526,7 +520,6 @@ fn test_requires_room_version_supports_condition() {
flattened_keys,
false,
BTreeSet::new(),
false,
10,
Some(0),
BTreeMap::new(),
Expand Down
13 changes: 0 additions & 13 deletions rust/src/push/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -305,8 +305,6 @@ pub enum KnownCondition {
RelatedEventMatch(RelatedEventMatchCondition),
#[serde(rename = "org.matrix.msc3952.is_user_mention")]
IsUserMention,
#[serde(rename = "org.matrix.msc3952.is_room_mention")]
IsRoomMention,
ContainsDisplayName,
RoomMemberCount {
#[serde(skip_serializing_if = "Option::is_none")]
Expand Down Expand Up @@ -636,17 +634,6 @@ fn test_deserialize_unstable_msc3952_user_condition() {
));
}

#[test]
fn test_deserialize_unstable_msc3952_room_condition() {
let json = r#"{"kind":"org.matrix.msc3952.is_room_mention"}"#;

let condition: Condition = serde_json::from_str(json).unwrap();
assert!(matches!(
condition,
Condition::Known(KnownCondition::IsRoomMention)
));
}

#[test]
fn test_deserialize_custom_condition() {
let json = r#"{"kind":"custom_tag"}"#;
Expand Down
1 change: 0 additions & 1 deletion stubs/synapse/synapse_rust/push.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ class PushRuleEvaluator:
flattened_keys: Mapping[str, SimpleJsonValue],
has_mentions: bool,
user_mentions: Set[str],
room_mention: bool,
room_member_count: int,
sender_power_level: Optional[int],
notification_power_levels: Mapping[str, int],
Expand Down
4 changes: 0 additions & 4 deletions synapse/push/bulk_push_rule_evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -400,7 +400,6 @@ async def _action_for_event_by_user(
mentions = event.content.get(EventContentFields.MSC3952_MENTIONS)
has_mentions = self._intentional_mentions_enabled and isinstance(mentions, dict)
user_mentions: Set[str] = set()
room_mention = False
if has_mentions:
# mypy seems to have lost the type even though it must be a dict here.
assert isinstance(mentions, dict)
Expand All @@ -410,8 +409,6 @@ async def _action_for_event_by_user(
user_mentions = set(
filter(lambda item: isinstance(item, str), user_mentions_raw)
)
# Room mention is only true if the value is exactly true.
room_mention = mentions.get("room") is True

evaluator = PushRuleEvaluator(
_flatten_dict(
Expand All @@ -420,7 +417,6 @@ async def _action_for_event_by_user(
),
has_mentions,
user_mentions,
room_mention,
room_member_count,
sender_power_level,
notification_levels,
Expand Down
9 changes: 8 additions & 1 deletion tests/push/test_bulk_push_rule_evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,14 @@ def test_user_mentions(self) -> None:
)
)

@override_config({"experimental_features": {"msc3758_exact_event_match": True, "msc3952_intentional_mentions": True}})
@override_config(
{
"experimental_features": {
"msc3758_exact_event_match": True,
"msc3952_intentional_mentions": True,
}
}
)
def test_room_mentions(self) -> None:
"""Test the behavior of an event which includes invalid room mentions."""
bulk_evaluator = BulkPushRuleEvaluator(self.hs)
Expand Down
23 changes: 0 additions & 23 deletions tests/push/test_push_rule_evaluator.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,6 @@ def _get_evaluator(
*,
has_mentions: bool = False,
user_mentions: Optional[Set[str]] = None,
room_mention: bool = False,
related_events: Optional[JsonDict] = None,
) -> PushRuleEvaluator:
event = FrozenEvent(
Expand All @@ -160,7 +159,6 @@ def _get_evaluator(
_flatten_dict(event),
has_mentions,
user_mentions or set(),
room_mention,
room_member_count,
sender_power_level,
cast(Dict[str, int], power_levels.get("notifications", {})),
Expand Down Expand Up @@ -221,27 +219,6 @@ def test_user_mentions(self) -> None:
# Note that invalid data is tested at tests.push.test_bulk_push_rule_evaluator.TestBulkPushRuleEvaluator.test_mentions
# since the BulkPushRuleEvaluator is what handles data sanitisation.

def test_room_mentions(self) -> None:
"""Check for room mentions."""
condition = {"kind": "org.matrix.msc3952.is_room_mention"}

# No room mention shouldn't match.
evaluator = self._get_evaluator({}, has_mentions=True)
self.assertFalse(evaluator.matches(condition, None, None))

# Room mention should match.
evaluator = self._get_evaluator({}, has_mentions=True, room_mention=True)
self.assertTrue(evaluator.matches(condition, None, None))

# A room mention and user mention is valid.
evaluator = self._get_evaluator(
{}, has_mentions=True, user_mentions={"@another:test"}, room_mention=True
)
self.assertTrue(evaluator.matches(condition, None, None))

# Note that invalid data is tested at tests.push.test_bulk_push_rule_evaluator.TestBulkPushRuleEvaluator.test_mentions
# since the BulkPushRuleEvaluator is what handles data sanitisation.

def _assert_matches(
self, condition: JsonDict, content: JsonMapping, msg: Optional[str] = None
) -> None:
Expand Down

0 comments on commit 5296f39

Please sign in to comment.