Exemplo n.º 1
0
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))
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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()
Exemplo n.º 4
0
    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()
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
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()
Exemplo n.º 7
0
 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))
Exemplo n.º 8
0
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")))
Exemplo n.º 9
0
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())
Exemplo n.º 10
0
            )
        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()
Exemplo n.º 11
0
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()
Exemplo n.º 12
0
    'Назовите последнюю букву алфавита': ['Я', 'я']
}
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()
Exemplo n.º 13
0
    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))
		'''
        '''
Exemplo n.º 14
0
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,
Exemplo n.º 15
0
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()
Exemplo n.º 16
0
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()
Exemplo n.º 17
0
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()
Exemplo n.º 18
0
    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()
Exemplo n.º 19
0
def main():
    bot.dispatcher.add_handler(MessageHandler(callback=message_cb))
    bot.start_polling()
    bot.idle()
Exemplo n.º 20
0
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()
Exemplo n.º 21
0
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()


Exemplo n.º 22
0
                    "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()
Exemplo n.º 23
0
        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()
Exemplo n.º 24
0
def main():
    #хэндлер для любого сообщения
    bot.dispatcher.add_handler(MessageHandler(callback=message_cb))
    bot.start_polling()
    bot.idle()
Exemplo n.º 25
0
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()
Exemplo n.º 26
0
def main():
    bot = Bot(token=os.getenv("TOKEN"))
    bot.dispatcher.add_handler(MessageHandler(callback=message_cb))
    bot.start_polling()
    bot.idle()
Exemplo n.º 27
0
            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()
Exemplo n.º 28
0
            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()