@@ -11,6 +11,7 @@ def __init__(self,conversation,telegram_state_name,back_button='Back'):
1111 self .back_button = back_button
1212 self .prev_state = None
1313 self .curr_state = conversation .start
14+ self .update , self .context = None , None
1415
1516 def _build_keyboard (self ,state ):
1617 '''Build Keyboard for callback state'''
@@ -54,12 +55,13 @@ def _going_back(self):
5455 return self .NEXT
5556
5657 def restart (self ):
57- telegram_id = self .update .effective_chat .id
58- if (c := self .context .user_data .get (telegram_id )):
59- if (m := c .get ('bot-msg' )): m .delete ()
60- self .context .user_data .pop (telegram_id )
61- self .prev_state = None
62- self .curr_state = self .conversation .start
58+ if self .update :
59+ telegram_id = self .update .effective_chat .id
60+ if (c := self .context .user_data .get (telegram_id )):
61+ if (m := c .get ('bot-msg' )): m .delete ()
62+ self .context .user_data .pop (telegram_id )
63+ self .prev_state = None
64+ self .curr_state = self .conversation .start
6365 return self
6466
6567 def manage_conversation (self ,update ,context ,delete_first = True ):
@@ -96,6 +98,9 @@ def manage_conversation(self,update,context,delete_first=True):
9698 if state .build : state .add_keyboard (state .build (self .update ,self .context ),max_row = state .max_row )
9799 keyboard = self ._build_keyboard (state )
98100 ret = state .action (self .update ,self .context ) if state .action else None
101+ if state .routes :
102+ ro ,de ,ba = state .routes (self .update ,self .context )
103+ self .conversation .add_routes (state ,ro ,de ,ba )
99104 msg = state .msg if ret == None else state .msg .replace ('@@@' ,ret )
100105 to_reply (f'{ msg } ' ,reply_markup = keyboard ,parse_mode = state .mode ,disable_web_page_preview = not state .webpage_preview )
101106 if state == self .conversation .end : context .user_data .update ({telegram_id :None }); return ConversationHandler .END
0 commit comments