@@ -88,6 +88,23 @@ def __init__(self, controller: Any) -> None:
88
88
89
89
self ._notified_user_of_notification_failure = False
90
90
91
+ # Events fetched once at startup
92
+ self .initial_data_to_fetch : List [str ] = [
93
+ 'realm' ,
94
+ 'presence' ,
95
+ 'subscription' ,
96
+ 'message' ,
97
+ 'update_message_flags' ,
98
+ 'muted_topics' ,
99
+ 'realm_user' , # Enables cross_realm_bots
100
+ 'realm_user_groups' ,
101
+ 'update_display_settings' ,
102
+ # zulip_version and zulip_feature_level are always returned in
103
+ # POST /register from Feature level 3.
104
+ 'zulip_version' ,
105
+ ]
106
+
107
+ # Events desired with their corresponding callback
91
108
self .event_actions : 'OrderedDict[str, Callable[[Event], None]]' = (
92
109
OrderedDict ([
93
110
('message' , self ._handle_message_event ),
@@ -106,7 +123,7 @@ def __init__(self, controller: Any) -> None:
106
123
107
124
# Register to the queue before initializing further so that we don't
108
125
# lose any updates while messages are being fetched.
109
- self ._update_initial_data ()
126
+ self ._fetch_initial_data ()
110
127
111
128
self .server_version = self .initial_data ['zulip_version' ]
112
129
self .server_feature_level = (
@@ -567,7 +584,7 @@ def is_muted_topic(self, stream_id: int, topic: str) -> bool:
567
584
topic_to_search = (stream_name , topic )
568
585
return topic_to_search in self ._muted_topics .keys ()
569
586
570
- def _update_initial_data (self ) -> None :
587
+ def _fetch_initial_data (self ) -> None :
571
588
# Thread Processes to reduce start time.
572
589
# NOTE: Exceptions do not work well with threads
573
590
with ThreadPoolExecutor (max_workers = 1 ) as executor :
@@ -1267,20 +1284,7 @@ def _handle_update_display_settings_event(self, event: Event) -> None:
1267
1284
self .controller .update_screen ()
1268
1285
1269
1286
def _register_desired_events (self , * , fetch_data : bool = False ) -> str :
1270
- fetch_types = None if not fetch_data else [
1271
- 'realm' ,
1272
- 'presence' ,
1273
- 'subscription' ,
1274
- 'message' ,
1275
- 'update_message_flags' ,
1276
- 'muted_topics' ,
1277
- 'realm_user' , # Enables cross_realm_bots
1278
- 'realm_user_groups' ,
1279
- 'update_display_settings' ,
1280
- # zulip_version and zulip_feature_level are always returned in
1281
- # POST /register from Feature level 3.
1282
- 'zulip_version' ,
1283
- ]
1287
+ fetch_types = None if not fetch_data else self .initial_data_to_fetch
1284
1288
event_types = list (self .event_actions )
1285
1289
try :
1286
1290
response = self .client .register (event_types = event_types ,
0 commit comments