def init_dispatcher(dispatcher: Dispatcher) -> None: conversation_handler = get_conversation_handler() dispatcher.add_handler(conversation_handler) dispatcher.add_error_handler(handle_errors)
def add_handler(dp:Dispatcher): guess_handler = CommandHandler('pdguessbwhd', guess) dp.add_handler(guess_handler) dp.add_handler(CallbackQueryHandler(buttonCallback,pattern="^b1:[A-Za-z0-9_]*"))
def webhook(event, context): """ Runs the Telegram webhook. """ bot = configure_telegram() dispatcher = Dispatcher(bot, None, workers=0) dispatcher.add_handler(CommandHandler('start', start_callback)) dispatcher.add_handler(CommandHandler('version', version_callback)) dispatcher.add_handler(CommandHandler('gasprice', gas_price_callback)) dispatcher.add_handler( CommandHandler('refratio', refratio_callback, pass_args=True)) dispatcher.add_handler( CommandHandler('predict', predict_callback, pass_args=True)) dispatcher.add_handler( CommandHandler('stats', user_stats_callback, pass_args=True)) logger.info('Event: {}'.format(event)) if event.get('httpMethod') == 'POST' and event.get('body'): logger.info('Message received') update = telegram.Update.de_json(json.loads(event.get('body')), bot) dispatcher.process_update(update) logger.info('Message sent') return OK_RESPONSE return ERROR_RESPONSE
update = telegram.Update.de_json(request.get_json(force=True), bot) # Update dispatcher process that handler to process this message dispatcher.process_update(update) return 'ok' def reply_handler(bot, update): """Reply message.""" text = update.message.text if text == 'FeedMe': update.message.reply_text("Start Feeding") else: newText = '<b>Try other key words</b>' #newText = '<b>Try Again</b> <i>italic</i> <a href="http://google.com">link</a>.' update.message.reply_text(newText,parse_mode=telegram.ParseMode.HTML) # New a dispatcher for bot dispatcher = Dispatcher(bot, None) # Add handler for handling message, there are many kinds of message. For this handler, it particular handle text # message. dispatcher.add_handler(MessageHandler(Filters.text, reply_handler)) if __name__ == "__main__": # Running server app.run(debug=True)
def add_handler(dp:Dispatcher): dp.add_handler(MessageHandler(Filters.text & (~Filters.command),message)) dp.add_handler(CallbackQueryHandler(reaction_callback,pattern="^m:[A-Za-z0-9_:]*"))
"Take a stress pill and think things over.", "Thou Foul Lump Of Deformity! (Shakespeare, Richard III)", "Davvero? Il tuo QI è circa quello della temperatura ambiente." ] msg = random.choice(insults) bot.send_message(chat_id=update.message.chat_id, text=msg) def unknown(bot, update): #update.message.reply_animation("CgADBAADoq0AAhEdZAfaW_NYik5pqAI") update.message.reply_text("???") # Hook commands to command handlers dispatcher.add_handler(CommandHandler("start", start)) dispatcher.add_handler(CommandHandler("sollecita", sollecita)) dispatcher.add_handler(CommandHandler("macchina", macchina)) dispatcher.add_handler(CommandHandler("auto", macchina)) dispatcher.add_handler(CommandHandler("posto", posto)) dispatcher.add_handler(CommandHandler("macchinaobici", pref_posto)) dispatcher.add_handler(CommandHandler("biciomacchina", pref_posto)) dispatcher.add_handler(CommandHandler("autoobici", pref_posto)) dispatcher.add_handler(CommandHandler("bicioauto", pref_posto)) dispatcher.add_handler(CommandHandler("bici", bicicletta)) dispatcher.add_handler(CommandHandler("bicicletta", bicicletta))
bot.send_message(chat_id=update.message.chat_id, text=reply) def echo_sticker(bot, update): """callback function for sticker message handler""" bot.send_sticker(chat_id=update.message.chat_id, sticker=update.message.sticker.file_id) def error(bot, update): """callback function for error handler""" logger.error("Update '%s' caused error '%s'", update, update.error) bot = Bot(TOKEN) try: bot.set_webhook("https://newsbot1711.herokuapp.com/" + TOKEN) except Exception as e: print(e) dp = Dispatcher(bot, None) dp.add_handler(CommandHandler("start", start)) dp.add_handler(CommandHandler("help", _help)) dp.add_handler(CommandHandler("news", news)) dp.add_handler(MessageHandler(Filters.text, reply_text)) dp.add_handler(MessageHandler(Filters.sticker, echo_sticker)) dp.add_error_handler(error) if __name__ == "__main__": app.run(port=8443)
bot.addStickerToSet(user_id=query.from_user.id, name=storage.name, png_sticker=open("example2.png", "rb"), emojis=emojis[int(query.data.split(" ")[1])]) x = bot.getStickerSet(name="user" + str(userHash) + "_" + query.data.split(" ")[1] + "_by_sticker_everything_bot") bot.deleteStickerFromSet(storage.stickers[0].file_id) bot.editMessageText(chat_id = query.message.chat.id, message_id = query.message.message_id, text = "已設定預設上傳貼圖包為:\nNow default uploading sticker pack is :\n "+x.title) dispatcher = Dispatcher(bot, None) dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(CommandHandler('new', new)) dispatcher.add_handler(CommandHandler('set',setup)) dispatcher.add_handler(CommandHandler('list', allPack)) dispatcher.add_handler(CommandHandler('now', now)) dispatcher.add_handler(CommandHandler('help', help_)) dispatcher.add_handler(CommandHandler('about', about)) dispatcher.add_handler(MessageHandler(Filters.photo, add)) dispatcher.add_handler(MessageHandler(Filters.document, add2)) dispatcher.add_handler(CallbackQueryHandler(process_result, pass_job_queue=True)) if __name__ == "__main__": app.run(debug=True)
def add_dispatcher(dp:Dispatcher): dp.add_handler(CommandHandler('ainfo', getmsgtype)) dp.add_handler(CommandHandler("info", info)) return [BotCommand('ainfo','得到消息中的对象声明(Made by Parker&hdcola)'),BotCommand('info','查看消息的信息数据')]
class TelegramInterface(BotInterface): API_TOKEN = os.environ.get('TELEGRAM_BOT_TOKEN') ADMINS_CHAT = os.environ.get('BOT_ADMINS_CHAT') EXAMPLE_FILE_URL = os.getenv('EXAMPLE_MEDIA') def __init__(self): self.bot = Bot(self.API_TOKEN) self.dispatcher = Dispatcher(self.bot, None, workers=0) self._init_handlers() def _init_handlers(self): handlers = [ MessageHandler( Filters.text & (Filters.entity(MessageEntity.URL) | Filters.entity(MessageEntity.TEXT_LINK)), self._handle_message), CommandHandler(['start', 'help'], self._handle_init_message), CallbackQueryHandler(self._handle_mismatch_button) ] for handler in handlers: self.dispatcher.add_handler(handler) @staticmethod def _handle_message(bot, update): text = update.message.text response = process_message(text) response_keyboard = TelegramInterface.get_keyboard(update.message) if response: update.message.reply_markdown(response, quote=True, disable_web_page_preview=True, disable_notification=True, reply_markup=response_keyboard) @staticmethod def _handle_init_message(bot, update): if TelegramInterface.EXAMPLE_FILE_URL: bot.sendVideo(chat_id=update.message.chat.id, video=TelegramInterface.EXAMPLE_FILE_URL, caption=WELCOME_MSG) else: bot.sendMessage(chat_id=update.message.chat.id, text=WELCOME_MSG) @staticmethod def _handle_mismatch_button(bot, update): if not TelegramInterface.ADMINS_CHAT: return user_message_id = update.callback_query.message.reply_to_message.message_id bad_response_message_id = update.callback_query.message.message_id message_chat_id = update.callback_query.message.chat.id bot.forwardMessage(chat_id=TelegramInterface.ADMINS_CHAT, from_chat_id=message_chat_id, message_id=user_message_id) bot.forwardMessage(chat_id=TelegramInterface.ADMINS_CHAT, from_chat_id=message_chat_id, message_id=bad_response_message_id) bot.edit_message_reply_markup(chat_id=message_chat_id, message_id=bad_response_message_id, reply_markup=None) def process_message(self, message_data): update = Update.de_json(message_data, self.bot) self.dispatcher.process_update(update) @staticmethod def get_keyboard(message): if not TelegramInterface.ADMINS_CHAT: return message_id = message.message_id feedback_button = InlineKeyboardButton( text="report mismatch", callback_data='/bad_response {}'.format(message_id)) buttons = [[feedback_button]] return InlineKeyboardMarkup(inline_keyboard=buttons)
url="https://t.me/addstickers/" + "line" + str(sticker_number) + "_by_RekcitsEnilbot") ]])) return temp_message = title + "\n發現" + str( len(all_stickers)) + "張貼圖\n\nFound " + str( len(all_stickers)) + " stickers\n" temp_message2 = temp_message for i in range(len(all_stickers)): temp_message2 += "_" temp_message2 += "0/" + str(len(all_stickers)) bot.editMessageText(chat_id=update.message.chat.id, message_id=main_message, text=temp_message2) main_handle_for_message_sticker(sticker_number, update.message.chat.id, main_message, all_stickers, title) dispatcher = Dispatcher(bot, None) dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(CommandHandler('help', help_)) dispatcher.add_handler(CommandHandler('about', about)) dispatcher.add_handler(MessageHandler(Filters.text, reply_handler)) if __name__ == "__main__": app.run(debug=True)
def init_dispatcher_handlers(dispatcher: Dispatcher): dispatcher.add_handler( MessageHandler(filters=(Filters.regex(r'^(Л|л)унный п(е|ё)с') & ~Filters.update.edited_message), callback=command.call))
) def status_addcase(bot, update, args): # with psycopg2.connect(os.environ['DATABASE_URL'], sslmode='require') as conn: # with conn.cursor() as cur: # cur.execute('insert into case_status (name, url) values (\'{}\',\'{}\');'.format(b64encode(update.args[0].encode()).decode(), b64encode(update.args[1].encode()).decode())) update.message.reply_text( '成功新增案件,辛苦了❤️\n {} {} {} {}'.format( args[0], args[1], type(bot), type(update)), quote=False ) #status_listall(bot, update) @app.route('/' + TOKEN, methods=['POST']) def webhook_handler(): """Set route /hook with POST method will trigger this method.""" if request.method == "POST": update = telegram.Update.de_json(request.get_json(force=True), bot) dispatcher.process_update(update) return 'ok' dispatcher = Dispatcher(bot, None) #dispatcher.add_handler(MessageHandler(Filters.text, reply_handler)) dispatcher.add_handler(CommandHandler(['start'], start)) dispatcher.add_handler(CommandHandler(['status_listall'], status_listall)) dispatcher.add_handler(CommandHandler(['status_addcase'], status_addcase)) if __name__ == "__main__": app.run()
return message bot = TelegramBot() dispatcher = Dispatcher(bot.bot, None, workers=0) # Define a few command handlers. These usually take the two arguments update and # context. Error handlers also receive the raised TelegramError object in error. def start(update, context): """Send a message when the command /start is issued.""" update.message.reply_text('Hi!') def help_command(update, context): """Send a message when the command /help is issued.""" update.message.reply_text('Help!') def echo(update, context): """Echo the user message.""" update.message.reply_text(update.message.text) # on different commands - answer in Telegram dispatcher.add_handler(CommandHandler("start", start)) dispatcher.add_handler(CommandHandler("help", help_command)) # on noncommand i.e message - echo the message on Telegram dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
def add_callbacks(dp: Dispatcher): """ Register all the callbacks defined in :mod:`cmsysbot.controller.menu` and :mod:`cmsysbot.controller.general` Args: dp (:obj:`telegram.ext.Dispatcher`): Telegram object that registers all handlers. """ # Show Main Menu dp.add_handler( CallbackQueryHandler(menu.main, pattern=State.MAIN, pass_user_data=True)) # Show Connect Menu dp.add_handler( CallbackQueryHandler(menu.select_department, pattern=State.CONNECT, pass_user_data=True)) # Settings for the structure menu: with_subsections = [] without_subsections = [] for section in states.config_file.get_all_sections(): if section.has_subsections(): with_subsections.append(f"^{section.name}$") else: without_subsections.append(f"^{section.name}$") # On the structure menu (when selecting a department/subsection), the # returned value after clicking on a button will be the name of the # section, so a regex that matches all the possible section names must be # crafted. # # For example, given the following structure: # OSL # \- A # \- B # \- C # # The content of the regex will be: # with_subsections_regex = OSL|B # without_subsections_regex = A|C # # So, if we click on 'OSL', the callback return data will be 'OSL', which # matches the `with_subsections_regex`. This pattern is associated to the # function menu.structure, which then shows the subsections for 'OSL' # On the other hand, if we click on 'A', which doesn't has any subsections, # the return data from the callback ('A') will match # `withouth_subsections_regex`, calling the function `menu.ip_selection` # instead. with_subsections_regex = "|".join(with_subsections) without_subsections_regex = "|".join(without_subsections) # Show structure of department (and subdepartments) dp.add_handler( CallbackQueryHandler(menu.structure, pattern=with_subsections_regex, pass_user_data=True)) # When clicked in a section without subsections, show ip list dp.add_handler( CallbackQueryHandler(menu.ip_selection, pattern=without_subsections_regex, pass_user_data=True)) # When clicked on an ip, show a menu asking if it should continue with # the connection dp.add_handler( CallbackQueryHandler(menu.confirm_connect_ip, pattern=State.CONFIRM_CONNECT, pass_user_data=True)) # Triggered when clicking on Disconnect button from main menu. dp.add_handler( CallbackQueryHandler(general.disconnect, pattern=State.DISCONNECT, pass_user_data=True)) # Show menu for filtering computers dp.add_handler( CallbackQueryHandler(menu.filter_computers, pattern=State.FILTER_COMPUTERS, pass_user_data=True)) # Triggered when clicking on the Include button from the filter computers # menu dp.add_handler( CallbackQueryHandler( general.include_computers, pattern=State.INCLUDE_COMPUTERS, pass_user_data=True, )) # Triggered when clicking on the Exclude button from the filter computers # menu dp.add_handler( CallbackQueryHandler( general.exclude_computers, pattern=State.EXCLUDE_COMPUTERS, pass_user_data=True, )) # Triggered when clicking on the Update Ips button from the main menu dp.add_handler( CallbackQueryHandler(general.update_ips, pattern=State.UPDATE_IPS, pass_user_data=True))
class TelegramBot(object): """Основной класс бота, отвечающий за всю интеграцию с Flask""" def __init__(self, app=None): """Инициализация класса""" self.bot = None self.dispatcher = None self.config = None self.logger = logging.getLogger(__name__) if app is not None: self.init_app(app) def init_app(self, app): """Настройка и запуск бота""" self.config = app.config self.init_bot() # Определяем режим работы бота - либо с вебхуками, либо опросами bot_mode = self.config.get('TELEGRAM_BOT_MODE') if not bot_mode or bot_mode not in BOT_MODES: bot_mode = POLLING self.logger.warning( 'TELEGRAM_BOT_MODE does not specified, or does not correct. ' 'Used POLLING by default') if bot_mode == WEBHOOK: self.dispatcher = Dispatcher(self.bot, None) site_domain = self.config.get('TELEGRAM_WEBHOOK_DOMAIN') if not site_domain: raise PTBConfigException # raise Exception('You should provide proper ' # 'TELEGRAM_WEBHOOK_URL to use WEBHOOK mode') hook_route = self.config.get( 'TELEGRAM_WEBHOOK_ROUTE', '/webhook') webhook_url = u'{hook_domain}{hook_route}'.format( hook_domain=site_domain, hook_route=hook_route) self.bot.setWebhook(webhook_url) # Регистрация адреса получения вэбхука app.add_url_rule( hook_route, 'webhook', webhook, methods=['POST']) else: self.start_polling() # Привязываем текущего бота к приложению для корректной обработки # принятого через вэбхук обновления app.ptb = self def init_bot(self): token = self.config.get('TELEGRAM_TOKEN') if not token: raise PTBConfigException # Настраиваем класс Request для бота proxy_url = None urllib3_proxy_kwargs = None if self.config.get('TELEGRAM_PROXY_URL'): proxy_url = self.config.get('TELEGRAM_PROXY_URL') urllib3_proxy_kwargs = { 'username': self.config.get('TELEGRAM_PROXY_USERNAME'), 'password': self.config.get('TELEGRAM_PROXY_PASSWORD'), } # Проверяем не прописаны ли в самом адресе юзер и пароль auth_part = parse_url(proxy_url).auth if auth_part and len(auth_part) == 2: username, password = auth_part # Перезаписываем, только если данные не были прописаны явно urllib3_proxy_kwargs.setdefault('username', username) urllib3_proxy_kwargs.setdefault('password', password) _request = Request( proxy_url=proxy_url, urllib3_proxy_kwargs=urllib3_proxy_kwargs) self.bot = Bot(token=token, request=_request) def start_polling(self): """Настройка бота на опрос серверов для получения обновлений""" self.logger.debug('Initializing Updater...') updater = Updater(bot=self.bot) self.logger.debug('Updater initialized') self.dispatcher = updater.dispatcher self.logger.debug('Starting polling...') updater.start_polling() self.logger.debug('Pooling started') def add_handler(self, method, *args, **kwargs): """Регистрация хендлера с логированием""" self.dispatcher.add_handler(method, *args, **kwargs) self.logger.info('Handler % added', repr(method))
def get_dispatcher(): bot = Bot(TOKEN) dp = Dispatcher(bot=bot, update_queue=None, use_context=True) dp.add_handler(CommandHandler("re", handle_re)) dp.add_handler(CommandHandler("stats", restats)) dp.add_handler(CommandHandler("pai", handle_pai)) dp.add_handler(CommandHandler("kween", handle_kween)) dp.add_handler(CommandHandler("abru", handle_abru)) dp.add_handler(CommandHandler("githuboli", handle_githuboli)) dp.add_handler(CommandHandler("gkr", handle_gkr)) dp.add_handler(CommandHandler("qt", handle_quantum)) dp.add_handler(CommandHandler("gawd", handle_gawd)) dp.add_handler(CommandHandler("wow", handle_wow)) dp.add_handler(CommandHandler("banyarbash", ban_yarbash)) dp.add_handler(CommandHandler("kadakkpurath", ban_someone)) dp.add_handler(CommandHandler("hbd", handle_hbd)) dp.add_handler(CommandHandler("tq", handle_umma)) dp.add_handler(CommandHandler("dice", toss_idu)) dp.add_handler(CommandHandler("pewer", handle_pewer)) dp.add_handler(MessageHandler(Filters.text, respond_with_frande)) return dp
@app.route('/deletewebhook', methods=['GET', 'POST']) def delete_webhook(): s = bot.delete_webhook() if s: return "webhook delete ok" else: return "webhook delete failed" @app.route('/') def index(): return '.' # New a dispatcher for bot dispatcher = Dispatcher(bot, None) # Add handler for handling message, there are many kinds of message. For this handler, it particular handle text # message. dispatcher.add_handler(MessageHandler(Filters.text, reply_handler)) dispatcher.add_handler(CommandHandler('start', start)) dispatcher.add_handler(CallbackQueryHandler(button)) dispatcher.add_handler(CommandHandler('help', help_command)) dispatcher.add_handler(CommandHandler('alert', alert_command)) if __name__ == "__main__": # Running server app.run(host='0.0.0.0', port=8443, debug=True) # app.run(debug=True)
def start_bot(bot): dp = Dispatcher(bot, None, workers=0, use_context=True) dp.add_handler(CommandHandler('start', help_start)) dp.add_handler(CommandHandler('help', help_start)) dp.add_handler( MessageHandler(Filters.text & Filters.regex('ℹ️ О сервисе'), help_info)) dp.add_handler( MessageHandler( Filters.text & Filters.regex('🚀 Увеличить лимит запросов'), help_no_limits)) dp.add_handler( CallbackQueryHandler(help_analyse_category, pattern='keyboard_analyse_category')) dp.add_handler( CallbackQueryHandler(help_catalog_link, pattern='keyboard_help_catalog_link')) dp.add_handler( CallbackQueryHandler(help_feedback, pattern='keyboard_help_info_feedback')) dp.add_handler( MessageHandler( Filters.text & Filters.regex( r'(ozon\.ru|beru\.ru|goods\.ru|tmall\.ru|lamoda\.ru)/'), help_marketplace_not_supported)) dp.add_handler( MessageHandler( Filters.text & Filters.regex(r'www\.wildberries\.ru/catalog/.*/detail\.aspx'), help_command_not_found)) dp.add_handler( MessageHandler( Filters.text & Filters.regex(r'www\.wildberries\.ru/catalog/'), wb_catalog)) dp.add_handler( MessageHandler( Filters.text & Filters.regex(r'www\.wildberries\.ru/brands/'), wb_catalog)) dp.add_handler( MessageHandler( Filters.text & Filters.regex(r'www\.wildberries\.ru/promotions/'), wb_catalog)) dp.add_handler(MessageHandler(Filters.all, help_command_not_found)) return dp
def add_handler(dp: Dispatcher): dp.add_handler(CommandHandler('gamestart24', start)) dp.add_handler(CommandHandler('gameq', question)) dp.add_handler(CommandHandler('gameend24', end)) dp.add_handler(CommandHandler('gamerules', rules)) dp.add_handler(CommandHandler('gamel', List_Lifetime_Stats)) dp.add_handler( MessageHandler( Filters.text & (~Filters.command) & Filters.chat_type.groups, proc_text)) return [ BotCommand('gamestart24', '开始一个24点游戏'), BotCommand('gameq', '查询当前进行中的24点游戏'), BotCommand('gameend24', '结束当前进行的游戏'), BotCommand('gamerules', '查询24点的游戏规则'), BotCommand('gamel', '查询总排行榜') ]
def register(dp: Dispatcher): dp.add_handler(CommandHandler("start", start))
def add_handlers(dp: Dispatcher): for name, handler in hdl.handlers.items(): logger.info('Adding ' + name + ' handler') dp.add_handler(handler) logger.info('Handler added successfully')
while verb == "": verb = random.choice(verbs) if verb[-3:] == "ere": verb = verb[:-3] + "i" elif verb[-3:] == "ire": verb = verb[:-2] + "sci" elif verb[-3:] == "are": verb = verb[:-2] else: verb = "" msg = verb + "milano" bot.send_message(chat_id=update.message.chat_id, text=msg) # Hook commands to command handlers dispatcher.add_handler(CommandHandler("start", start)) dispatcher.add_handler(CommandHandler("sollecita", sollecita)) dispatcher.add_handler(CommandHandler("macchina", macchina)) dispatcher.add_handler(CommandHandler("auto", macchina)) dispatcher.add_handler(CommandHandler("posto", posto)) dispatcher.add_handler(CommandHandler("macchinaobici", pref_posto)) dispatcher.add_handler(CommandHandler("biciomacchina", pref_posto)) dispatcher.add_handler(CommandHandler("autoobici", pref_posto)) dispatcher.add_handler(CommandHandler("bicioauto", pref_posto)) dispatcher.add_handler(CommandHandler("bici", bicicletta)) dispatcher.add_handler(CommandHandler("bicicletta", bicicletta)) dispatcher.add_handler(CommandHandler("status", status)) dispatcher.add_handler(CommandHandler("milano", milano)) dispatcher.add_handler(CommandHandler("help", bot_help)) dispatcher.add_handler(CommandHandler("guest", postoguest))
def telegram_bot_runner(): bot = Bot(current_app.config.get('TOKEN')) update_queue = Queue() dp = Dispatcher(bot, update_queue, use_context=True) dp.add_handler(CommandHandler("start", start)) dp.add_handler( MessageHandler(Filters.regex('^(Посмотреть расписание)$'), check_agenda)) dp.add_handler( MessageHandler(Filters.regex('^(Создать мероприятие)$'), add_event)) dp.add_handler(CommandHandler("help", help)) dp.add_handler(CommandHandler('google_auth', google_auth)) dp.add_handler( CommandHandler('google_set_default_calendar', google_set_default_calendar)) dp.add_handler(CallbackQueryHandler(button)) dp.add_handler(CommandHandler('google_revoke', google_revoke)) dp.add_error_handler(error) thread = Thread(target=dp.start, name='dp') thread.start() return bot, update_queue
def register(dp: Dispatcher): 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) 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( 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=-1) 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)) dp.add_handler( CommandHandler(('rej', 'reject'), admin.reject_bot_submission, pass_args=True)) dp.add_handler( CommandHandler(('rejsil', 'rejectsil', 'rejsilent', 'rejectsilent'), lambda bot, update: admin.reject_bot_submission( bot, update, None, notify_submittant=False))) # 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(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(keywords_handler) dp.add_handler( CallbackQueryHandler(callback_router, pass_chat_data=True, pass_user_data=True, pass_job_queue=True)) 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)
url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-80' if number == 'callback_button12c': url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-81' context.bot.send_message(chat_id=update.effective_message.chat_id, text='Имангали бог, Нурик лох') if number == 'callback_button12d': url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-82' if number == 'callback_button12e': url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-83' if number == 'CALLBACK_BUTTON12f': url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-84' driver = webdriver.Firefox() driver.get(url) sleep(5) driver.get_screenshot_as_file("screenshot.png") driver.quit() print("end...") context.bot.send_photo(chat_id=update.effective_message.chat_id, photo=open('screenshot.png', 'rb')) context.bot.send_message( chat_id=update.effective_message.chat_id, text='Нажмите на команду "/start" чтобы заново выбрать класс') start_handler = CommandHandler('start', start) callback_handler = CallbackQueryHandler(callback) dispatcher.add_handler(start_handler) dispatcher.add_handler(callback_handler)
def init(dispatcher: Dispatcher): """Provide handlers initialization.""" dispatcher.add_handler(CommandHandler('list_expense', list_expense))
def add_conversation_callbacks(dp: Dispatcher): """ Register all the callbacks defined in :mod:`cmsysbot.controller.conversation` Args: dp (:obj:`telegram.ext.Dispatcher`): Telegram object that registers all handlers. """ # Login handler login_conv_handler = ConversationHandler( entry_points=[ CallbackQueryHandler(conversation.login, pattern=State.GET_CREDENTIALS) ], states={ conversation.USERNAME: [ MessageHandler(Filters.text, conversation.get_username, pass_user_data=True) ], conversation.PASSWORD: [ MessageHandler( Filters.text, conversation.get_password, pass_user_data=True, pass_job_queue=True, ) ], }, fallbacks=[ RegexHandler("^/cancel$", menu.new_main, pass_user_data=True) ], allow_reentry=True, ) plugin_exec_handler = ConversationHandler( entry_points=[ CallbackQueryHandler( conversation.start_plugin_from_callback, pattern=State.START_PLUGIN, pass_user_data=True, ), MessageHandler( Filters.document, conversation.start_plugin_from_download, pass_user_data=True, ), ], states={ conversation.ANSWER: [ MessageHandler(Filters.text, conversation.get_answer, pass_user_data=True) ] }, fallbacks=[ RegexHandler("^/cancel$", menu.new_main, pass_user_data=True) ], allow_reentry=True, ) # Add to dispatcher dp.add_handler(login_conv_handler) dp.add_handler(plugin_exec_handler)
def init(dispatcher: Dispatcher): """Provide handlers initialization.""" dispatcher.add_handler(CommandHandler('reconnect', reconnect))
def welcome(bot, update): """ Welcome a user to the group """ logger.info('%s joined the group' % (escape(update.message.new_chat_member.first_name))) # Pull the custom message for this chat from the database text = '歡迎加入柳柳反指女神教!' # Replace placeholders and send message """ text = text.replace('$username', update.message.new_chat_member.username) """ bot.sendMessage(update.message.chat.id, text=text) # update.message.reply_text(text) # New a dispatcher for bot dispatcher = Dispatcher(bot, None) # Add handler for handling message, there are many kinds of message. For this handler, it particular handle text # message. dispatcher.add_handler(CommandHandler('start', start_handler)) # dispatcher.add_handler(welcome) if __name__ == "__main__": # Running server app.run(debug=True)