mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 11:16:07 -04:00
Server default rules now of all kinds rather than all being at lowest prio.
This commit is contained in:
parent
f90782a658
commit
2df41aa138
4 changed files with 98 additions and 51 deletions
|
@ -1,20 +1,68 @@
|
|||
def make_base_rules(user_name):
|
||||
rules = [
|
||||
from synapse.push.rulekinds import PRIORITY_CLASS_MAP, PRIORITY_CLASS_INVERSE_MAP
|
||||
|
||||
def list_with_base_rules(rawrules, user_name):
|
||||
ruleslist = []
|
||||
|
||||
# shove the server default rules for each kind onto the end of each
|
||||
current_prio_class = 1
|
||||
for r in rawrules:
|
||||
if r['priority_class'] > current_prio_class:
|
||||
while current_prio_class < r['priority_class']:
|
||||
ruleslist.extend(make_base_rules(
|
||||
user_name,
|
||||
PRIORITY_CLASS_INVERSE_MAP[current_prio_class])
|
||||
)
|
||||
current_prio_class += 1
|
||||
|
||||
ruleslist.append(r)
|
||||
|
||||
while current_prio_class <= PRIORITY_CLASS_INVERSE_MAP.keys()[-1]:
|
||||
ruleslist.extend(make_base_rules(
|
||||
user_name,
|
||||
PRIORITY_CLASS_INVERSE_MAP[current_prio_class])
|
||||
)
|
||||
current_prio_class += 1
|
||||
|
||||
return ruleslist
|
||||
|
||||
|
||||
def make_base_rules(user, kind):
|
||||
rules = []
|
||||
|
||||
if kind == 'override':
|
||||
rules = make_base_override_rules()
|
||||
elif kind == 'content':
|
||||
rules = make_base_content_rules(user)
|
||||
|
||||
for r in rules:
|
||||
r['priority_class'] = PRIORITY_CLASS_MAP[kind]
|
||||
|
||||
return rules
|
||||
|
||||
|
||||
def make_base_content_rules(user):
|
||||
return [
|
||||
{
|
||||
'conditions': [
|
||||
{
|
||||
'kind': 'event_match',
|
||||
'key': 'content.body',
|
||||
'pattern': '*%s*' % (user_name,), # Matrix ID match
|
||||
'pattern': user.localpart, # Matrix ID match
|
||||
}
|
||||
],
|
||||
'actions': [
|
||||
'notify',
|
||||
{
|
||||
'set_sound': 'default'
|
||||
'set_tweak': 'sound',
|
||||
'value': 'default',
|
||||
}
|
||||
]
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def make_base_override_rules():
|
||||
return [
|
||||
{
|
||||
'conditions': [
|
||||
{
|
||||
|
@ -24,7 +72,8 @@ def make_base_rules(user_name):
|
|||
'actions': [
|
||||
'notify',
|
||||
{
|
||||
'set_sound': 'default'
|
||||
'set_tweak': 'sound',
|
||||
'value': 'default'
|
||||
}
|
||||
]
|
||||
},
|
||||
|
@ -44,6 +93,3 @@ def make_base_rules(user_name):
|
|||
]
|
||||
}
|
||||
]
|
||||
for r in rules:
|
||||
r['priority_class'] = 0
|
||||
return rules
|
Loading…
Add table
Add a link
Reference in a new issue