def register(dp: Dispatcher, bot_checker: "BotChecker"): def add(*args, **kwargs): dp.add_handler(*args, **kwargs) keywords_handler = ConversationHandler( entry_points=[ InlineCallbackHandler( CallbackActions.EDIT_BOT_KEYWORDS, botproperties.set_keywords_init, serialize=lambda data: dict(to_edit=Bot.get(id=data["id"])), pass_chat_data=True, ) ], states={ BotStates.SENDING_KEYWORDS: [ MessageHandler(Filters.text, botproperties.add_keyword, pass_chat_data=True), InlineCallbackHandler( CallbackActions.REMOVE_KEYWORD, botproperties.remove_keyword, serialize=lambda data: dict( to_edit=Bot.get(id=data["id"]), keyword=Keyword.get(id=data["kwid"]), ), pass_chat_data=True, ), InlineCallbackHandler( CallbackActions.DELETE_KEYWORD_SUGGESTION, botproperties.delete_keyword_suggestion, serialize=lambda data: dict( to_edit=Bot.get(id=data["id"]), suggestion=Suggestion.get(id=data["suggid"]), ), pass_chat_data=True, ), ] }, fallbacks=[ CallbackQueryHandler( callback_router, pass_chat_data=True, pass_user_data=True, pass_job_queue=True, ) ], per_user=True, allow_reentry=False, ) add(keywords_handler) broadcasting_handler = ConversationHandler( entry_points=[ InlineCallbackHandler("broadcast", broadcasts.broadcast, pass_user_data=True), CommandHandler("broadcast", broadcasts.broadcast, pass_user_data=True), CommandHandler("bc", broadcasts.broadcast, pass_user_data=True), ], states={ BotStates.BROADCASTING: [ MessageHandler(Filters.text, broadcasts.broadcast_preview, pass_user_data=True) ] }, fallbacks=[], per_user=True, per_chat=False, allow_reentry=True, ) add(broadcasting_handler) add( CallbackQueryHandler( callback_router, pass_chat_data=True, pass_user_data=True, pass_job_queue=True, )) add( CommandHandler(("cat", "category", "categories"), select_category, pass_chat_data=True)) add( CommandHandler(("s", "search"), search_handler, pass_args=True, pass_chat_data=True)) add(MessageHandler(Filters.reply, reply_router, pass_chat_data=True), group=-1) add(MessageHandler(Filters.forwarded, forward_router, pass_chat_data=True)) add(CommandHandler("admin", admin.menu)) add(CommandHandler("a", admin.menu)) add( CommandHandler(("rej", "reject"), admin.reject_bot_submission, pass_args=True)) add( CommandHandler( ("rejsil", "rejectsil", "rejsilent", "rejectsilent"), lambda bot, update: admin.reject_bot_submission( bot, update, None, notify_submittant=False), )) # admin menu add(RegexHandler(captions.APPROVE_BOTS + ".*", admin.approve_bots)) add( RegexHandler(captions.APPROVE_SUGGESTIONS + ".*", admin.approve_suggestions)) add(RegexHandler(captions.PENDING_UPDATE + ".*", admin.pending_update)) add( RegexHandler(captions.SEND_BOTLIST, admin.prepare_transmission, pass_chat_data=True)) add(RegexHandler(captions.FIND_OFFLINE, admin.send_offline)) add(RegexHandler(captions.SEND_CONFIG_FILES, admin.send_runtime_files)) add(RegexHandler(captions.SEND_ACTIVITY_LOGS, admin.send_activity_logs)) # main menu add(RegexHandler(captions.ADMIN_MENU, admin.menu)) add(RegexHandler(captions.REFRESH, admin.menu)) add(RegexHandler(captions.CATEGORIES, select_category, pass_chat_data=True)) add(RegexHandler(captions.EXPLORE, explore.explore, pass_chat_data=True)) add(RegexHandler(captions.FAVORITES, favorites.send_favorites_list)) add(RegexHandler(captions.NEW_BOTS, show_new_bots, pass_chat_data=True)) add(RegexHandler(captions.SEARCH, search_handler, pass_chat_data=True)) add(RegexHandler(captions.CONTRIBUTING, help.contributing)) add(RegexHandler(captions.EXAMPLES, help.examples)) add(RegexHandler(captions.HELP, help.help)) add(RegexHandler("^/edit\d+$", admin.edit_bot, pass_chat_data=True), group=1) add(RegexHandler("^/approve\d+$", admin.edit_bot, pass_chat_data=True), group=1) add(CommandHandler("approve", admin.short_approve_list)) add(CommandHandler(("manybot", "manybots"), admin.manybots)) add( CommandHandler( "new", partial(contributions.new_bot_submission, bot_checker=bot_checker), pass_args=True, pass_chat_data=True, )) add( RegexHandler( ".*#new.*", lambda bot, update, chat_data: contributions.new_bot_submission( bot, update, chat_data, args=None, bot_checker=bot_checker), pass_chat_data=True, ), group=1, ) add( CommandHandler("offline", contributions.notify_bot_offline, pass_args=True)) add(RegexHandler(".*#offline.*", contributions.notify_bot_offline), group=1) add(CommandHandler("spam", contributions.notify_bot_spam, pass_args=True)) add(RegexHandler(".*#spam.*", contributions.notify_bot_spam), group=1) add(CommandHandler("help", help.help)) add(CommandHandler(("contribute", "contributing"), help.contributing)) add(CommandHandler("examples", help.examples)) add(CommandHandler("rules", help.rules)) add( CommandHandler(("addfav", "addfavorite"), favorites.add_favorite_handler, pass_args=True)) add( CommandHandler(("f", "fav", "favorites"), favorites.send_favorites_list)) add(CommandHandler(("e", "explore"), explore.explore, pass_chat_data=True)) add(CommandHandler("official", explore.show_official)) add( CommandHandler( "ban", partial(admin.ban_handler, ban_state=True), pass_args=True, pass_chat_data=True, )) add( CommandHandler( "unban", partial(admin.ban_handler, ban_state=False), pass_args=True, pass_chat_data=True, )) add(CommandHandler("t3chno", t3chnostats)) add(CommandHandler("random", eastereggs.send_random_bot)) add( CommandHandler("easteregg", eastereggs.send_next, pass_args=True, pass_job_queue=True)) add(CommandHandler("subscribe", manage_subscription)) add(CommandHandler("newbots", show_new_bots, pass_chat_data=True)) add(CommandHandler("accesstoken", access_token)) add( CommandHandler(("stat", "stats", "statistic", "statistics"), admin.send_statistic)) add( CommandHandler(("log", "logs"), admin.send_activity_logs, pass_args=True)) add( CommandHandler( ("debug", "analysis", "ana", "analyze"), lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.ANALYSIS), pass_args=True, )) add( CommandHandler( "info", lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.INFO), pass_args=True, )) add( CommandHandler( ("detail", "detailed"), lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.DETAILED), pass_args=True, )) add( CommandHandler( ("warn", "warning"), lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.WARN), pass_args=True, )) add( CommandHandler( "important", lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.IMPORTANT), pass_args=True, )) add( MessageHandler( Filters.text, lambda bot, update: botlistchat.text_message_logger( bot, update, log), ), group=99, ) for hashtag in HINTS.keys(): add( RegexHandler(r"{}.*".format(hashtag), botlistchat.hint_handler, pass_job_queue=True), group=1, ) add(CommandHandler(("hint", "hints"), botlistchat.show_available_hints)) add( RegexHandler( "^{}$".format(settings.REGEX_BOT_ONLY), send_bot_details, pass_chat_data=True, )) add( ChosenInlineResultHandler(inlinequeries.chosen_result, pass_chat_data=True)) add( InlineQueryHandler(inlinequeries.inlinequery_handler, pass_chat_data=True)) add(MessageHandler(Filters.all, all_handler, pass_chat_data=True), group=98)
def register(dp): keywords_handler = ConversationHandler( entry_points=[ InlineCallbackHandler( CallbackActions.EDIT_BOT_KEYWORDS, botproperties.set_keywords_init, serialize=lambda data: dict(to_edit=Bot.get(id=data['id'])), pass_chat_data=True) ], states={ BotStates.SENDING_KEYWORDS: [ MessageHandler(Filters.text, botproperties.add_keyword, pass_chat_data=True), InlineCallbackHandler( CallbackActions.REMOVE_KEYWORD, botproperties.remove_keyword, serialize=lambda data: dict(to_edit=Bot.get(id=data['id']), keyword=Keyword.get(id=data[ 'kwid'])), pass_chat_data=True) ], }, fallbacks=[ CallbackQueryHandler(callback_router, pass_chat_data=True, pass_user_data=True, pass_job_queue=True) ], per_user=True, allow_reentry=False) dp.add_handler(keywords_handler) broadcasting_handler = ConversationHandler( entry_points=[ InlineCallbackHandler('broadcast', broadcasts.broadcast, pass_user_data=True), CommandHandler("broadcast", broadcasts.broadcast, pass_user_data=True), CommandHandler("bc", broadcasts.broadcast, pass_user_data=True) ], states={ BotStates.BROADCASTING: [ MessageHandler(Filters.text, broadcasts.broadcast_preview, pass_user_data=True), ], }, fallbacks=[], per_user=True, per_chat=False, allow_reentry=True) dp.add_handler(broadcasting_handler) dp.add_handler( CallbackQueryHandler(callback_router, pass_chat_data=True, pass_user_data=True, pass_job_queue=True)) dp.add_handler( CommandHandler(('cat', 'category', 'categories'), select_category, pass_chat_data=True)) dp.add_handler( CommandHandler(('s', 'search'), search_handler, pass_args=True, pass_chat_data=True)) dp.add_handler(MessageHandler(Filters.reply, reply_router, pass_chat_data=True), group=0) dp.add_handler( MessageHandler(Filters.forwarded, forward_router, pass_chat_data=True)) dp.add_handler(CommandHandler("admin", admin.menu)) dp.add_handler(CommandHandler("a", admin.menu)) # admin menu dp.add_handler( RegexHandler(captions.APPROVE_BOTS + '.*', admin.approve_bots)) dp.add_handler( RegexHandler(captions.APPROVE_SUGGESTIONS + '.*', admin.approve_suggestions)) dp.add_handler( RegexHandler(captions.PENDING_UPDATE + '.*', admin.pending_update)) dp.add_handler( RegexHandler(captions.SEND_BOTLIST, admin.prepare_transmission, pass_chat_data=True)) dp.add_handler(RegexHandler(captions.FIND_OFFLINE, admin.send_offline)) dp.add_handler( RegexHandler(captions.SEND_CONFIG_FILES, admin.send_runtime_files)) dp.add_handler( RegexHandler(captions.SEND_ACTIVITY_LOGS, admin.send_activity_logs)) # main menu dp.add_handler(RegexHandler(captions.ADMIN_MENU, admin.menu)) dp.add_handler(RegexHandler(captions.REFRESH, admin.menu)) dp.add_handler( RegexHandler(captions.CATEGORIES, select_category, pass_chat_data=True)) dp.add_handler( RegexHandler(captions.EXPLORE, explore.explore, pass_chat_data=True)) dp.add_handler( RegexHandler(captions.FAVORITES, favorites.send_favorites_list)) dp.add_handler( RegexHandler(captions.NEW_BOTS, show_new_bots, pass_chat_data=True)) dp.add_handler( RegexHandler(captions.SEARCH, search_handler, pass_chat_data=True)) dp.add_handler(RegexHandler(captions.CONTRIBUTING, help.contributing)) dp.add_handler(RegexHandler(captions.EXAMPLES, help.examples)) dp.add_handler(RegexHandler(captions.HELP, help.help)) dp.add_handler(RegexHandler("^/edit\d+$", admin.edit_bot, pass_chat_data=True), group=1) dp.add_handler(CommandHandler('reject', admin.reject_bot_submission)) dp.add_handler(CommandHandler('rej', admin.reject_bot_submission)) dp.add_handler(RegexHandler("^/approve\d+$", admin.edit_bot, pass_chat_data=True), group=1) dp.add_handler(CommandHandler('approve', admin.short_approve_list)) dp.add_handler(CommandHandler(('manybot', 'manybots'), admin.manybots)) dp.add_handler( CommandHandler('new', contributions.new_bot_submission, pass_args=True, pass_chat_data=True)) dp.add_handler(RegexHandler('.*#new.*', contributions.new_bot_submission, pass_chat_data=True), group=1) dp.add_handler( CommandHandler('offline', contributions.notify_bot_offline, pass_args=True)) dp.add_handler(RegexHandler('.*#offline.*', contributions.notify_bot_offline), group=1) dp.add_handler( CommandHandler('spam', contributions.notify_bot_spam, pass_args=True)) dp.add_handler(RegexHandler('.*#spam.*', contributions.notify_bot_spam), group=1) dp.add_handler( RegexHandler('^{}$'.format(settings.REGEX_BOT_ONLY), send_bot_details, pass_chat_data=True)) dp.add_handler(CommandHandler('help', help.help)) dp.add_handler( CommandHandler(("contribute", "contributing"), help.contributing)) dp.add_handler(CommandHandler("examples", help.examples)) dp.add_handler(CommandHandler("rules", help.rules)) dp.add_handler( CommandHandler(("addfav", "addfavorite"), favorites.add_favorite_handler, pass_args=True)) dp.add_handler( CommandHandler(("f", "fav", "favorites"), favorites.send_favorites_list)) dp.add_handler( CommandHandler(("e", "explore"), explore.explore, pass_chat_data=True)) dp.add_handler(CommandHandler("official", explore.show_official)) dp.add_handler( CommandHandler('ban', lambda bot, update, args: admin.ban_handler( bot, update, args, True), pass_args=True)) dp.add_handler( CommandHandler('unban', lambda bot, update, args: admin.ban_handler( bot, update, args, False), pass_args=True)) dp.add_handler(CommandHandler('t3chno', t3chnostats)) dp.add_handler(CommandHandler('random', eastereggs.send_random_bot)) dp.add_handler( CommandHandler('easteregg', eastereggs.send_next, pass_args=True)) dp.add_handler(CommandHandler("subscribe", manage_subscription)) dp.add_handler( CommandHandler("newbots", show_new_bots, pass_chat_data=True)) dp.add_handler(CommandHandler("accesstoken", access_token)) dp.add_handler( CommandHandler(('stat', 'stats', 'statistic', 'statistics'), admin.send_statistic)) dp.add_handler( CommandHandler(('log', 'logs'), admin.send_activity_logs, pass_args=True)) dp.add_handler( CommandHandler(('debug', 'analysis', 'ana', 'analyze'), lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.ANALYSIS), pass_args=True)) dp.add_handler( CommandHandler('info', lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.INFO), pass_args=True)) dp.add_handler( CommandHandler(('detail', 'detailed'), lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.DETAILED), pass_args=True)) dp.add_handler( CommandHandler(('warn', 'warning'), lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.WARN), pass_args=True)) dp.add_handler( CommandHandler('important', lambda bot, update, args: admin.send_activity_logs( bot, update, args, Statistic.IMPORTANT), pass_args=True)) dp.add_handler(MessageHandler( Filters.text, lambda bot, update: botlistchat.text_message_logger(bot, update, log)), group=99) for hashtag in HINTS.keys(): dp.add_handler(RegexHandler(r'{}.*'.format(hashtag), botlistchat.hint_handler), group=1) dp.add_handler( CommandHandler(('hint', 'hints'), botlistchat.show_available_hints)) dp.add_handler( ChosenInlineResultHandler(inlinequeries.chosen_result, pass_chat_data=True)) dp.add_handler( InlineQueryHandler(inlinequeries.inlinequery_handler, pass_chat_data=True)) dp.add_handler(MessageHandler(Filters.all, all_handler, pass_chat_data=True), group=98)