mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-07-26 13:05:17 -04:00
Port the push rule classes to Rust. (#13768)
This commit is contained in:
parent
c802ef1411
commit
42d261c32f
14 changed files with 930 additions and 615 deletions
|
@ -30,9 +30,8 @@ from typing import (
|
|||
|
||||
from synapse.api.errors import StoreError
|
||||
from synapse.config.homeserver import ExperimentalConfig
|
||||
from synapse.push.baserules import FilteredPushRules, PushRule, compile_push_rules
|
||||
from synapse.replication.slave.storage._slaved_id_tracker import SlavedIdTracker
|
||||
from synapse.storage._base import SQLBaseStore, db_to_json
|
||||
from synapse.storage._base import SQLBaseStore
|
||||
from synapse.storage.database import (
|
||||
DatabasePool,
|
||||
LoggingDatabaseConnection,
|
||||
|
@ -51,6 +50,7 @@ from synapse.storage.util.id_generators import (
|
|||
IdGenerator,
|
||||
StreamIdGenerator,
|
||||
)
|
||||
from synapse.synapse_rust.push import FilteredPushRules, PushRule, PushRules
|
||||
from synapse.types import JsonDict
|
||||
from synapse.util import json_encoder
|
||||
from synapse.util.caches.descriptors import cached, cachedList
|
||||
|
@ -72,18 +72,25 @@ def _load_rules(
|
|||
"""
|
||||
|
||||
ruleslist = [
|
||||
PushRule(
|
||||
PushRule.from_db(
|
||||
rule_id=rawrule["rule_id"],
|
||||
priority_class=rawrule["priority_class"],
|
||||
conditions=db_to_json(rawrule["conditions"]),
|
||||
actions=db_to_json(rawrule["actions"]),
|
||||
conditions=rawrule["conditions"],
|
||||
actions=rawrule["actions"],
|
||||
)
|
||||
for rawrule in rawrules
|
||||
]
|
||||
|
||||
push_rules = compile_push_rules(ruleslist)
|
||||
push_rules = PushRules(
|
||||
ruleslist,
|
||||
)
|
||||
|
||||
filtered_rules = FilteredPushRules(push_rules, enabled_map, experimental_config)
|
||||
filtered_rules = FilteredPushRules(
|
||||
push_rules,
|
||||
enabled_map,
|
||||
msc3786_enabled=experimental_config.msc3786_enabled,
|
||||
msc3772_enabled=experimental_config.msc3772_enabled,
|
||||
)
|
||||
|
||||
return filtered_rules
|
||||
|
||||
|
@ -845,7 +852,7 @@ class PushRuleStore(PushRulesWorkerStore):
|
|||
user_push_rules = await self.get_push_rules_for_user(user_id)
|
||||
|
||||
# Get rules relating to the old room and copy them to the new room
|
||||
for rule, enabled in user_push_rules:
|
||||
for rule, enabled in user_push_rules.rules():
|
||||
if not enabled:
|
||||
continue
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue