Skip to content
Snippets Groups Projects
Commit d7265977 authored by David Baker's avatar David Baker
Browse files

Simplify badge updating code by just updating it every time we get woken up and it's not an event

parent 2309450a
No related branches found
No related tags found
No related merge requests found
......@@ -126,6 +126,9 @@ class Pusher(object):
from_tok = StreamToken.from_string(self.last_token)
config = PaginationConfig(from_token=from_tok, limit='1')
timeout = (300 + random.randint(-60, 60)) * 1000
# note that we need to get read receipts down the stream as we need to
# wake up when one arrives. we don't need to explicitly look for
# them though.
chunk = yield self.evStreamHandler.get_stream(
self.user_id, config, timeout=timeout, affect_presence=False
)
......@@ -133,23 +136,12 @@ class Pusher(object):
# limiting to 1 may get 1 event plus 1 presence event, so
# pick out the actual event
single_event = None
read_receipt = None
for c in chunk['chunk']:
if 'event_id' in c: # Hmmm...
single_event = c
elif c['type'] == 'm.receipt':
read_receipt = c
have_updated_badge = False
if read_receipt:
for receipt_part in read_receipt['content'].values():
if 'm.read' in receipt_part:
if self.user_id in receipt_part['m.read'].keys():
have_updated_badge = True
if not single_event:
if have_updated_badge:
yield self.update_badge()
yield self.update_badge()
self.last_token = chunk['end']
yield self.store.update_pusher_last_token(
self.app_id,
......@@ -194,9 +186,6 @@ class Pusher(object):
yield self.hs.get_pusherpool().remove_pusher(
self.app_id, pk, self.user_id
)
else:
if have_updated_badge:
yield self.update_badge()
processed = True
if not self.alive:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment