def main(): bot.dispatcher.add_handler(StartCommandHandler(callback=start_cb)) bot.dispatcher.add_handler(HelpCommandHandler(callback=help_cb)) bot.dispatcher.add_handler( CommandHandler(command="find", callback=startchat_cb)) bot.dispatcher.add_handler( MessageHandler(filters=InvertFilter(Filter.command), callback=new_chat_message_cb))
def handler_bot(bot): bot.dispatcher.add_handler( MessageHandler(callback=message_cm, filters=Filter.regexp(r'^/message'))) bot.dispatcher.add_handler( MessageHandler(callback=type_cm, filters=Filter.regexp(r'^/type'))) bot.dispatcher.add_handler( MessageHandler(callback=setchat_cm, filters=Filter.regexp(r'^/setchat'))) bot.dispatcher.add_handler( MessageHandler(callback=ask_cm, filters=Filter.regexp(r'^/ask'))) bot.dispatcher.add_handler( MessageHandler(callback=anon_cm, filters=Filter.regexp(r'^/anon'))) bot.dispatcher.add_handler( MessageHandler(callback=start_cm, filters=Filter.regexp(r'^/start'))) bot.dispatcher.add_handler(MessageHandler(callback=defauldt_cm)) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=but_anon, filters=Filter.callback_data_regexp(r'anon'))) bot.dispatcher.add_handler( BotButtonCommandHandler( callback=but_public, filters=Filter.callback_data_regexp(r'public'))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=but_both, filters=Filter.callback_data_regexp(r'both'))) return bot
def main(): bot.dispatcher.add_handler(BotButtonCommandHandler(callback=answer_cb)) bot.dispatcher.add_handler(StartCommandHandler(callback=start_cb)) bot.dispatcher.add_handler( CommandHandler(command="notwork", callback=notwork_cb)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.regexp("^(?!/).+"), callback=answer_cb)) bot.start_polling() bot.idle()
def start(self): Thread(target=self.run_scheduler).start() self.bot.dispatcher.add_handler( StartCommandHandler(callback=self.get_start_callback())) self.bot.dispatcher.add_handler( MessageHandler(callback=self.get_message_callback())) self.bot.start_polling() self.bot.idle()
def main(): TOKEN = "001.2422776034.0494128324:752509167" bot = Bot(token=TOKEN) bot.dispatcher.add_handler(MessageHandler(callback=message_cb)) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=buttons_answer_cb)) bot.dispatcher.add_handler( CommandHandler(command="total_rus", callback=get_info_about_russia)) bot.start_polling() bot.idle()
def quiz(): TOKEN = "001.3273522775.2055291012:752357883" bot = Bot(token=TOKEN) Data_1 = pd.read_excel('Questions 2.xlsx') Que = Data_1['Questions'] ans1 = Data_1['Ans_1'] ans2 = Data_1['Ans_2'] ans3 = Data_1['Ans_3'] for i in range(len(Data_1.iloc[1])): for j in range(len(Data_1['Ans_1'])): Data_1.iloc[j, i] = str(Data_1.iloc[j, i]) def message_cb(bot, event): if '/q' in event.text: id_user = [] que_user = [] ans_user = [] print("Let the quiz begin!") for i in range(len(Que)): k = i - 1 if '/qz%d' % k in event.text: bot.send_text( chat_id=event.from_chat, text='%s\n/qz%d1 %s \n/qz%d2 %s \n /qz%d3 %s' % (Que[i], i, ans1[i], i, ans2[i], i, ans3[i])) id_user.append(event.from_chat) que_user.append(Que[i]) ans_user.append(event.text) elif '/qz%d' % (len(Que) - 1) in event.text: bot.send_text(chat_id=event.from_chat, text='Вы молодец!') id_user.append(event.from_chat) que_user.append(Que[i]) ans_user.append(event.text) elif event.text == '/quiz' and i == 0: bot.send_text( chat_id=event.from_chat, text='%s\n/qz%d1 %s \n/qz%d2 %s \n /qz%d3 %s' % (Que[0], 0, ans1[0], 0, ans2[0], 0, ans3[0])) id_user.append(event.from_chat) que_user.append(Que[i]) ans_user.append(event.text) bot.dispatcher.add_handler(MessageHandler(callback=message_cb)) bot.start_polling() bot.idle()
def register(self, filters=None, command: str = None, handler=None, **kwargs): if handler: return self._dp.add_handler( handler(callback=self.execute, **kwargs)) if command: return self._dp.add_handler( CommandHandler(command=command, filters=filters, callback=self.execute)) return self._dp.add_handler( MessageHandler(filters=filters, callback=self.execute))
def launch_handlers(bot): bot.dispatcher.add_handler(MessageHandler(callback=get_answer_by_text)) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=types, filters=Filter.callback_data("types"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=callbacks_with_all_prefix, filters=Filter.callback_data_regexp("all.*"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=rand, filters=Filter.callback_data("rand"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=newline, filters=Filter.callback_data("newline"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=custom_intro, filters=Filter.callback_data("custom_intro"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=styles, filters=Filter.callback_data("styles"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=nothing, filters=Filter.callback_data("nothing"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=toast, filters=Filter.callback_data("toast"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=alert, filters=Filter.callback_data("alert"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=url, filters=Filter.callback_data("url"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=alert_url, filters=Filter.callback_data("alert_url"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=toast_url, filters=Filter.callback_data("toast_url"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=edit, filters=Filter.callback_data("edit"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=edit_intro, filters=Filter.callback_data("edit_intro"))) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=small_buttons, filters=Filter.callback_data("micro_buttons")))
def main(): """ Основная функция """ bot = Bot(token=TOKEN, name=NAME, version=VERSION) # Обработчик команды /start bot.dispatcher.add_handler(StartCommandHandler(callback=start_cb)) # Обработчик основного потока текстовых сообщений bot.dispatcher.add_handler( MessageHandler(filters=Filter.text, callback=message_cb)) # Обработчик команды /help bot.dispatcher.add_handler(CommandHandler(command="help", callback=help_cb)) # Обработчики команд /team, /rules, /play, /stop bot.dispatcher.add_handler(CommandHandler(command="team", callback=team_cb)) bot.dispatcher.add_handler( CommandHandler(command="rules", callback=rules_cb)) bot.dispatcher.add_handler(CommandHandler(command="play", callback=play_cb)) bot.dispatcher.add_handler( CommandHandler(command="stop", callback=stop_playing_cb)) # Обработчик неизвестных команд bot.dispatcher.add_handler( UnknownCommandHandler(callback=unknown_command_cb)) # Обработчик добавления бота в чат bot.dispatcher.add_handler( NewChatMembersHandler(callback=im_new_chat_member_cb)) # Запуск чат-бота bot.start_polling() # Обеспечивает непреривную работу чат-бота bot.idle() # Обработчик закрытия программы signal.signal(signal.SIGTERM, my_handler())
) elif (event.text == "/psy"): bot.send_text( chat_id=event.from_chat, text= "Для этого у нас есть отдельный бот-психолог.Пользуйтесь на здоровье. @psybot" ) elif (event.text == "/start"): bot.send_text( chat_id=event.from_chat, text= "Привет! \nЯ инфо бот.! \n\nЯ сделаю так, чтобы вы парили над информационным шумом \n я знаю текующую информацию о заражении. \nВсе мои команды доступны по команде /help.\nПопробуйте следующие запросы: \n-Как носить маску?\n/now \n/news \n\nЕсли вы хотите поговорить с психологом, переходите: \n@psybot \n" ) elif (event.text == "/help"): bot.send_text(chat_id=event.from_chat, text="Вот что я умею") else: bot.send_text( chat_id=event.from_chat, text= "Я пока не знаю, такой команды, все команды можно узнать по команде /help" ) else: answer = classify_question(event.text) bot.send_text(chat_id=event.from_chat, text=answer) #bot.send_text(chat_id=event.from_chat, text=event.text) bot.dispatcher.add_handler(MessageHandler(callback=message_cb)) bot.start_polling() bot.idle()
def listen(): cov = covid.Covid() # GetInfo получает информацию о количестве заболевших, # Выздоровевших и умерших по данной стране, # Пользуясь данными университета хопкинса # через covid api def GetInfo(country='/total'): list_countries = [i['name'] for i in list(cov.list_countries())] if country == '/total': message = """ Всего подтвержденных случаев: %s Выздоровевших: %s Число смертей: %s """ % (cov.get_total_confirmed_cases(), cov.get_total_recovered(), cov.get_total_deaths()) return message elif country in list_countries: print("country info") status = cov.get_status_by_country_name(country) message = """ Всего подтвержденных случаев: %s Выздоровевших: %s Число смертей: %s """ % (status['confirmed'], status['recovered'], status['deaths']) else: message = 'empty' print("GetInfo") return message hello_msg = """ Привет! Я могу сообщать тебе последние новости о коронавирусе. Пока я умею немного, но мы над этим работаем. Чтобы посмотреть общую статистику: /total Чтобы посмотреть статистику по России: /Russia Также ты можешь посмотреть информацию по любой стране, просто написав ее название (пока что только на английском). А еще мы можем подсказать, как скоротать время: /whattodo Ссылка на официальные ресурсы: /resources Новости можно посмотреть здесь: /news Посмотреть симптомы коронавируса: /symptoms Получить оригинальные стикеры: /stickers Удачи!""" def message_cb(bot, event): msg = event.text if msg == '/start': s = set() bot.send_text(chat_id=event.from_chat, text=hello_msg) if os.path.exists("IDs.pckl"): with open("IDs.pckl", "rb") as f: s = pickle.load(f) s.add(event.from_chat) with open("IDs1.pckl", "wb") as f: pickle.dump(s, file=f) os.rename("IDs1.pckl", "IDs.pckl") elif msg == '/Russia': bot.send_text(chat_id=event.from_chat, text=GetInfo('Russia')) send_graph("Russia", event.from_chat) elif msg == '/news': inf = """ Последние новости о коронавирусе можно посмотреть на этих сайтах: https://стопкоронавирус.рф https://www.rbc.ru/society/04/05/2020/5e2fe9459a79479d102bada6# https://www.bbc.com/russian/news-52528528 """ bot.send_text(chat_id=event.from_chat, text=inf) elif msg == '/resources': inf = """ Информациб по миру мы берем отсюда: https://coronavirus.jhu.edu/map.html Последнюю статистику по России можно посмотреть здесь: https://стопкоронавирус.рф """ bot.send_text(chat_id=event.from_chat, text=inf) elif '/q' in msg: print('quiz started') Data_1 = pd.read_excel('Questions 2.xlsx') Que = Data_1['Questions'] ans1 = Data_1['Ans_1'] ans2 = Data_1['Ans_2'] ans3 = Data_1['Ans_3'] for i in range(len(Data_1.iloc[1])): for j in range(len(Data_1['Ans_1'])): Data_1.iloc[j,i] = str(Data_1.iloc[j,i]) for i in range(len(Que)): k = i-1 if '/qz%d'%k in event.text: bot.send_text(chat_id=event.from_chat, text = '%s\n/qz%d1 %s \n/qz%d2 %s \n /qz%d3 %s'%(Que[i], i, ans1[i], i, ans2[i], i, ans3[i])) id_user.append(event.from_chat) que_user.append(Que[i]) ans_user.append(event.text) elif '/qz%d'%(len(Que) - 1) in event.text: bot.send_text(chat_id=event.from_chat, text = 'Вы молодец!') id_user.append(event.from_chat) que_user.append(Que[i]) ans_user.append(event.text) break elif event.text == '/quiz' and i == 0: bot.send_text(chat_id=event.from_chat, text = '%s\n/qz%d1 %s \n/qz%d2 %s \n /qz%d3 %s'%(Que[0], 0, ans1[0], 0, ans2[0], 0, ans3[0])) id_user.append(event.from_chat) que_user.append(Que[i]) ans_user.append(event.text) print(id_user) print(que_user) print(ans_user) elif msg == '/symptoms': with open('./simptomy_kv.png', "rb") as file: bot.send_file(chat_id=event.from_chat, file=file) elif msg == "/whattodo": inf = """ Во время самоизоляции очень важно найти занятие по душе, и у нас есть несколько вариантов чтоб вам помочь:) Вы можете посмотреть подборку семейных фильмов и сериалов: /familyfilms И фильмов для тех, кто остался наедине с собой: /alonefilms Ну а если помимо свободного времени у вас есть научное любопытство, вы можете посмотреть подборку интересных опытов по физике: /experiments Кстати, лайфхак: вы всегда можете поиграть в настолки, даже если вы далеко от друзей, многие популярные игры имеют онлайн версии, например, монополия. Проверяли, затягивает:)) """ bot.send_text(chat_id=event.from_chat, text=inf) elif msg == '/stickers': print("Trying to send sticker") bot.send_text(chat_id=event.from_chat, text="cicq.org/s/b3DzmMRhqz") print("Sticker sent") elif msg == "/familyfilms": films = [] print("familyflims") with open("./familyfilms/" + str(random.randrange(1, NFILMSFAMILY + 1)) + ".txt", 'r') as f: films = f.read().split('\n') print("File read") inf = "Вот список фильмов, которые мы рекомендуем посмотреть:\n" + '\n'.join(films) bot.send_text(chat_id=event.from_chat, text=inf) elif msg == "/alonefilms": films = [] print("alonefilms") with open("./alonefilms/" + str(random.randrange(1, NFILMSALNOE + 1)) + ".txt", 'r') as f: films = f.read().split('\n') print("file read") inf = "Вот список фильмов, которые мы рекомендуем посмотреть:\n" + '\n'.join(films) bot.send_text(chat_id=event.from_chat, text=inf) elif msg == "/experiments": exp = "" print("experiments") with open("./experiments/" + str(random.randrange(1, NEXPERIMENTS + 1)) + '.txt', 'r') as f: exp = f.read() print("file read") bot.send_text(chat_id=event.from_chat, text=exp) else: inf = GetInfo(msg) print(inf) if inf == 'empty': bot.send_text(chat_id=event.from_chat, text="Простите, такого я не понимаю:(") else: bot.send_text(chat_id=event.from_chat, text=inf) send_graph(msg, event.from_chat) bot.dispatcher.add_handler(MessageHandler(callback=message_cb)) bot.start_polling() bot.idle()
'Назовите последнюю букву алфавита': ['Я', 'я'] } value = [] TOKEN = "" # it's a secret bot = Bot(token=TOKEN) def task_cb(bot, event): global value key, value = random.choice(list(tasks.items())) print(event.from_chat) bot.send_text(chat_id=event.from_chat, text=key) def answer_cb(bot, event): global value if event.text in value: bot.send_text(chat_id=event.from_chat, text='Congratulations!') else: bot.send_text(chat_id=event.from_chat, text='Try again') bot.dispatcher.add_handler( CommandHandler(command="new_question", callback=task_cb)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.reply, callback=answer_cb)) bot.start_polling() bot.idle()
def __init__(self, token, crew, maindb, api_url_base=None, name=None, version=None, owner=None, timeout_s=20, poll_time_s=60): super(Bot, self).__init__() self.log = logging.getLogger(__name__) self.token = token self.api_base_url = "https://api.icq.net/bot/v1" if api_url_base is None else api_url_base self.name = name self.version = version self.owner = owner self.timeout_s = timeout_s self.poll_time_s = poll_time_s self.last_event_id = 0 self.dispatcher = Dispatcher(self) self.running = False self._uin = token.split(":")[-1] self.__lock = Lock() self.__polling_thread = None self.__sent_im_cache = ExpiringDict(max_len=2**10, max_age_seconds=60) self.dispatcher.add_handler( SkipDuplicateMessageHandler(self.__sent_im_cache)) self.crew = crew self.maindb = maindb self.parties = parties(self, maindb.paquebot_db) resp = self.self_get() if resp.status_code == 200: myselfinfo = json.loads(resp.text) if 'nick' in myselfinfo: self.nick = myselfinfo['nick'] else: self.nick = "unknown" else: self.log.error('Unable to retrive my own infos') sys.exit(1) self.log.debug('Bot is alive, my ID is %s and my nickname is %s' % (self.uin, self.nick)) ''' Buttons ''' # Handler for bot buttons reply. self.dispatcher.add_handler( BotButtonCommandHandler(callback=command.answer_buttons)) ''' Commands ''' self.dispatcher.add_handler( StartCommandHandler(callback=command.start)) # Handler for help command #self.dispatcher.add_handler(HelpCommandHandler(callback=command.help)) self.dispatcher.add_handler( CommandHandler(command="help", callback=command.help)) # Start obersing a channel self.dispatcher.add_handler( CommandHandler(command="joinparty", callback=command.join_party)) # List managed channels self.dispatcher.add_handler( CommandHandler(command="listparties", callback=command.list_parties)) # List managed channels self.dispatcher.add_handler( CommandHandler(command="setpartylevel", callback=command.set_partyinteraction)) ''' # Refresh channel informations (admins, memnbers, blocked, ...) self.dispatcher.add_handler(CommandHandler(command="refreshparty", callback=command.refresh_party)) ''' # Fix the allowed charsets self.dispatcher.add_handler( CommandHandler(command="setpartycharsets", callback=command.set_partycharsets)) ''' self.dispatcher.add_handler(CommandHandler(command="addpartycharset", callback=command.add_partycharset)) ''' # List allowed charsets in a party self.dispatcher.add_handler( CommandHandler(command="listpartycharsets", callback=command.list_partycharsets)) # Setting language msg self.dispatcher.add_handler( CommandHandler(command="setlanguagemsg", callback=command.set_languagemsg)) # Gettin language msg self.dispatcher.add_handler( CommandHandler(command="getlanguagemsg", callback=command.get_languagemsg)) self.dispatcher.add_handler( CommandHandler(command="getinfo", callback=command.get_info)) # List allowed charsets in a party self.dispatcher.add_handler( CommandHandler(command="listcrew", callback=command.list_crewmembers)) self.dispatcher.add_handler( CommandHandler(command="addcrewmember", callback=command.add_crewmember)) self.dispatcher.add_handler( CommandHandler(command="delcrewmember", callback=command.del_crewmember)) # Spring cleaning self.dispatcher.add_handler( CommandHandler(command="springcleaning", callback=command.do_springcleaning)) # Export/Import self.dispatcher.add_handler( CommandHandler(command="exportdb", callback=command.do_exportdb)) self.dispatcher.add_handler( CommandHandler(command="importdb", callback=command.do_importdb)) # Handler for no media file. For example, text file self.dispatcher.add_handler( MessageHandler(filters=Filter.data, callback=command.receive_file)) ''' non-command handlers ''' # Handler for message with bot mention self.dispatcher.add_handler( MessageHandler(filters=Filter.message & Filter.mention(user_id=self.uin), callback=command.message_with_bot_mention_cb)) # Handler for simple text message without text content self.dispatcher.add_handler( MessageHandler(filters=Filter.text, callback=gunner.watch_txt)) # same for forward and reply getting self.dispatcher.add_handler( MessageHandler(filters=Filter.forward, callback=gunner.watch_txt)) self.dispatcher.add_handler( MessageHandler(filters=Filter.reply, callback=gunner.watch_txt)) # Handler for url self.dispatcher.add_handler( MessageHandler(filters=Filter.url & ~Filter.sticker, callback=gunner.watch_url)) # Handler for add user to chat self.dispatcher.add_handler( NewChatMembersHandler(callback=gunner.do_guestwelcome)) # Any other user command handler #self.dispatcher.add_handler(CommandHandler(command="test", callback=command.test_cb)) ''' # Handler for feedback command self.dispatcher.add_handler(FeedbackCommandHandler(target=self.owner)) ''' ''' # Handler for unknown commands self.dispatcher.add_handler(UnknownCommandHandler(callback=command.unknown_command_cb)) ''' ''' # Handler for private command with filter by user self.dispatcher.add_handler(CommandHandler( command="restart", filters=Filter.sender(user_id=self.owner), callback=command.private_command_cb )) ''' ''' # Handler for left user from chat self.dispatcher.add_handler(LeftChatMembersHandler(callback=command.do_guestgoodbye)) ''' ''' # Handler for pinned message self.dispatcher.add_handler(PinnedMessageHandler(callback=command.pinned_message_cb)) ''' ''' # Handler for unpinned message self.dispatcher.add_handler(UnPinnedMessageHandler(callback=command.unpinned_message_cb)) ''' ''' # Handler for edited message bot.dispatcher.add_handler(EditedMessageHandler(callback=c.edited_message_cb)) ''' ''' # Handler for deleted message self.dispatcher.add_handler(DeletedMessageHandler(callback=command.deleted_message_cb)) ''' ''' # Handler for mention something else self.dispatcher.add_handler(MessageHandler( filters=Filter.mention() & ~Filter.mention(user_id=self.uin), callback=command.mention_cb )) ''' # Handler with regexp filter #self.dispatcher.add_handler(MessageHandler(filters=Filter.regexp("^\d*$"), callback=command.regexp_only_dig_cb)) ''' ''' ''' # Handlers for other file types self.dispatcher.add_handler(MessageHandler(filters=Filter.image, callback=command.image_cb)) self.dispatcher.add_handler(MessageHandler(filters=Filter.video, callback=command.video_cb)) self.dispatcher.add_handler(MessageHandler(filters=Filter.audio, callback=command.audio_cb)) ''' ''' # Handler for sticker self.dispatcher.add_handler(MessageHandler(filters=Filter.sticker, callback=command.sticker_cb)) ''' ''' # Handler for url self.dispatcher.add_handler(MessageHandler(filters=Filter.url & ~Filter.sticker, callback=command.url_cb)) ''' ''' # Handlers for forward and reply getting self.dispatcher.add_handler(MessageHandler(filters=Filter.forward, callback=command.forward_cb)) self.dispatcher.add_handler(MessageHandler(filters=Filter.reply, callback=command.reply_cb)) ''' # Send command like this: # /pin 6752793278973351456 # 6752793278973351456 - msgId # Handler for pin command # self.dispatcher.add_handler(CommandHandler(command="pin", callback=command.pin_cb)) # Send command like this: # /unpin 6752793278973351456 # 6752793278973351456 - msgId # Handler for unpin command # self.dispatcher.add_handler(CommandHandler(command="unpin", callback=command.unpin_cb)) ''' # List available charsets self.dispatcher.add_handler(CommandHandler(command="listcharsets", callback=command.list_charsets)) ''' '''
from bot.filter import Filter from bot.handler import (BotButtonCommandHandler, DefaultHandler, HelpCommandHandler, MessageHandler, StartCommandHandler) import config from server import (but_deletepost, but_deletepublic, but_post, but_public, but_queuepublic, delete_public, main_message, queue_posts, setpublic_cm, settime_cm, add_post) bot = Bot(token=config.MAIN_TOKEN) bot.dispatcher.add_handler(StartCommandHandler(callback=main_message)) bot.dispatcher.add_handler(HelpCommandHandler(callback=main_message)) bot.dispatcher.add_handler( MessageHandler(callback=setpublic_cm, filters=Filter.regexp(r'^\/setpublic'))) bot.dispatcher.add_handler( MessageHandler(callback=settime_cm, filters=Filter.regexp(r'^\/settime'))) bot.dispatcher.add_handler( MessageHandler(callback=delete_public, filters=Filter.regexp(r'^\/delete'))) bot.dispatcher.add_handler( MessageHandler(callback=queue_posts, filters=Filter.regexp(r'^\/queue'))) bot.dispatcher.add_handler(DefaultHandler(callback=add_post)) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=but_public,
def main(): # Creating a new bot instance. bot = Bot(token=TOKEN, name=NAME, version=VERSION, api_url_base=API_URL) # Registering handlers # # -------------------- # # Handler for start command bot.dispatcher.add_handler(StartCommandHandler(callback=start_cb)) # Handler for help command bot.dispatcher.add_handler(HelpCommandHandler(callback=help_cb)) # Any other user command handler bot.dispatcher.add_handler(CommandHandler(command="test", callback=test_cb)) # Handler for feedback command bot.dispatcher.add_handler(FeedbackCommandHandler(target=OWNER)) # Handler for unknown commands bot.dispatcher.add_handler( UnknownCommandHandler(callback=unknown_command_cb)) # Handler for private command with filter by user bot.dispatcher.add_handler( CommandHandler(command="restart", filters=Filter.sender(user_id=OWNER), callback=private_command_cb)) # Handler for add user to chat bot.dispatcher.add_handler( NewChatMembersHandler(callback=new_chat_members_cb)) # Handler for left user from chat bot.dispatcher.add_handler( LeftChatMembersHandler(callback=left_chat_members_cb)) # Handler for pinned message bot.dispatcher.add_handler( PinnedMessageHandler(callback=pinned_message_cb)) # Handler for unpinned message bot.dispatcher.add_handler( UnPinnedMessageHandler(callback=unpinned_message_cb)) # Handler for edited message bot.dispatcher.add_handler( EditedMessageHandler(callback=edited_message_cb)) # Handler for deleted message bot.dispatcher.add_handler( DeletedMessageHandler(callback=deleted_message_cb)) # Handler for message with bot mention bot.dispatcher.add_handler( MessageHandler(filters=Filter.message & Filter.mention(user_id=bot.uin), callback=message_with_bot_mention_cb)) # Handler for mention something else bot.dispatcher.add_handler( MessageHandler(filters=Filter.mention() & ~Filter.mention(user_id=bot.uin), callback=mention_cb)) # Handler for simple text message without media content bot.dispatcher.add_handler( MessageHandler(filters=Filter.text, callback=message_cb)) # Handler with regexp filter bot.dispatcher.add_handler( MessageHandler(filters=Filter.regexp("^\d*$"), callback=regexp_only_dig_cb)) # Handler for no media file. For example, text file bot.dispatcher.add_handler( MessageHandler(filters=Filter.data, callback=file_cb)) # Handlers for other file types bot.dispatcher.add_handler( MessageHandler(filters=Filter.image, callback=image_cb)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.video, callback=video_cb)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.audio, callback=audio_cb)) # Handler for sticker bot.dispatcher.add_handler( MessageHandler(filters=Filter.sticker, callback=sticker_cb)) # Handler for url bot.dispatcher.add_handler( MessageHandler(filters=Filter.url & ~Filter.sticker, callback=url_cb)) # Handlers for forward and reply getting bot.dispatcher.add_handler( MessageHandler(filters=Filter.forward, callback=forward_cb)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.reply, callback=reply_cb)) # Send command like this: # /pin 6752793278973351456 # 6752793278973351456 - msgId # Handler for pin command bot.dispatcher.add_handler(CommandHandler(command="pin", callback=pin_cb)) # Send command like this: # /unpin 6752793278973351456 # 6752793278973351456 - msgId # Handler for unpin command bot.dispatcher.add_handler( CommandHandler(command="unpin", callback=unpin_cb)) # Starting a polling thread watching for new events from server. This is a non-blocking call # ---------------------------------------------------------------------------------------- # bot.start_polling() # Call bot methods # -------------- # # Get info about bot bot.self_get() # Send message response = bot.send_text(chat_id=OWNER, text="Hello") msg_id = response.json()['msgId'] # Reply bot.send_text(chat_id=OWNER, text="Reply to 'Hello'", reply_msg_id=msg_id) # Forward bot.send_text(chat_id=OWNER, text="Forward 'Hello'", forward_msg_id=msg_id, forward_chat_id=OWNER) # Send binary file with io.StringIO() as file: file.write(u'x' * 100) file.name = "file.txt" file.seek(0) response = bot.send_file(chat_id=OWNER, file=file.read(), caption="binary file caption") file_id = response.json()['fileId'] # Get file info bot.get_file_info(file_id=file_id) # Send file by file_id bot.send_file(chat_id=OWNER, file_id=file_id, caption="file_id file caption") # Send file by file_id as reply to message bot.send_file(chat_id=OWNER, file_id=file_id, caption="file_id file caption", reply_msg_id=msg_id) # Forward file by file_id bot.send_file(chat_id=OWNER, file_id=file_id, caption="file_id file caption", forward_msg_id=msg_id, forward_chat_id=OWNER) # Send voice file if sys.version_info[0] == 3: with io.BytesIO() as file: gTTS('Hello everybody!').write_to_fp(file) file.name = "hello_voice.mp3" file.seek(0) response = bot.send_voice(chat_id=OWNER, file=file.read()) hello_voice_file_id = response.json()['fileId'] # Send voice by file_id bot.send_voice(chat_id=OWNER, file_id=hello_voice_file_id) # Edit text msg_id = bot.send_text(chat_id=OWNER, text="Message to be edited").json()['msgId'] bot.edit_text(chat_id=OWNER, msg_id=msg_id, text="edited text") # Delete message msg_id = bot.send_text(chat_id=OWNER, text="Message to be deleted").json()['msgId'] bot.delete_messages(chat_id=OWNER, msg_id=msg_id) # Send typing action bot.send_actions(chat_id=OWNER, actions=["typing"]) sleep(1) # Stop typing bot.send_actions(chat_id=OWNER, actions=[]) # Get info about chat bot.get_chat_info(chat_id=TEST_CHAT) # Get chat admins bot.get_chat_admins(chat_id=TEST_CHAT) # Get chat members bot.get_chat_members(chat_id=TEST_CHAT) # Get chat blocked users bot.get_chat_blocked_users(chat_id=TEST_CHAT) # Get chat pending users bot.get_chat_pending_users(chat_id=TEST_CHAT) # Block user in chat bot.chat_block_user(chat_id=TEST_CHAT, user_id=TEST_USER, del_last_messages=True) # Unlock user in chat bot.chat_unblock_user(chat_id=TEST_CHAT, user_id=TEST_USER) # Chat resolve pending user or everyone bot.chat_resolve_pending(chat_id=TEST_CHAT, approve=True, user_id=TEST_USER, everyone=False) # Set chat title bot.set_chat_title(chat_id=TEST_CHAT, title="TEST TITLE") # Set chat about bot.set_chat_about(chat_id=TEST_CHAT, about="TEST ABOUT") # Set chat title bot.set_chat_rules(chat_id=TEST_CHAT, rules="TEST RULES") # Send bot buttons bot.send_text(chat_id=OWNER, text="Hello with buttons.", inline_keyboard_markup="[{}]".format( json.dumps([{ "text": "Action 1", "url": "http://mail.ru" }, { "text": "Action 2", "callbackData": "call_back_id_2" }, { "text": "Action 3", "callbackData": "call_back_id_3" }]))) # Handler for bot buttons reply. bot.dispatcher.add_handler( BotButtonCommandHandler(callback=buttons_answer_cb)) bot.idle()
from bot.bot import Bot from bot.handler import MessageHandler, BotButtonCommandHandler, DefaultHandler from server import button_processing, message_processing import config bot = Bot(token=config.TOKEN) bot.dispatcher.add_handler(MessageHandler(callback=message_processing)) bot.dispatcher.add_handler(BotButtonCommandHandler(callback=button_processing)) bot.start_polling() bot.idle()
def main(): bot.dispatcher.add_handler(StartCommandHandler(callback=send_welcome)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.image, callback=handle_image)) bot.start_polling() bot.idle()
if len(file_ids) == 0: bot.send_text(chat_id=event.from_chat, text='Необходимо загрузить один файл!') elif len(file_ids) > 1: bot.send_text(chat_id=event.from_chat, text='Мы умеем обрабатывать только один докумнет!') else: ans = bot.get_file_info(file_id=file_ids[0]) file_type = json.loads(ans.text)['filename'].split('.')[-1] if file_type == 'pdf': bot.send_text(chat_id=event.from_chat, text = """Что нужно сделать с документом? \n 1 - Извлечь изображения \n 2 - Извлечь таблицы \n 3 - Извлечь текст \n 4 - Преобразовать в docx-формат""", inline_keyboard_markup="{}".format(json.dumps([[ {"text": "1", "callbackData": f"call_back_id_1@{event.from_chat}@{file_ids[0]}", "style": "primary"}, {"text": "2", "callbackData": f"call_back_id_2@{event.from_chat}@{file_ids[0]}", "style": "primary"}, {"text": "3", "callbackData": f"call_back_id_3@{event.from_chat}@{file_ids[0]}", "style": "primary"}, {"text": "4", "callbackData": f"call_back_id_4@{event.from_chat}@{file_ids[0]}", "style": "primary"} ]]))) else: bot.send_text(chat_id=event.from_chat, text='Ошибка формата! Загрузите, пожалуйста, PDF!') def start_cb(bot, event): bot.send_text(chat_id=event.data['chat']['chatId'], text="Добрый день!\nМы поможем вам в работе с PDF-документами.\nДля начала работы отправьте один PDF-документ боту.") bot.dispatcher.add_handler(StartCommandHandler(callback=start_cb)) bot.dispatcher.add_handler(MessageHandler(filters=Filter.text, callback=message_cb_text)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb)) bot.dispatcher.add_handler(BotButtonCommandHandler(callback=buttons_answer_cb)) bot.start_polling() bot.idle()
def main(): bot.dispatcher.add_handler(MessageHandler(callback=message_cb)) bot.start_polling() bot.idle()
from bot.bot import Bot from bot.event import EventType from bot.handler import MessageHandler from icecream import ic from telebot import TeleBot from configs.bot_config import TG_TOKEN, MAILRU_TOKEN, MSG_REGEXP, CHAT_ID, API_BASE mailru_bot = Bot(token=MAILRU_TOKEN, api_url_base=API_BASE, is_myteam=True) tg_bot = TeleBot(TG_TOKEN, parse_mode="Markdown") def sender(message): tg_bot.send_message(CHAT_ID, message) def watcher(bot, event): ic(event) if event.type == EventType.NEW_MESSAGE and search(MSG_REGEXP, event.text, IGNORECASE): ic("Message", event.text) ic("Sending message to", CHAT_ID) sender(f"*{event.data['chat']['title']}:*\n{event.text}") mailru_bot.dispatcher.add_handler(MessageHandler(callback=watcher)) ic("Starting mailru") mailru_bot.start_polling() ic("Starting tg") tg_bot.polling()
from bot.filter import Filter from bot.handler import DefaultHandler, MessageHandler import config import database from event_handler import add_bot, handler_bot, start_info def start_bots(): bots = [] for token in database.get_tokens(): bot_token = Bot(token=token) if bot_token.self_get().json()['ok']: bots.append(bot_token) for bot in bots: bot = handler_bot(bot) bot.start_polling() main_bot = Bot(token=config.MAIN_TOKEN) main_bot.dispatcher.add_handler(MessageHandler( callback=add_bot, filters=Filter.regexp(r'^/addbot') )) main_bot.dispatcher.add_handler(DefaultHandler(callback=start_info)) main_bot.start_polling() start_bots() main_bot.idle()
"text": "4", "url": "https://www.delivery-club.ru/" }, { "text": "5", "url": "https://wf.mail.ru/" }, { "text": "6", "url": "https://www.youtube.com/" }, ]]))) bot.dispatcher.add_handler(HelpCommandHandler(callback=help_cb)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.image, callback=image_cb)) bot.dispatcher.add_handler(CommandHandler(command='start', callback=start_mes)) bot.dispatcher.add_handler( CommandHandler(command='game', callback=mygame_mygame_bastaakanagana)) bot.dispatcher.add_handler(CommandHandler(command='gettest', callback=runTests)) bot.dispatcher.add_handler( CommandHandler(command='recommend', callback=recommendation)) bot.dispatcher.add_handler(BotButtonCommandHandler(callback=testcommands)) bot.dispatcher.add_handler(CommandHandler(command='info', callback=stat)) bot.dispatcher.add_handler(CommandHandler(command='getfun', callback=getfun)) bot.dispatcher.add_handler(UnknownCommandHandler(callback=UnknownCommand)) bot.start_polling()
id = 'Vatican City' elif message == "Мавритания": id = 'Mauritania' elif message == "Бутан": id = 'Bhutan' elif message == "Западная Сахара": id = 'Western Sahara' elif message == "Ангилья": id = 'Anguilla' elif message == "Йемен": id = 'Yemen' else: message_cb(bot, event) bot.send_text( chat_id=event.data['chat']['chatId'], text=f"Данные по стране: {event.text}\n" f"Заболевших: {cases.loc[id, 'Total Cases']} ({cases.loc[id, 'New Cases']})\n" f"Смертей: {cases.loc[id, 'Total Deaths']}({cases.loc[id, 'New Deaths']})\n" f"Выздоровело: {cases.loc[id, 'Total Recovered']}\n" f"Протестировано: {cases.loc[id, 'Total Tests']}", ) bot.dispatcher.add_handler(MessageHandler(callback=message_stats)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.regexp("/start*"), callback=message_cb)) bot.dispatcher.add_handler(BotButtonCommandHandler(callback=buttons_answer_cb)) bot.start_polling() bot.idle()
def main(): #хэндлер для любого сообщения bot.dispatcher.add_handler(MessageHandler(callback=message_cb)) bot.start_polling() bot.idle()
def main(): # создаем инстанс бота bot = Bot(token=TOKEN, name=NAME, version=VERSION, api_url_base=API_URL) # Регистрация хэндлеров # # -------------------- # # Хэндлер для команды /start bot.dispatcher.add_handler(StartCommandHandler(callback=start_cb)) # Хэндлер для команды /help bot.dispatcher.add_handler(HelpCommandHandler(callback=help_cb)) # Хэндлер для пользовательской команды /test bot.dispatcher.add_handler(CommandHandler(command="test", callback=test_cb)) # Хэндлер для фидбэка bot.dispatcher.add_handler(FeedbackCommandHandler(target=OWNER)) # Хэндлер для неправильной команды bot.dispatcher.add_handler(UnknownCommandHandler(callback=unknown_command_cb)) # Хэндлер для приватной команды с фильтром по отправителю (сработает только при отправке команды разработчиком бота) bot.dispatcher.add_handler(CommandHandler( command="restart", filters=Filter.sender(user_id=OWNER), callback=private_command_cb )) # Хэндлер для команды "Новый пользователь" bot.dispatcher.add_handler(NewChatMembersHandler(callback=new_chat_members_cb)) # Хэндлер для команды "Пользователь покинул группу" bot.dispatcher.add_handler(LeftChatMembersHandler(callback=left_chat_members_cb)) # Хэндлер для команды "Сообщение закреплено" bot.dispatcher.add_handler(PinnedMessageHandler(callback=pinned_message_cb)) # Хэндлер для команды "Сообщение откреплено" bot.dispatcher.add_handler(UnPinnedMessageHandler(callback=unpinned_message_cb)) # Хэндлер для редактирования сообщения bot.dispatcher.add_handler(EditedMessageHandler(callback=edited_message_cb)) # Хэндлер для удаления сообщения (ОТКЛЮЧЕН, НЕ ИСПОЛЬЗОВАТЬ) bot.dispatcher.add_handler(DeletedMessageHandler(callback=deleted_message_cb)) # Хэндлер для упоминания ботом bot.dispatcher.add_handler(MessageHandler( filters=Filter.message & Filter.mention(user_id=bot.uin), callback=message_with_bot_mention_cb )) # Хэндлер для упоминания пользователем bot.dispatcher.add_handler(MessageHandler( filters=Filter.mention() & ~Filter.mention(user_id=bot.uin), callback=mention_cb )) # Хэндлер для текста без файлов bot.dispatcher.add_handler(MessageHandler(filters=Filter.text, callback=message_cb)) # Хэндлер с регулярным выражением: только цифры bot.dispatcher.add_handler(MessageHandler(filters=Filter.regexp("^\d*$"), callback=regexp_only_dig_cb)) # Хэндлер для немедийного файла (например, MarkFomin.txt) bot.dispatcher.add_handler(MessageHandler(filters=Filter.data, callback=file_cb)) # Handlers for other file types bot.dispatcher.add_handler(MessageHandler(filters=Filter.image, callback=image_cb)) bot.dispatcher.add_handler(MessageHandler(filters=Filter.video, callback=video_cb)) bot.dispatcher.add_handler(MessageHandler(filters=Filter.audio, callback=audio_cb)) # Хэндлер для стикера bot.dispatcher.add_handler(MessageHandler(filters=Filter.sticker, callback=sticker_cb)) # Хэндлер для ссылки bot.dispatcher.add_handler(MessageHandler(filters=Filter.url & ~Filter.sticker, callback=url_cb)) # Хэндлеры для пересылания и ответа на сообщение соответственно bot.dispatcher.add_handler(MessageHandler(filters=Filter.forward, callback=forward_cb)) bot.dispatcher.add_handler(MessageHandler(filters=Filter.reply, callback=reply_cb)) # Команда /pin закрепляет сообщение по его msgId: # /pin 6752793278973351456 # 6752793278973351456 - msgId # Хэндлер для команды bot.dispatcher.add_handler(CommandHandler(command="pin", callback=pin_cb)) # Команда /unpin открепляет сообщение по его msgId: # /unpin 6752793278973351456 # 6752793278973351456 - msgId # Хэндлер для команды bot.dispatcher.add_handler(CommandHandler(command="unpin", callback=unpin_cb)) # Запускаем получение событий с сервера ICQ # ---------------------------------------------------------------------------------------- # bot.start_polling() # Методы, которые можно использовать в библиотеке: # -------------- # # Информация о боте bot.self_get() # Отправка сообщений response = bot.send_text(chat_id=OWNER, text="Привет") msg_id = response.json()['msgId'] # Ответ на сообщение bot.send_text(chat_id=OWNER, text="Ответ на 'Привет'", reply_msg_id=msg_id) # Переслать сообщение bot.send_text(chat_id=OWNER, text="Пересылаю 'Привет'", forward_msg_id=msg_id, forward_chat_id=OWNER) # отправка файла with io.StringIO() as file: file.write(u'x'*100) file.name = "file.txt" file.seek(0) response = bot.send_file(chat_id=OWNER, file=file.read(), caption="binary file caption") file_id = response.json()['fileId'] # Инофрмация об отправленном файле bot.get_file_info(file_id=file_id) # Повторно отправить файл bot.send_file(chat_id=OWNER, file_id=file_id, caption="file_id file caption") # Также можно отправить повторно файл ответом на сообщение bot.send_file(chat_id=OWNER, file_id=file_id, caption="file_id file caption", reply_msg_id=msg_id) # Переслать файл по его идентификатору bot.send_file( chat_id=OWNER, file_id=file_id, caption="file_id file caption", forward_msg_id=msg_id, forward_chat_id=OWNER ) # Отправить TTS файл if sys.version_info[0] == 3: with io.BytesIO() as file: gTTS('Перевод выполнен Марком Фоминым в 2021 году.').write_to_fp(file) file.name = "hello_voice.mp3" file.seek(0) response = bot.send_voice(chat_id=OWNER, file=file.read()) hello_voice_file_id = response.json()['fileId'] # Отправка файла POST-запросом по его идентификатору bot.send_voice(chat_id=OWNER, file_id=hello_voice_file_id) # Редактирование текста, уже отправленного ботом msg_id = bot.send_text(chat_id=OWNER, text="Это сообщение будет отредактировано").json()['msgId'] bot.edit_text(chat_id=OWNER, msg_id=msg_id, text="Все, его уже отредактировали.") # Удалить сообщение пользователя msg_id = bot.send_text(chat_id=OWNER, text="Сообщение будет удалено.").json()['msgId'] bot.delete_messages(chat_id=OWNER, msg_id=msg_id) # Пусть бот будет печатать в течение 1 секунды bot.send_actions(chat_id=OWNER, actions=["typing"]) sleep(1) # Пусть бот перестанет печатать bot.send_actions(chat_id=OWNER, actions=[]) # Информация о чате bot.get_chat_info(chat_id=TEST_CHAT) # Получить список админов чата bot.get_chat_admins(chat_id=TEST_CHAT) # Поулчить список участников чата bot.get_chat_members(chat_id=TEST_CHAT) # Получить список удаленных участников bot.get_chat_blocked_users(chat_id=TEST_CHAT) # Получить список ожидающих подтверждения на вход bot.get_chat_pending_users(chat_id=TEST_CHAT) # Заблокировать пользователя в чате bot.chat_block_user(chat_id=TEST_CHAT, user_id=TEST_USER, del_last_messages=True) # Разблокировать пользователя в чате bot.chat_unblock_user(chat_id=TEST_CHAT, user_id=TEST_USER) # Принять решение о подтверждении/отклонении заявки на вход в группу bot.chat_resolve_pending(chat_id=TEST_CHAT, approve=True, user_id=TEST_USER, everyone=False) # Установить название чата bot.set_chat_title(chat_id=TEST_CHAT, title="Захват мира") # Установить инофрмацию о группе bot.set_chat_about(chat_id=TEST_CHAT, about="Группа для душевного общения.") # Установить правила группы bot.set_chat_rules(chat_id=TEST_CHAT, rules="Не ругайтесь матом и не обзывайте участников чата!)") # Отправить сообщение с кнопками bot.send_text(chat_id=OWNER, text="Привет, я сообщение с кнопками!", inline_keyboard_markup="[{}]".format(json.dumps([ {"text": "Кнопка 1", "url": "https://vk.com/na_official/"}, {"text": "Кнопка 2", "callbackData": "call_back_id_2"}, {"text": "Кнопка 3", "callbackData": "call_back_id_3"} ]))) ''' url - используется для ссылки, не может быть передано одновременно с callbackData; callbackData - используется для обработки нажатия кнопки ''' # Хэндлер для обработки нажатия кнопки bot.dispatcher.add_handler(BotButtonCommandHandler(callback=buttons_answer_cb)) bot.idle()
def main(): bot = Bot(token=os.getenv("TOKEN")) bot.dispatcher.add_handler(MessageHandler(callback=message_cb)) bot.start_polling() bot.idle()
text='Вы ввели недопустимое значение времени(( Попробуй еще раз') def helps(bot, event): bot.send_text( chat_id=event.from_chat, text='Привет. Я- простой бот для рассылки.\n' 'Я умею:\n' '/new_post *Текст сообщения* - данная команда поможет тебе задать текст для рассылки\n' '/add_channel *id/username/etc..* - эта команда добавит пользователя для рассылки\n' '/delete_channel *id/username/etc..* - эта команда удалит пользователя из рассылки\n' '/show_channels - покажет каналы для расслыки\n' '/time *n* поможет запустить рассылку через n секунд') bot.dispatcher.add_handler( MessageHandler(filters=Filter.regexp("/new_post*"), callback=post_cb)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.regexp("/add_channel*"), callback=add_channel)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.regexp("/delete_channel*"), callback=delete_channel)) bot.dispatcher.add_handler( MessageHandler(filters=Filter.regexp("/time*"), callback=time_cb)) bot.dispatcher.add_handler( CommandHandler(command="show_channels", callback=show_channels)) bot.dispatcher.add_handler(HelpCommandHandler(callback=helps)) bot.start_polling() bot.idle()
title[9].get_text(strip=True) + " -" + "промокод: " + code[9].get_text(strip=True) + '\n' + "Организация: " + title[10].get_text(strip=True) + " -" + "промокод: " + code[10].get_text(strip=True)) def message_cb_start(bot, event): if event.text[0:6] == "/start": bot.send_text( chat_id=event.from_chat, text= "Приветствую тебя, мой друг! Я бот-помощник. Я с радостью помогу тебе решить множество проблем. С помощью меня ты сможешь найти различные организации, узнать погоду, новости и многое другое! Напиши /help для ознакомления со всеми моими командами. Удачного использования!" ) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_start)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_code)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_rate)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_coronavirus)) bot.dispatcher.add_handler( BotButtonCommandHandler(callback=buttons_answer_cb_coronavirus)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_find)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_weather)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_news)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_search)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_coin)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_to_rus)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_to_eng)) bot.dispatcher.add_handler(MessageHandler(callback=message_cb_serials)) bot.start_polling()