def help_button(update, context): query = update.callback_query mod_match = re.match(r"help_module\((.+?)\)", query.data) prev_match = re.match(r"help_prev\((.+?)\)", query.data) next_match = re.match(r"help_next\((.+?)\)", query.data) back_match = re.match(r"help_back", query.data) print(query.message.chat.id) try: if mod_match: module = mod_match.group(1) text = ("Here is the help for the *{}* module:\n".format( HELPABLE[module].__mod_name__) + HELPABLE[module].__help__) query.message.edit_text( text=text, parse_mode=ParseMode.MARKDOWN, disable_web_page_preview=True, reply_markup=InlineKeyboardMarkup([[ InlineKeyboardButton( text="Back", callback_data="help_back") ]])) elif prev_match: curr_page = int(prev_match.group(1)) query.message.edit_text( text=HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(curr_page - 1, HELPABLE, "help")))
def send_settings(chat_id, user_id, user=False): if user: if USER_SETTINGS: settings = "\n\n".join("*{}*:\n{}".format( mod.__mod_name__, mod.__user_settings__(user_id)) for mod in USER_SETTINGS.values()) dispatcher.bot.send_message( user_id, "These are your current settings:" + "\n\n" + settings, parse_mode=ParseMode.MARKDOWN) else: dispatcher.bot.send_message( user_id, "Seems like there aren't any user specific settings available :'(", parse_mode=ParseMode.MARKDOWN) else: if CHAT_SETTINGS: chat_name = dispatcher.bot.getChat(chat_id).title dispatcher.bot.send_message( user_id, text="Which module would you like to check {}'s settings for?" .format(chat_name), reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id))) else: dispatcher.bot.send_message( user_id, "Seems like there aren't any chat settings available :'(\nSend this " "in a group chat you're admin in to find its current settings!", parse_mode=ParseMode.MARKDOWN)
def send_help(chat_id, text, keyboard=None): if not keyboard: keyboard = InlineKeyboardMarkup(paginate_modules(0, HELPABLE, "help")) dispatcher.bot.send_message(chat_id=chat_id, text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=keyboard)
def send_settings(chat_id, user_id, user=False): if user: if USER_SETTINGS: settings = "\n\n".join("*{}*:\n{}".format( mod.__mod_name__, mod.__user_settings__(user_id)) for mod in USER_SETTINGS.values()) dispatcher.bot.send_message(user_id, "මේවා ඔබගේ වර්තමාන සැකසුම් වේ:" + "\n\n" + settings, parse_mode=ParseMode.MARKDOWN) else: dispatcher.bot.send_message( user_id, "විශේෂිත සැකසුම් පරිශීලක නොමැති බව පෙනේ🧐 :'(", parse_mode=ParseMode.MARKDOWN) else: if CHAT_SETTINGS: chat_name = dispatcher.bot.getChat(chat_id).title dispatcher.bot.send_message( user_id, text= "{} group එකේ settings සඳහා ඔබ පරීක්ෂා කිරීමට කැමති කුමන module එකද?" .format(chat_name), reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id))) else: dispatcher.bot.send_message( user_id, "Group settings කිසිවක් නොමැති බව පෙනේ 😕:'(\nඔබ admin " "සිටින group එකක එහි වර්තමාන settings සොයා ගැනීමට මෙය යවන්න.", parse_mode=ParseMode.MARKDOWN)
def send_settings(chat_id, user_id, user=False): if user: if USER_SETTINGS: settings = "\n\n".join("*{}*:\n{}".format( mod.__mod_name__, mod.__user_settings__(user_id)) for mod in USER_SETTINGS.values()) dispatcher.bot.send_message(user_id, "Bunlar cari parametrlərinizdir:" + "\n\n" + settings, parse_mode=ParseMode.MARKDOWN) else: dispatcher.bot.send_message( user_id, "Mövcud istifadəçi üçün heç bir parametr mövcud deyildir :'(", parse_mode=ParseMode.MARKDOWN) else: if CHAT_SETTINGS: chat_name = dispatcher.bot.getChat(chat_id).title dispatcher.bot.send_message( user_id, text="{} Parametrlərini hansı modul üçün yoxlamaq istərdiniz". format(chat_name), reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id))) else: dispatcher.bot.send_message( user_id, "Görünür heç bir söhbət ayarı yoxdur :'(\nBunu göndər " "Cari parametrlərini tapmaq üçün admin olduğunuz bir qrup söhbətində yazın", parse_mode=ParseMode.MARKDOWN)
def help_button(bot: Bot, update: Update): query = update.callback_query mod_match = re.match(r"help_module\((.+?)\)", query.data) prev_match = re.match(r"help_prev\((.+?)\)", query.data) next_match = re.match(r"help_next\((.+?)\)", query.data) back_match = re.match(r"help_back", query.data) try: if mod_match: module = mod_match.group(1) text = "Here is the help for the *{}* module:\n".format(HELPABLE[module].__mod_name__) \ + HELPABLE[module].__help__ query.message.reply_text(text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( [[InlineKeyboardButton(text="Back", callback_data="help_back")]])) elif prev_match: curr_page = int(prev_match.group(1)) query.message.reply_text(HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(curr_page - 1, HELPABLE, "help"))) elif next_match: next_page = int(next_match.group(1)) query.message.reply_text(HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(next_page + 1, HELPABLE, "help"))) elif back_match: query.message.reply_text(text=HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup(paginate_modules(0, HELPABLE, "help"))) # ensure no spinny white circle bot.answer_callback_query(query.id) query.message.delete() except BadRequest as excp: if excp.message == "Message is not modified": pass elif excp.message == "Query_id_invalid": pass elif excp.message == "Message can't be deleted": pass else: LOGGER.exception("Exception in help buttons. %s", str(query.data))
def gethelp(update, context): query = update.callback_query if query.data == "gethelp_pr": query.bot.send_message( query.from_user.id, text=HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, HELPABLE, "help")), ) query.message.edit_text( text= "I have sent you the requested information in a private message.", reply_markup=InlineKeyboardMarkup([ [ InlineKeyboardButton( text="Go to the chat", url=f"telegram.me/{context.bot.username}", ) ], ]), )
def send_settings(chat_id, user_id, user=False): if user: if USER_SETTINGS: settings = "\n\n".join("*{}*:\n{}".format( mod.__mod_name__, mod.__user_settings__(user_id)) for mod in USER_SETTINGS.values()) dispatcher.bot.send_message( user_id, "Đây là những cài đặt hiện tại của bạn:" + "\n\n" + settings, parse_mode=ParseMode.MARKDOWN, ) else: dispatcher.bot.send_message( user_id, "Có vẻ như không có bất kỳ cài đặt dành riêng cho người dùng nào :'(", parse_mode=ParseMode.MARKDOWN, ) else: if CHAT_SETTINGS: chat_name = dispatcher.bot.getChat(chat_id).title dispatcher.bot.send_message( user_id, text="Which module would you like to check {}'s settings for?". format(chat_name, ), reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id), ), ) else: dispatcher.bot.send_message( user_id, "Có vẻ như không có bất kỳ cài đặt trò chuyện nào khả dụng :'(\nSend this " "Trong một cuộc trò chuyện nhóm mà bạn là quản trị viên để tìm cài đặt hiện tại của nó!", parse_mode=ParseMode.MARKDOWN, )
elif prev_match: curr_page = int(prev_match.group(1)) query.message.reply_text( HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(curr_page - 1, HELPABLE, "help"))) elif next_match: next_page = int(next_match.group(1)) query.message.reply_text( HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(next_page + 1, HELPABLE, "help"))) elif back_match: query.message.reply_text( text=HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, HELPABLE, "help"))) # ensure no spinny white circle context.bot.answer_callback_query(query.id) query.message.delete() except BadRequest as excp: if excp.message == "Message is not modified": pass elif excp.message == "Query_id_invalid":
def settings_button(update: Update, context: CallbackContext): query = update.callback_query user = update.effective_user bot = context.bot mod_match = re.match(r"stngs_module\((.+?),(.+?)\)", query.data) prev_match = re.match(r"stngs_prev\((.+?),(.+?)\)", query.data) next_match = re.match(r"stngs_next\((.+?),(.+?)\)", query.data) back_match = re.match(r"stngs_back\((.+?)\)", query.data) try: if mod_match: chat_id = mod_match.group(1) module = mod_match.group(2) chat = bot.get_chat(chat_id) text = "*{}* üçün aşağıdakı parametrlərə malikdir *{}* module:\n\n".format(escape_markdown(chat.title), CHAT_SETTINGS[module].__mod_name__) + \ CHAT_SETTINGS[module].__chat_settings__(chat_id, user.id) query.message.reply_text( text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup([[ InlineKeyboardButton( text="Back", callback_data="stngs_back({})".format(chat_id)) ]])) elif prev_match: chat_id = prev_match.group(1) curr_page = int(prev_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Salam! Bunun üçün bir neçə parametr var {} - davam edin və nəyi seçin " "you're interested in.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules( curr_page - 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif next_match: chat_id = next_match.group(1) next_page = int(next_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Salam! Üçün kifayət qədər bir neçə parametr var {} - davam edin və nə seçin " "you're interested in.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules( next_page + 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif back_match: chat_id = back_match.group(1) chat = bot.get_chat(chat_id) query.message.reply_text( text="Salam! Üçün kifayət qədər bir neçə parametr var {} - davam edin və nə seçin " "you're interested in.".format(escape_markdown(chat.title)), parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id))) # ensure no spinny white circle bot.answer_callback_query(query.id) query.message.delete() except BadRequest as excp: if excp.message == "Mesaj dəyişdirilməyib": pass elif excp.message == "Query_id_invalid": pass elif excp.message == "Mesaj silinə bilmir": pass else: LOGGER.exception("Ayarlar düymələrindəki istisna. %s", str(query.data))
def settings_button(update: Update, context: CallbackContext): query = update.callback_query user = update.effective_user bot = context.bot mod_match = re.match(r"stngs_module\((.+?),(.+?)\)", query.data) prev_match = re.match(r"stngs_prev\((.+?),(.+?)\)", query.data) next_match = re.match(r"stngs_next\((.+?),(.+?)\)", query.data) back_match = re.match(r"stngs_back\((.+?)\)", query.data) try: if mod_match: chat_id = mod_match.group(1) module = mod_match.group(2) chat = bot.get_chat(chat_id) text = "*{}* tiene la siguiente configuración para el comando *{}*:\n\n".format(escape_markdown(chat.title), CHAT_SETTINGS[module].__mod_name__) + \ CHAT_SETTINGS[module].__chat_settings__(chat_id, user.id) query.message.reply_text( text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup([[ InlineKeyboardButton( text="↩️ Regresar", callback_data="stngs_back({})".format(chat_id)) ]])) elif prev_match: chat_id = prev_match.group(1) curr_page = int(prev_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "¡Hola! Hay bastantes configuraciones para {}. Continúe y elije lo" "que te interesa.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules(curr_page - 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif next_match: chat_id = next_match.group(1) next_page = int(next_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "¡Hola! Hay bastantes configuraciones para {}. Continúe y elije lo " "que te interesa.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules(next_page + 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif back_match: chat_id = back_match.group(1) chat = bot.get_chat(chat_id) query.message.reply_text( text= "¡Hola! Hay bastantes configuraciones para {}. Continúe y elije lo " "que te interesa.".format(escape_markdown(chat.title)), parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id))) # ensure no spinny white circle bot.answer_callback_query(query.id) query.message.delete() except BadRequest as excp: if excp.message == "El mensaje no se ha modificado": pass elif excp.message == "Query_id_invalid": pass elif excp.message == "El mensaje no se puede borrar": pass else: LOGGER.exception("Exception in settings buttons. %s", str(query.data))
def settings_button(bot: Bot, update: Update): query = update.callback_query user = update.effective_user mod_match = re.match(r"stngs_module\((.+?),(.+?)\)", query.data) prev_match = re.match(r"stngs_prev\((.+?),(.+?)\)", query.data) next_match = re.match(r"stngs_next\((.+?),(.+?)\)", query.data) back_match = re.match(r"stngs_back\((.+?)\)", query.data) try: if mod_match: chat_id = mod_match.group(1) module = mod_match.group(2) chat = bot.get_chat(chat_id) text = "*{}* için aşağıdaki ayarlara sahiptir *{}* modül:\n\n".format(escape_markdown(chat.title), CHAT_SETTINGS[module].__mod_name__) + \ CHAT_SETTINGS[module].__chat_settings__(chat_id, user.id) query.message.reply_text( text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup([[ InlineKeyboardButton( text="Back", callback_data="stngs_back({})".format(chat_id)) ]])) elif prev_match: chat_id = prev_match.group(1) curr_page = int(prev_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Merhaba! Bunun İçin birkaç ayar var {} - devam et ve ne seçeceksin " "ilgileniyorsun.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules(curr_page - 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif next_match: chat_id = next_match.group(1) next_page = int(next_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Merhaba! Bunun İçin birkaç ayar var {} - devam et ve ne seçeceksin " "ilgileniyorsun.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules(next_page + 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif back_match: chat_id = back_match.group(1) chat = bot.get_chat(chat_id) query.message.reply_text( text= "Merhaba! Bunun İçin birkaç ayar var {} - devam et ve ne seçeceksin " "ilgileniyorsun.".format(escape_markdown(chat.title)), parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id))) # ensure no spinny white circle bot.answer_callback_query(query.id) query.message.delete() except BadRequest as excp: if excp.message == "Mesaj değiştirilmedi": pass elif excp.message == "Sorgu_kimliği_geçersiz": pass elif excp.message == "Mesaj silinemez": pass else: LOGGER.exception("Ayarlar düğmelerinde istisna. %s", str(query.data))
def help_button(update, context): query = update.callback_query mod_match = re.match(r"help_module\((.+?)\)", query.data) prev_match = re.match(r"help_prev\((.+?)\)", query.data) next_match = re.match(r"help_next\((.+?)\)", query.data) back_match = re.match(r"help_back", query.data) try: if mod_match: module = mod_match.group(1) text = ( "*⚊❮❮❮❮ 「 Help for {} module 」❯❯❯❯⚊*\n".format( HELPABLE[module].__mod_name__ ) + HELPABLE[module].__help__ ) query.message.edit_text( text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( [[InlineKeyboardButton(text="Back", callback_data="help_back")]] ), ) elif prev_match: curr_page = int(prev_match.group(1)) query.message.edit_text( HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(curr_page - 1, HELPABLE, "help") ), ) elif next_match: next_page = int(next_match.group(1)) query.message.edit_text( HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(next_page + 1, HELPABLE, "help") ), ) elif back_match: query.message.edit_text( text=HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, HELPABLE, "help") ), ) # ensure no spinny white circle context.bot.answer_callback_query(query.id) # query.message.delete() except Exception as excp: if excp.message == "Message is not modified": pass elif excp.message == "Query_id_invalid": pass elif excp.message == "Message can't be deleted": pass else: query.message.edit_text(excp.message) LOGGER.exception("Exception in help buttons. %s", str(query.data))
def settings_button(update: Update, context: CallbackContext): query = update.callback_query user = update.effective_user bot = context.bot mod_match = re.match(r"stngs_module\((.+?),(.+?)\)", query.data) prev_match = re.match(r"stngs_prev\((.+?),(.+?)\)", query.data) next_match = re.match(r"stngs_next\((.+?),(.+?)\)", query.data) back_match = re.match(r"stngs_back\((.+?)\)", query.data) try: if mod_match: chat_id = mod_match.group(1) module = mod_match.group(2) chat = bot.get_chat(chat_id) text = "*{}* *{}* modülü için şu ayarlara sahiptir\n\n".format(escape_markdown(chat.title), CHAT_SETTINGS[module].__mod_name__) + \ CHAT_SETTINGS[module].__chat_settings__(chat_id, user.id) query.message.reply_text( text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup([[ InlineKeyboardButton( text="Back", callback_data="stngs_back({})".format(chat_id)) ]])) elif prev_match: chat_id = prev_match.group(1) curr_page = int(prev_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Merhaba! {} İçin epeyce ayar var - devam edin ve neyi seçin " "ilgileniyorsun.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules(curr_page - 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif next_match: chat_id = next_match.group(1) next_page = int(next_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Merhaba! {} İçin epeyce ayar var - devam edin ve neyi seçin " "ilgileniyorsun.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules(next_page + 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif back_match: chat_id = back_match.group(1) chat = bot.get_chat(chat_id) query.message.reply_text( text= "Merhabalar! {} için epeyce ayar var - devam edin ve neyi seçin " "ilgileniyorsun.".format(escape_markdown(chat.title)), parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id))) # ensure no spinny white circle bot.answer_callback_query(query.id) query.message.delete() except BadRequest as excp: if excp.message == "Mesaj değiştirilmedi": pass elif excp.message == "Query_id_invalid": pass elif excp.message == "Mesaj silinemez": pass else: LOGGER.exception("Ayarlar düğmelerinde istisna. %s", str(query.data))
def settings_button(update: Update, context: CallbackContext): query = update.callback_query user = update.effective_user bot = context.bot mod_match = re.match(r"stngs_module\((.+?),(.+?)\)", query.data) prev_match = re.match(r"stngs_prev\((.+?),(.+?)\)", query.data) next_match = re.match(r"stngs_next\((.+?),(.+?)\)", query.data) back_match = re.match(r"stngs_back\((.+?)\)", query.data) try: if mod_match: chat_id = mod_match.group(1) module = mod_match.group(2) chat = bot.get_chat(chat_id) text = "*{}* group එකේ *{}* මොඩියුලය සඳහා පහත සැකසුම් ඇත:\n\n".format(escape_markdown(chat.title), CHAT_SETTINGS[module].__mod_name__) + \ CHAT_SETTINGS[module].__chat_settings__(chat_id, user.id) query.message.reply_text( text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup([[ InlineKeyboardButton( text="Back", callback_data="stngs_back({})".format(chat_id)) ]])) elif prev_match: chat_id = prev_match.group(1) curr_page = int(prev_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "ආයුබෝවන්! {} group එක සඳහා settings කිහිපයක් තිබේ - ඉදිරියට ගොස් ඔබ " "කැමති දේ තෝරා ගන්න.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules(curr_page - 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif next_match: chat_id = next_match.group(1) next_page = int(next_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "ආයුබෝවන්! {} group එක සඳහා settings කිහිපයක් තිබේ - ඉදිරියට ගොස් ඔබ " "කැමති දේ තෝරා ගන්න.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules(next_page + 1, CHAT_SETTINGS, "stngs", chat=chat_id))) elif back_match: chat_id = back_match.group(1) chat = bot.get_chat(chat_id) query.message.reply_text( text= "ආයුබෝවන්! {} group එක සඳහා settings කිහිපයක් තිබේ - ඉදිරියට ගොස් ඔබ " "කැමති දේ තෝරා ගන්න.".format(escape_markdown(chat.title)), parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id))) # ensure no spinny white circle bot.answer_callback_query(query.id) query.message.delete() except BadRequest as excp: if excp.message == "පණිවිඩය වෙනස් කර නොමැත": pass elif excp.message == "විමසූ id එක අවලංගුයි": pass elif excp.message == "Message එක delete කිරීමට නොහැක😔": pass else: LOGGER.exception("සැකසුම් බොත්තම් වල විශිෂ්ටත්වය. %s", str(query.data))
def help_button(update, context): query = update.callback_query mod_match = re.match(r"help_module\((.+?)\)", query.data) prev_match = re.match(r"help_prev\((.+?)\)", query.data) next_match = re.match(r"help_next\((.+?)\)", query.data) back_match = re.match(r"help_back", query.data) print(query.message.chat.id) try: if mod_match: module = mod_match.group(1) text = ( "Here is the help for the *{}* module:\n".format( HELPABLE[module].__mod_name__, ) + HELPABLE[module].__help__ ) query.message.edit_text( text=text, parse_mode=ParseMode.MARKDOWN, disable_web_page_preview=True, reply_markup=InlineKeyboardMarkup( [[InlineKeyboardButton(text="Back", callback_data="help_back")]], ), ) elif prev_match: curr_page = int(prev_match.group(1)) query.message.edit_text( text=HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(curr_page - 1, HELPABLE, "help"), ), ) elif next_match: next_page = int(next_match.group(1)) query.message.edit_text( text=HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(next_page + 1, HELPABLE, "help"), ), ) elif back_match: query.message.edit_text( text=HELP_STRINGS, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, HELPABLE, "help"), ), ) # ensure no spinny white circle context.bot.answer_callback_query(query.id) # query.message.delete() except BadRequest: pass
def settings_button(update: Update, context: CallbackContext): query = update.callback_query user = update.effective_user bot = context.bot mod_match = re.match(r"stngs_module\((.+?),(.+?)\)", query.data) prev_match = re.match(r"stngs_prev\((.+?),(.+?)\)", query.data) next_match = re.match(r"stngs_next\((.+?),(.+?)\)", query.data) back_match = re.match(r"stngs_back\((.+?)\)", query.data) try: if mod_match: chat_id = mod_match.group(1) module = mod_match.group(2) chat = bot.get_chat(chat_id) text = "*{}* has the following settings for the *{}* module:\n\n".format( escape_markdown(chat.title), CHAT_SETTINGS[module].__mod_name__, ) + CHAT_SETTINGS[module].__chat_settings__(chat_id, user.id) query.message.reply_text( text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( [ [ InlineKeyboardButton( text="Back", callback_data="stngs_back({})".format(chat_id), ), ], ], ), ) elif prev_match: chat_id = prev_match.group(1) curr_page = int(prev_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Hi there! There are quite a few settings for {} - go ahead and pick what " "you're interested in.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules( curr_page - 1, CHAT_SETTINGS, "stngs", chat=chat_id, ), ), ) elif next_match: chat_id = next_match.group(1) next_page = int(next_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Hi there! There are quite a few settings for {} - go ahead and pick what " "you're interested in.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules( next_page + 1, CHAT_SETTINGS, "stngs", chat=chat_id, ), ), ) elif back_match: chat_id = back_match.group(1) chat = bot.get_chat(chat_id) query.message.reply_text( text="Hi there! There are quite a few settings for {} - go ahead and pick what " "you're interested in.".format(escape_markdown(chat.title)), parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id), ), ) # ensure no spinny white circle bot.answer_callback_query(query.id) query.message.delete() except BadRequest as excp: if excp.message not in [ "Message is not modified", "Query_id_invalid", "Message can't be deleted", ]: LOGGER.exception("Exception in settings buttons. %s", str(query.data))
def settings_button(update: Update, context: CallbackContext): query = update.callback_query user = update.effective_user bot = context.bot mod_match = re.match(r"stngs_module\((.+?),(.+?)\)", query.data) prev_match = re.match(r"stngs_prev\((.+?),(.+?)\)", query.data) next_match = re.match(r"stngs_next\((.+?),(.+?)\)", query.data) back_match = re.match(r"stngs_back\((.+?)\)", query.data) try: if mod_match: chat_id = mod_match.group(1) module = mod_match.group(2) chat = bot.get_chat(chat_id) text = "*{}* has the following settings for the *{}* module:\n\n".format( escape_markdown(chat.title), CHAT_SETTINGS[module].__mod_name__, ) + CHAT_SETTINGS[module].__chat_settings__(chat_id, user.id) query.message.reply_text( text=text, parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup([ [ InlineKeyboardButton( text="Back", callback_data="stngs_back({})".format(chat_id), ), ], ], ), ) elif prev_match: chat_id = prev_match.group(1) curr_page = int(prev_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Chào bạn! Có khá nhiều cài đặt cho {} - hãy đến và chọn chúng! " "you're interested in.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules( curr_page - 1, CHAT_SETTINGS, "stngs", chat=chat_id, ), ), ) elif next_match: chat_id = next_match.group(1) next_page = int(next_match.group(2)) chat = bot.get_chat(chat_id) query.message.reply_text( "Chào bạn! Có khá nhiều cài đặt cho {} - hãy đến và chọn chúng! " "you're interested in.".format(chat.title), reply_markup=InlineKeyboardMarkup( paginate_modules( next_page + 1, CHAT_SETTINGS, "stngs", chat=chat_id, ), ), ) elif back_match: chat_id = back_match.group(1) chat = bot.get_chat(chat_id) query.message.reply_text( text= "Chào bạn! Có khá nhiều cài đặt cho {} - hãy đến và chọn chúng! " "you're interested in.".format(escape_markdown(chat.title)), parse_mode=ParseMode.MARKDOWN, reply_markup=InlineKeyboardMarkup( paginate_modules(0, CHAT_SETTINGS, "stngs", chat=chat_id), ), ) # ensure no spinny white circle bot.answer_callback_query(query.id) query.message.delete() except BadRequest as excp: if excp.message not in [ "Tin nhắn không được sửa đổi", "Query_id_invalid", "Không thể xóa tin nhắn", ]: LOGGER.exception("Ngoại lệ trong các nút cài đặt. %s", str(query.data))