@@ -155,16 +155,19 @@ def confirm_invitation_declined(self, game_id: str) -> str:
155
155
host = self .invites [game_id ]['host' ]
156
156
return 'Declined invitation to play **{}** from @**{}**.' .format (self .game_name , self .get_username_by_email (host ))
157
157
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
159
161
self .bot_handler .send_message (dict (
160
162
type = 'private' if is_private else 'stream' ,
161
163
to = to ,
162
164
content = content ,
163
- subject = subject
165
+ subject = subject ,
166
+ widget_content = widget_content
164
167
))
165
168
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 )
168
171
169
172
def usage (self ) -> str :
170
173
return '''
@@ -713,20 +716,20 @@ def generate_game_id(self) -> str:
713
716
id += valid_characters [random .randrange (0 , len (valid_characters ))]
714
717
return id
715
718
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 :
717
720
if include_private :
718
721
private_recipients = self .get_players (game_id , parameter = 'p' )
719
722
if private_recipients is not None :
720
723
for user in private_recipients :
721
- self .send_message (user , content , True )
724
+ self .send_message (user , content , True , '' , widget_content )
722
725
if game_id in self .invites .keys ():
723
726
if self .invites [game_id ]['subject' ] != '###private###' :
724
727
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 )
726
729
return True
727
730
if game_id in self .instances .keys ():
728
731
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 )
730
733
return True
731
734
return False
732
735
@@ -841,7 +844,7 @@ def handle_message(self, content: str, player_email: str) -> None:
841
844
self .players [self .turn ]),
842
845
self .gameAdapter .gameMessageHandler .get_player_color (self .turn )))
843
846
844
- def broadcast (self , content : str ) -> None :
847
+ def broadcast (self , content : str , widget_content : str = '' ) -> None :
845
848
self .gameAdapter .broadcast (self .game_id , content )
846
849
847
850
def check_draw (self ) -> bool :
@@ -866,7 +869,10 @@ def make_move(self, content: str, is_computer: bool) -> None:
866
869
return
867
870
except BadMoveException as e :
868
871
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 )
870
876
return
871
877
if not is_computer :
872
878
self .current_messages .append (self .gameAdapter .gameMessageHandler .alert_move_message (
@@ -926,8 +932,11 @@ def next_turn(self) -> None:
926
932
self .make_move ('' , True )
927
933
928
934
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 )
931
940
self .current_messages = []
932
941
933
942
def parse_current_board (self ) -> Any :
0 commit comments