3838 # Downloaded message data
3939 'messages' : Dict [int , Message ], # message_id: Message
4040 # unread message data; additional data in model.initial_data['unread_msgs']
41- 'unread_msgs ' : Set [int ] # {message_ids, ...}
41+ 'unread_msg_ids ' : Set [int ] # {message_ids, ...}
4242})
4343
4444initial_index = Index (
5353 topics = defaultdict (list ),
5454 search = set (),
5555 messages = defaultdict (dict ),
56- unread_msgs = set (),
56+ unread_msg_ids = set (),
5757)
5858
5959
@@ -353,26 +353,10 @@ def index_messages(messages: List[Any],
353353 return index
354354
355355
356- def index_unread_messsages (unread_msgs : Dict [str , Any ], index : Index ) -> Index :
357-
358- for pm in unread_msgs ['pms' ]:
359- message_ids = pm ['unread_message_ids' ]
360- index ['unread_msgs' ].update (message_ids )
361-
362- for stream in unread_msgs ['streams' ]:
363- message_ids = stream ['unread_message_ids' ]
364- index ['unread_msgs' ].update (message_ids )
365-
366- for group_pm in unread_msgs ['huddles' ]:
367- message_ids = group_pm ['unread_message_ids' ]
368- index ['unread_msgs' ].update (message_ids )
369-
370- return index
371-
372-
373356def classify_unread_counts (model : Any ) -> UnreadCounts :
374357 # TODO: support group pms
375358 unread_msg_counts = model .initial_data ['unread_msgs' ]
359+ index = model .index
376360
377361 unread_counts = UnreadCounts (
378362 all_msg = 0 ,
@@ -383,14 +367,19 @@ def classify_unread_counts(model: Any) -> UnreadCounts:
383367 streams = dict (),
384368 )
385369
370+ # add message_ids to index and count to UnreadCounts
386371 for pm in unread_msg_counts ['pms' ]:
387- count = len (pm ['unread_message_ids' ])
372+ message_ids = pm ['unread_message_ids' ]
373+ index ['unread_msg_ids' ].update (message_ids )
374+ count = len (message_ids )
388375 unread_counts ['unread_pms' ][pm ['sender_id' ]] = count
389376 unread_counts ['all_msg' ] += count
390377 unread_counts ['all_pms' ] += count
391378
392379 for stream in unread_msg_counts ['streams' ]:
393- count = len (stream ['unread_message_ids' ])
380+ message_ids = stream ['unread_message_ids' ]
381+ index ['unread_msg_ids' ].update (message_ids )
382+ count = len (message_ids )
394383 stream_id = stream ['stream_id' ]
395384 if [model .stream_dict [stream_id ]['name' ],
396385 stream ['topic' ]] in model .muted_topics :
@@ -405,7 +394,9 @@ def classify_unread_counts(model: Any) -> UnreadCounts:
405394
406395 # store unread count of group pms in `unread_huddles`
407396 for group_pm in unread_msg_counts ['huddles' ]:
408- count = len (group_pm ['unread_message_ids' ])
397+ message_ids = group_pm ['unread_message_ids' ]
398+ index ['unread_msg_ids' ].update (message_ids )
399+ count = len (message_ids )
409400 user_ids = group_pm ['user_ids_string' ].split (',' )
410401 user_ids = frozenset (map (int , user_ids ))
411402 unread_counts ['unread_huddles' ][user_ids ] = count
0 commit comments