mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2025-05-05 04:14:56 -04:00
Hack to add push priority to push notifications (#7765)
* Remove obsolete comment about ancient temporary code Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net> * Implement hack to set push priority based on whether the tweaks indicate the event might cause effects. * Changelog for 7765 Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net> * Antilint * Add tests for push priority Signed-off-by: Olivier Wilkinson (reivilibre) <olivier@librepush.net> * Update synapse/push/httppusher.py Co-authored-by: Brendan Abolivier <babolivier@matrix.org> * Antilint * Remove needless invites from tests. Co-authored-by: Brendan Abolivier <babolivier@matrix.org>
This commit is contained in:
parent
e866512367
commit
e5808c4cfb
3 changed files with 362 additions and 8 deletions
|
@ -20,6 +20,7 @@ from prometheus_client import Counter
|
|||
from twisted.internet import defer
|
||||
from twisted.internet.error import AlreadyCalled, AlreadyCancelled
|
||||
|
||||
from synapse.api.constants import EventTypes
|
||||
from synapse.logging import opentracing
|
||||
from synapse.metrics.background_process_metrics import run_as_background_process
|
||||
from synapse.push import PusherConfigException
|
||||
|
@ -305,12 +306,23 @@ class HttpPusher(object):
|
|||
|
||||
@defer.inlineCallbacks
|
||||
def _build_notification_dict(self, event, tweaks, badge):
|
||||
priority = "low"
|
||||
if (
|
||||
event.type == EventTypes.Encrypted
|
||||
or tweaks.get("highlight")
|
||||
or tweaks.get("sound")
|
||||
):
|
||||
# HACK send our push as high priority only if it generates a sound, highlight
|
||||
# or may do so (i.e. is encrypted so has unknown effects).
|
||||
priority = "high"
|
||||
|
||||
if self.data.get("format") == "event_id_only":
|
||||
d = {
|
||||
"notification": {
|
||||
"event_id": event.event_id,
|
||||
"room_id": event.room_id,
|
||||
"counts": {"unread": badge},
|
||||
"prio": priority,
|
||||
"devices": [
|
||||
{
|
||||
"app_id": self.app_id,
|
||||
|
@ -334,9 +346,8 @@ class HttpPusher(object):
|
|||
"room_id": event.room_id,
|
||||
"type": event.type,
|
||||
"sender": event.user_id,
|
||||
"counts": { # -- we don't mark messages as read yet so
|
||||
# we have no way of knowing
|
||||
# Just set the badge to 1 until we have read receipts
|
||||
"prio": priority,
|
||||
"counts": {
|
||||
"unread": badge,
|
||||
# 'missed_calls': 2
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue