1
0

Compare commits

...

1 Commits

Author SHA1 Message Date
Andrew Morgan
b4586469f9 Add a new push rule knob 2025-08-28 09:41:10 +01:00
4 changed files with 21 additions and 0 deletions

View File

@@ -62,6 +62,7 @@ fn bench_match_exact(b: &mut Bencher) {
false, false,
false, false,
false, false,
false,
) )
.unwrap(); .unwrap();
@@ -109,6 +110,7 @@ fn bench_match_word(b: &mut Bencher) {
false, false,
false, false,
false, false,
false,
) )
.unwrap(); .unwrap();
@@ -156,6 +158,7 @@ fn bench_match_word_miss(b: &mut Bencher) {
false, false,
false, false,
false, false,
false,
) )
.unwrap(); .unwrap();
@@ -203,6 +206,7 @@ fn bench_eval_message(b: &mut Bencher) {
false, false,
false, false,
false, false,
false,
) )
.unwrap(); .unwrap();
@@ -215,6 +219,7 @@ fn bench_eval_message(b: &mut Bencher) {
false, false,
false, false,
false, false,
false,
); );
b.iter(|| eval.run(&rules, Some("bob"), Some("person"), None)); b.iter(|| eval.run(&rules, Some("bob"), Some("person"), None));

View File

@@ -111,6 +111,8 @@ pub struct PushRuleEvaluator {
/// If MSC4306 (thread subscriptions) is enabled. /// If MSC4306 (thread subscriptions) is enabled.
msc4306_enabled: bool, msc4306_enabled: bool,
xxx_enabled: bool,
} }
#[pymethods] #[pymethods]
@@ -130,6 +132,7 @@ impl PushRuleEvaluator {
msc3931_enabled, msc3931_enabled,
msc4210_enabled, msc4210_enabled,
msc4306_enabled, msc4306_enabled,
xxx_enabled,
))] ))]
pub fn py_new( pub fn py_new(
flattened_keys: BTreeMap<String, JsonValue>, flattened_keys: BTreeMap<String, JsonValue>,
@@ -143,6 +146,7 @@ impl PushRuleEvaluator {
msc3931_enabled: bool, msc3931_enabled: bool,
msc4210_enabled: bool, msc4210_enabled: bool,
msc4306_enabled: bool, msc4306_enabled: bool,
xxx_enabled: bool,
) -> Result<Self, Error> { ) -> Result<Self, Error> {
let body = match flattened_keys.get("content.body") { let body = match flattened_keys.get("content.body") {
Some(JsonValue::Value(SimpleJsonValue::Str(s))) => s.clone().into_owned(), Some(JsonValue::Value(SimpleJsonValue::Str(s))) => s.clone().into_owned(),
@@ -162,6 +166,7 @@ impl PushRuleEvaluator {
msc3931_enabled, msc3931_enabled,
msc4210_enabled, msc4210_enabled,
msc4306_enabled, msc4306_enabled,
xxx_enabled,
}) })
} }
@@ -569,6 +574,7 @@ fn push_rule_evaluator() {
true, true,
false, false,
false, false,
false,
) )
.unwrap(); .unwrap();
@@ -600,6 +606,7 @@ fn test_requires_room_version_supports_condition() {
true, true,
false, false,
false, false,
false,
) )
.unwrap(); .unwrap();
@@ -637,6 +644,7 @@ fn test_requires_room_version_supports_condition() {
false, false,
false, false,
false, false,
false,
), ),
None, None,
None, None,

View File

@@ -552,6 +552,7 @@ pub struct FilteredPushRules {
msc4028_push_encrypted_events: bool, msc4028_push_encrypted_events: bool,
msc4210_enabled: bool, msc4210_enabled: bool,
msc4306_enabled: bool, msc4306_enabled: bool,
xxx_enabled: bool,
} }
#[pymethods] #[pymethods]
@@ -567,6 +568,7 @@ impl FilteredPushRules {
msc4028_push_encrypted_events: bool, msc4028_push_encrypted_events: bool,
msc4210_enabled: bool, msc4210_enabled: bool,
msc4306_enabled: bool, msc4306_enabled: bool,
xxx_enabled: bool,
) -> Self { ) -> Self {
Self { Self {
push_rules, push_rules,
@@ -577,6 +579,7 @@ impl FilteredPushRules {
msc4028_push_encrypted_events, msc4028_push_encrypted_events,
msc4210_enabled, msc4210_enabled,
msc4306_enabled, msc4306_enabled,
xxx_enabled,
} }
} }
@@ -631,6 +634,10 @@ impl FilteredPushRules {
return false; return false;
} }
if self.xxx_enabled {
return true;
}
true true
}) })
.map(|r| { .map(|r| {

View File

@@ -479,6 +479,7 @@ class BulkPushRuleEvaluator:
self.hs.config.experimental.msc1767_enabled, # MSC3931 flag self.hs.config.experimental.msc1767_enabled, # MSC3931 flag
self.hs.config.experimental.msc4210_enabled, self.hs.config.experimental.msc4210_enabled,
self.hs.config.experimental.msc4306_enabled, self.hs.config.experimental.msc4306_enabled,
False,
) )
msc4306_thread_subscribers: Optional[FrozenSet[str]] = None msc4306_thread_subscribers: Optional[FrozenSet[str]] = None