19
19
from synapse .push .rulekinds import PRIORITY_CLASS_INVERSE_MAP , PRIORITY_CLASS_MAP
20
20
21
21
22
- def list_with_base_rules (rawrules ):
22
+ def list_with_base_rules (rawrules , use_new_defaults = False ):
23
23
"""Combine the list of rules set by the user with the default push rules
24
24
25
25
Args:
26
26
rawrules(list): The rules the user has modified or set.
27
+ use_new_defaults(bool): Whether to use the new experimental default rules when
28
+ appending or prepending default rules.
27
29
28
30
Returns:
29
31
A new list with the rules set by the user combined with the defaults.
@@ -43,7 +45,9 @@ def list_with_base_rules(rawrules):
43
45
44
46
ruleslist .extend (
45
47
make_base_prepend_rules (
46
- PRIORITY_CLASS_INVERSE_MAP [current_prio_class ], modified_base_rules
48
+ PRIORITY_CLASS_INVERSE_MAP [current_prio_class ],
49
+ modified_base_rules ,
50
+ use_new_defaults ,
47
51
)
48
52
)
49
53
@@ -54,6 +58,7 @@ def list_with_base_rules(rawrules):
54
58
make_base_append_rules (
55
59
PRIORITY_CLASS_INVERSE_MAP [current_prio_class ],
56
60
modified_base_rules ,
61
+ use_new_defaults ,
57
62
)
58
63
)
59
64
current_prio_class -= 1
@@ -62,6 +67,7 @@ def list_with_base_rules(rawrules):
62
67
make_base_prepend_rules (
63
68
PRIORITY_CLASS_INVERSE_MAP [current_prio_class ],
64
69
modified_base_rules ,
70
+ use_new_defaults ,
65
71
)
66
72
)
67
73
@@ -70,27 +76,39 @@ def list_with_base_rules(rawrules):
70
76
while current_prio_class > 0 :
71
77
ruleslist .extend (
72
78
make_base_append_rules (
73
- PRIORITY_CLASS_INVERSE_MAP [current_prio_class ], modified_base_rules
79
+ PRIORITY_CLASS_INVERSE_MAP [current_prio_class ],
80
+ modified_base_rules ,
81
+ use_new_defaults ,
74
82
)
75
83
)
76
84
current_prio_class -= 1
77
85
if current_prio_class > 0 :
78
86
ruleslist .extend (
79
87
make_base_prepend_rules (
80
- PRIORITY_CLASS_INVERSE_MAP [current_prio_class ], modified_base_rules
88
+ PRIORITY_CLASS_INVERSE_MAP [current_prio_class ],
89
+ modified_base_rules ,
90
+ use_new_defaults ,
81
91
)
82
92
)
83
93
84
94
return ruleslist
85
95
86
96
87
- def make_base_append_rules (kind , modified_base_rules ):
97
+ def make_base_append_rules (kind , modified_base_rules , use_new_defaults = False ):
88
98
rules = []
89
99
90
100
if kind == "override" :
91
- rules = BASE_APPEND_OVERRIDE_RULES
101
+ rules = (
102
+ NEW_APPEND_OVERRIDE_RULES
103
+ if use_new_defaults
104
+ else BASE_APPEND_OVERRIDE_RULES
105
+ )
92
106
elif kind == "underride" :
93
- rules = BASE_APPEND_UNDERRIDE_RULES
107
+ rules = (
108
+ NEW_APPEND_UNDERRIDE_RULES
109
+ if use_new_defaults
110
+ else BASE_APPEND_UNDERRIDE_RULES
111
+ )
94
112
elif kind == "content" :
95
113
rules = BASE_APPEND_CONTENT_RULES
96
114
@@ -105,7 +123,7 @@ def make_base_append_rules(kind, modified_base_rules):
105
123
return rules
106
124
107
125
108
- def make_base_prepend_rules (kind , modified_base_rules ):
126
+ def make_base_prepend_rules (kind , modified_base_rules , use_new_defaults = False ):
109
127
rules = []
110
128
111
129
if kind == "override" :
@@ -270,6 +288,135 @@ def make_base_prepend_rules(kind, modified_base_rules):
270
288
]
271
289
272
290
291
+ NEW_APPEND_OVERRIDE_RULES = [
292
+ {
293
+ "rule_id" : "global/override/.m.rule.encrypted" ,
294
+ "conditions" : [
295
+ {
296
+ "kind" : "event_match" ,
297
+ "key" : "type" ,
298
+ "pattern" : "m.room.encrypted" ,
299
+ "_id" : "_encrypted" ,
300
+ }
301
+ ],
302
+ "actions" : ["notify" ],
303
+ },
304
+ {
305
+ "rule_id" : "global/override/.m.rule.suppress_notices" ,
306
+ "conditions" : [
307
+ {
308
+ "kind" : "event_match" ,
309
+ "key" : "type" ,
310
+ "pattern" : "m.room.message" ,
311
+ "_id" : "_suppress_notices_type" ,
312
+ },
313
+ {
314
+ "kind" : "event_match" ,
315
+ "key" : "content.msgtype" ,
316
+ "pattern" : "m.notice" ,
317
+ "_id" : "_suppress_notices" ,
318
+ },
319
+ ],
320
+ "actions" : [],
321
+ },
322
+ {
323
+ "rule_id" : "global/underride/.m.rule.suppress_edits" ,
324
+ "conditions" : [
325
+ {
326
+ "kind" : "event_match" ,
327
+ "key" : "m.relates_to.m.rel_type" ,
328
+ "pattern" : "m.replace" ,
329
+ "_id" : "_suppress_edits" ,
330
+ }
331
+ ],
332
+ "actions" : [],
333
+ },
334
+ {
335
+ "rule_id" : "global/override/.m.rule.invite_for_me" ,
336
+ "conditions" : [
337
+ {
338
+ "kind" : "event_match" ,
339
+ "key" : "type" ,
340
+ "pattern" : "m.room.member" ,
341
+ "_id" : "_member" ,
342
+ },
343
+ {
344
+ "kind" : "event_match" ,
345
+ "key" : "content.membership" ,
346
+ "pattern" : "invite" ,
347
+ "_id" : "_invite_member" ,
348
+ },
349
+ {"kind" : "event_match" , "key" : "state_key" , "pattern_type" : "user_id" },
350
+ ],
351
+ "actions" : ["notify" , {"set_tweak" : "sound" , "value" : "default" }],
352
+ },
353
+ {
354
+ "rule_id" : "global/override/.m.rule.contains_display_name" ,
355
+ "conditions" : [{"kind" : "contains_display_name" }],
356
+ "actions" : [
357
+ "notify" ,
358
+ {"set_tweak" : "sound" , "value" : "default" },
359
+ {"set_tweak" : "highlight" },
360
+ ],
361
+ },
362
+ {
363
+ "rule_id" : "global/override/.m.rule.tombstone" ,
364
+ "conditions" : [
365
+ {
366
+ "kind" : "event_match" ,
367
+ "key" : "type" ,
368
+ "pattern" : "m.room.tombstone" ,
369
+ "_id" : "_tombstone" ,
370
+ },
371
+ {
372
+ "kind" : "event_match" ,
373
+ "key" : "state_key" ,
374
+ "pattern" : "" ,
375
+ "_id" : "_tombstone_statekey" ,
376
+ },
377
+ ],
378
+ "actions" : [
379
+ "notify" ,
380
+ {"set_tweak" : "sound" , "value" : "default" },
381
+ {"set_tweak" : "highlight" },
382
+ ],
383
+ },
384
+ {
385
+ "rule_id" : "global/override/.m.rule.roomnotif" ,
386
+ "conditions" : [
387
+ {
388
+ "kind" : "event_match" ,
389
+ "key" : "content.body" ,
390
+ "pattern" : "@room" ,
391
+ "_id" : "_roomnotif_content" ,
392
+ },
393
+ {
394
+ "kind" : "sender_notification_permission" ,
395
+ "key" : "room" ,
396
+ "_id" : "_roomnotif_pl" ,
397
+ },
398
+ ],
399
+ "actions" : [
400
+ "notify" ,
401
+ {"set_tweak" : "highlight" },
402
+ {"set_tweak" : "sound" , "value" : "default" },
403
+ ],
404
+ },
405
+ {
406
+ "rule_id" : "global/override/.m.rule.call" ,
407
+ "conditions" : [
408
+ {
409
+ "kind" : "event_match" ,
410
+ "key" : "type" ,
411
+ "pattern" : "m.call.invite" ,
412
+ "_id" : "_call" ,
413
+ }
414
+ ],
415
+ "actions" : ["notify" , {"set_tweak" : "sound" , "value" : "ring" }],
416
+ },
417
+ ]
418
+
419
+
273
420
BASE_APPEND_UNDERRIDE_RULES = [
274
421
{
275
422
"rule_id" : "global/underride/.m.rule.call" ,
@@ -354,6 +501,36 @@ def make_base_prepend_rules(kind, modified_base_rules):
354
501
]
355
502
356
503
504
+ NEW_APPEND_UNDERRIDE_RULES = [
505
+ {
506
+ "rule_id" : "global/underride/.m.rule.room_one_to_one" ,
507
+ "conditions" : [
508
+ {"kind" : "room_member_count" , "is" : "2" , "_id" : "member_count" },
509
+ {
510
+ "kind" : "event_match" ,
511
+ "key" : "content.body" ,
512
+ "pattern" : "*" ,
513
+ "_id" : "body" ,
514
+ },
515
+ ],
516
+ "actions" : ["notify" , {"set_tweak" : "sound" , "value" : "default" }],
517
+ },
518
+ {
519
+ "rule_id" : "global/underride/.m.rule.message" ,
520
+ "conditions" : [
521
+ {
522
+ "kind" : "event_match" ,
523
+ "key" : "content.body" ,
524
+ "pattern" : "*" ,
525
+ "_id" : "body" ,
526
+ },
527
+ ],
528
+ "actions" : ["notify" ],
529
+ "enabled" : False ,
530
+ },
531
+ ]
532
+
533
+
357
534
BASE_RULE_IDS = set ()
358
535
359
536
for r in BASE_APPEND_CONTENT_RULES :
@@ -375,3 +552,26 @@ def make_base_prepend_rules(kind, modified_base_rules):
375
552
r ["priority_class" ] = PRIORITY_CLASS_MAP ["underride" ]
376
553
r ["default" ] = True
377
554
BASE_RULE_IDS .add (r ["rule_id" ])
555
+
556
+
557
+ NEW_RULE_IDS = set ()
558
+
559
+ for r in BASE_APPEND_CONTENT_RULES :
560
+ r ["priority_class" ] = PRIORITY_CLASS_MAP ["content" ]
561
+ r ["default" ] = True
562
+ NEW_RULE_IDS .add (r ["rule_id" ])
563
+
564
+ for r in BASE_PREPEND_OVERRIDE_RULES :
565
+ r ["priority_class" ] = PRIORITY_CLASS_MAP ["override" ]
566
+ r ["default" ] = True
567
+ NEW_RULE_IDS .add (r ["rule_id" ])
568
+
569
+ for r in NEW_APPEND_OVERRIDE_RULES :
570
+ r ["priority_class" ] = PRIORITY_CLASS_MAP ["override" ]
571
+ r ["default" ] = True
572
+ NEW_RULE_IDS .add (r ["rule_id" ])
573
+
574
+ for r in NEW_APPEND_UNDERRIDE_RULES :
575
+ r ["priority_class" ] = PRIORITY_CLASS_MAP ["underride" ]
576
+ r ["default" ] = True
577
+ NEW_RULE_IDS .add (r ["rule_id" ])
0 commit comments