Skip to content

Commit f60c992

Browse files
committed
game_handler: add widget_content support
1 parent 25f7901 commit f60c992

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

zulip_bots/zulip_bots/game_handler.py

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -155,16 +155,19 @@ def confirm_invitation_declined(self, game_id: str) -> str:
155155
host = self.invites[game_id]['host']
156156
return 'Declined invitation to play **{}** from @**{}**.'.format(self.game_name, self.get_username_by_email(host))
157157

158-
def send_message(self, to: str, content: str, is_private: bool, subject: str='') -> None:
158+
def send_message(self, to: str, content: str, is_private: bool, subject: str='', widget_content: str='') -> None:
159+
if widget_content is '':
160+
widget_content = None
159161
self.bot_handler.send_message(dict(
160162
type='private' if is_private else 'stream',
161163
to=to,
162164
content=content,
163-
subject=subject
165+
subject=subject,
166+
widget_content=widget_content
164167
))
165168

166-
def send_reply(self, original_message: Dict[str, Any], content: str) -> None:
167-
self.bot_handler.send_reply(original_message, content)
169+
def send_reply(self, original_message: Dict[str, Any], content: str, widget_content: str='') -> None:
170+
self.bot_handler.send_reply(original_message, content, widget_content)
168171

169172
def usage(self) -> str:
170173
return '''
@@ -713,20 +716,20 @@ def generate_game_id(self) -> str:
713716
id += valid_characters[random.randrange(0, len(valid_characters))]
714717
return id
715718

716-
def broadcast(self, game_id: str, content: str, include_private: bool=True) -> bool:
719+
def broadcast(self, game_id: str, content: str, include_private: bool=True, widget_content: str='') -> bool:
717720
if include_private:
718721
private_recipients = self.get_players(game_id, parameter='p')
719722
if private_recipients is not None:
720723
for user in private_recipients:
721-
self.send_message(user, content, True)
724+
self.send_message(user, content, True, '', widget_content)
722725
if game_id in self.invites.keys():
723726
if self.invites[game_id]['subject'] != '###private###':
724727
self.send_message(
725-
self.invites[game_id]['stream'], content, False, self.invites[game_id]['subject'])
728+
self.invites[game_id]['stream'], content, False, self.invites[game_id]['subject'], widget_content)
726729
return True
727730
if game_id in self.instances.keys():
728731
self.send_message(
729-
self.instances[game_id].stream, content, False, self.instances[game_id].subject)
732+
self.instances[game_id].stream, content, False, self.instances[game_id].subject, widget_content)
730733
return True
731734
return False
732735

@@ -841,7 +844,7 @@ def handle_message(self, content: str, player_email: str) -> None:
841844
self.players[self.turn]),
842845
self.gameAdapter.gameMessageHandler.get_player_color(self.turn)))
843846

844-
def broadcast(self, content: str) -> None:
847+
def broadcast(self, content: str, widget_content: str='') -> None:
845848
self.gameAdapter.broadcast(self.game_id, content)
846849

847850
def check_draw(self) -> bool:
@@ -866,7 +869,10 @@ def make_move(self, content: str, is_computer: bool) -> None:
866869
return
867870
except BadMoveException as e:
868871
self.broadcast(e.message)
869-
self.broadcast(self.parse_current_board())
872+
current_board_message = self.parse_current_board
873+
if isinstance(current_board_message, tuple):
874+
self.broadcast(current_board_message[0], current_board_message[1])
875+
self.broadcast(current_board_message)
870876
return
871877
if not is_computer:
872878
self.current_messages.append(self.gameAdapter.gameMessageHandler.alert_move_message(
@@ -926,8 +932,11 @@ def next_turn(self) -> None:
926932
self.make_move('', True)
927933

928934
def broadcast_current_message(self) -> None:
929-
content = '\n\n'.join(self.current_messages)
930-
self.broadcast(content)
935+
for message in self.current_messages:
936+
if isinstance(message, tuple):
937+
self.broadcast(message[0], message[1])
938+
else:
939+
self.broadcast(message)
931940
self.current_messages = []
932941

933942
def parse_current_board(self) -> Any:

0 commit comments

Comments
 (0)