mirror of
https://github.com/element-hq/synapse.git
synced 2026-01-16 23:00:43 +00:00
Some checks are pending
Build docker images / Build and push image for linux/amd64 (push) Waiting to run
Build docker images / Build and push image for linux/arm64 (push) Waiting to run
Build docker images / Push merged images to docker.io/matrixdotorg/synapse (push) Blocked by required conditions
Build docker images / Push merged images to ghcr.io/element-hq/synapse (push) Blocked by required conditions
Deploy the documentation / Calculate variables for GitHub Pages deployment (push) Waiting to run
Deploy the documentation / GitHub Pages (push) Blocked by required conditions
Build release artifacts / Calculate list of debian distros (push) Waiting to run
Build release artifacts / Build .deb packages (push) Blocked by required conditions
Build release artifacts / Build wheels on macos-14 (push) Waiting to run
Build release artifacts / Build wheels on macos-15-intel (push) Waiting to run
Build release artifacts / Build wheels on ubuntu-24.04 (push) Waiting to run
Build release artifacts / Build wheels on ubuntu-24.04-arm (push) Waiting to run
Build release artifacts / Build sdist (push) Waiting to run
Build release artifacts / Attach assets to release (push) Blocked by required conditions
Schema / Ensure Synapse config schema is valid (push) Waiting to run
Schema / Ensure generated documentation is up-to-date (push) Waiting to run
Tests / lint (push) Blocked by required conditions
Tests / lint-readme (push) Blocked by required conditions
Tests / linting-done (push) Blocked by required conditions
Tests / calculate-test-jobs (push) Blocked by required conditions
Tests / changes (push) Waiting to run
Tests / check-sampleconfig (push) Blocked by required conditions
Tests / check-schema-delta (push) Blocked by required conditions
Tests / check-lockfile (push) Waiting to run
Tests / Typechecking (push) Blocked by required conditions
Tests / lint-crlf (push) Waiting to run
Tests / lint-newsfile (push) Waiting to run
Tests / lint-clippy (push) Blocked by required conditions
Tests / lint-clippy-nightly (push) Blocked by required conditions
Tests / lint-rust (push) Blocked by required conditions
Tests / lint-rustfmt (push) Blocked by required conditions
Tests / trial (push) Blocked by required conditions
Tests / trial-olddeps (push) Blocked by required conditions
Tests / trial-pypy (all, pypy-3.10) (push) Blocked by required conditions
Tests / sytest (push) Blocked by required conditions
Tests / export-data (push) Blocked by required conditions
Tests / portdb (13, 3.10) (push) Blocked by required conditions
Tests / portdb (17, 3.14) (push) Blocked by required conditions
Tests / complement (monolith, Postgres) (push) Blocked by required conditions
Tests / complement (monolith, SQLite) (push) Blocked by required conditions
Tests / complement (workers, Postgres) (push) Blocked by required conditions
Tests / cargo-test (push) Blocked by required conditions
Tests / cargo-bench (push) Blocked by required conditions
Tests / tests-done (push) Blocked by required conditions
aka PEP 604, added in Python 3.10
86 lines
2.7 KiB
Python
86 lines
2.7 KiB
Python
# Copyright 2022 The Matrix.org Foundation C.I.C.
|
|
# Copyright 2022 The Matrix.org Foundation C.I.C.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from typing import Any, Collection, Mapping, Sequence
|
|
|
|
from synapse.types import JsonDict, JsonValue
|
|
|
|
class PushRule:
|
|
@property
|
|
def rule_id(self) -> str: ...
|
|
@property
|
|
def priority_class(self) -> int: ...
|
|
@property
|
|
def conditions(self) -> Sequence[Mapping[str, str]]: ...
|
|
@property
|
|
def actions(self) -> Sequence[Mapping[str, Any] | str]: ...
|
|
@property
|
|
def default(self) -> bool: ...
|
|
@property
|
|
def default_enabled(self) -> bool: ...
|
|
@staticmethod
|
|
def from_db(
|
|
rule_id: str, priority_class: int, conditions: str, actions: str
|
|
) -> "PushRule": ...
|
|
|
|
class PushRules:
|
|
def __init__(self, rules: Collection[PushRule]): ...
|
|
def rules(self) -> Collection[PushRule]: ...
|
|
|
|
class FilteredPushRules:
|
|
def __init__(
|
|
self,
|
|
push_rules: PushRules,
|
|
enabled_map: dict[str, bool],
|
|
msc1767_enabled: bool,
|
|
msc3381_polls_enabled: bool,
|
|
msc3664_enabled: bool,
|
|
msc4028_push_encrypted_events: bool,
|
|
msc4210_enabled: bool,
|
|
msc4306_enabled: bool,
|
|
): ...
|
|
def rules(self) -> Collection[tuple[PushRule, bool]]: ...
|
|
|
|
def get_base_rule_ids() -> Collection[str]: ...
|
|
|
|
class PushRuleEvaluator:
|
|
def __init__(
|
|
self,
|
|
flattened_keys: Mapping[str, JsonValue],
|
|
has_mentions: bool,
|
|
room_member_count: int,
|
|
sender_power_level: int | None,
|
|
notification_power_levels: Mapping[str, int],
|
|
related_events_flattened: Mapping[str, Mapping[str, JsonValue]],
|
|
related_event_match_enabled: bool,
|
|
room_version_feature_flags: tuple[str, ...],
|
|
msc3931_enabled: bool,
|
|
msc4210_enabled: bool,
|
|
msc4306_enabled: bool,
|
|
): ...
|
|
def run(
|
|
self,
|
|
push_rules: FilteredPushRules,
|
|
user_id: str | None,
|
|
display_name: str | None,
|
|
msc4306_thread_subscription_state: bool | None,
|
|
) -> Collection[Mapping | str]: ...
|
|
def matches(
|
|
self,
|
|
condition: JsonDict,
|
|
user_id: str | None,
|
|
display_name: str | None,
|
|
msc4306_thread_subscription_state: bool | None = None,
|
|
) -> bool: ...
|