|
53 | 53 | 'stream_id': int,
|
54 | 54 | 'stream_ids': List[int], # NOTE: replaces 'stream_id' in ZFL 35 for peer*
|
55 | 55 | 'value': bool,
|
56 |
| - 'message_ids': List[int] # Present when subject of msg(s) is updated |
| 56 | + 'message_ids': List[int], # Present when subject of msg(s) is updated |
| 57 | + # realm emoji: |
| 58 | + 'realm_emoji': Dict[str, Any] |
57 | 59 | }, total=False) # Each Event will only have a subset of these
|
58 | 60 |
|
59 | 61 | EditPropagateMode = Literal['change_one', 'change_all', 'change_later']
|
@@ -103,6 +105,7 @@ def __init__(self, controller: Any) -> None:
|
103 | 105 | ('subscription', self._handle_subscription_event),
|
104 | 106 | ('typing', self._handle_typing_event),
|
105 | 107 | ('update_message_flags', self._handle_update_message_flags_event),
|
| 108 | + ('realm_emoji', self._handle_update_emoji_event) |
106 | 109 | ]) # type: OrderedDict[str, Callable[[Event], None]]
|
107 | 110 |
|
108 | 111 | self.initial_data = {} # type: Dict[str, Any]
|
@@ -145,7 +148,7 @@ def __init__(self, controller: Any) -> None:
|
145 | 148 | for name, data in unicode_emoji_data.items():
|
146 | 149 | data['type'] = 'unicode_emoji'
|
147 | 150 | typed_unicode_emoji_data = cast(NamedEmojiData, unicode_emoji_data)
|
148 |
| - custom_emoji_data = self.fetch_custom_emojis() |
| 151 | + custom_emoji_data = self.initial_data['realm_emoji'] |
149 | 152 | zulip_extra_emoji = {
|
150 | 153 | 'zulip': {'code': 'zulip', 'type': 'zulip_extra_emoji'}
|
151 | 154 | } # type: NamedEmojiData
|
@@ -1086,6 +1089,13 @@ def _handle_update_message_flags_event(self, event: Event) -> None:
|
1086 | 1089 | set_count(list(message_ids_to_mark & indexed_message_ids),
|
1087 | 1090 | self.controller, -1)
|
1088 | 1091 |
|
| 1092 | + def _handle_update_emoji_event(self, event: Event) -> None: |
| 1093 | + """ |
| 1094 | + Handle update of emoji |
| 1095 | + """ |
| 1096 | + realm_emojis = event['realm_emoji'] |
| 1097 | + self.active_emoji_data.update(realm_emojis) |
| 1098 | + |
1089 | 1099 | def _update_rendered_view(self, msg_id: int) -> None:
|
1090 | 1100 | """
|
1091 | 1101 | Helper method called by various _handle_* methods
|
@@ -1143,6 +1153,7 @@ def _register_desired_events(self, *, fetch_data: bool=False) -> str:
|
1143 | 1153 | 'muted_topics',
|
1144 | 1154 | 'realm_user', # Enables cross_realm_bots
|
1145 | 1155 | 'realm_user_groups',
|
| 1156 | + 'realm_emoji', |
1146 | 1157 | # zulip_version and zulip_feature_level are always returned in
|
1147 | 1158 | # POST /register from Feature level 3.
|
1148 | 1159 | 'zulip_version',
|
|
0 commit comments