def init_dispatcher(dispatcher: Dispatcher) -> None:
    conversation_handler = get_conversation_handler()
    dispatcher.add_handler(conversation_handler)
    dispatcher.add_error_handler(handle_errors)
Пример #2
0
def add_handler(dp:Dispatcher):
    guess_handler = CommandHandler('pdguessbwhd', guess)
    dp.add_handler(guess_handler)
    dp.add_handler(CallbackQueryHandler(buttonCallback,pattern="^b1:[A-Za-z0-9_]*"))
Пример #3
0
def webhook(event, context):
    """
    Runs the Telegram webhook.
    """

    bot = configure_telegram()
    dispatcher = Dispatcher(bot, None, workers=0)

    dispatcher.add_handler(CommandHandler('start', start_callback))
    dispatcher.add_handler(CommandHandler('version', version_callback))
    dispatcher.add_handler(CommandHandler('gasprice', gas_price_callback))
    dispatcher.add_handler(
        CommandHandler('refratio', refratio_callback, pass_args=True))
    dispatcher.add_handler(
        CommandHandler('predict', predict_callback, pass_args=True))
    dispatcher.add_handler(
        CommandHandler('stats', user_stats_callback, pass_args=True))

    logger.info('Event: {}'.format(event))

    if event.get('httpMethod') == 'POST' and event.get('body'):
        logger.info('Message received')
        update = telegram.Update.de_json(json.loads(event.get('body')), bot)
        dispatcher.process_update(update)
        logger.info('Message sent')
        return OK_RESPONSE
    return ERROR_RESPONSE
Пример #4
0
        update = telegram.Update.de_json(request.get_json(force=True), bot)

        # Update dispatcher process that handler to process this message
        dispatcher.process_update(update)
    return 'ok'


def reply_handler(bot, update):
    """Reply message."""
    text = update.message.text
    if text == 'FeedMe':
        update.message.reply_text("Start Feeding")
    else:
        newText = '<b>Try other key words</b>'
        #newText = '<b>Try Again</b> <i>italic</i> <a href="http://google.com">link</a>.'

        update.message.reply_text(newText,parse_mode=telegram.ParseMode.HTML)


# New a dispatcher for bot
dispatcher = Dispatcher(bot, None)

# Add handler for handling message, there are many kinds of message. For this handler, it particular handle text
# message.
dispatcher.add_handler(MessageHandler(Filters.text, reply_handler))

if __name__ == "__main__":
    # Running server
    app.run(debug=True)

Пример #5
0
def add_handler(dp:Dispatcher):
    dp.add_handler(MessageHandler(Filters.text & (~Filters.command),message))
    dp.add_handler(CallbackQueryHandler(reaction_callback,pattern="^m:[A-Za-z0-9_:]*"))
Пример #6
0
        "Take a stress pill and think things over.",
        "Thou Foul Lump Of Deformity! (Shakespeare, Richard III)",
        "Davvero? Il tuo QI è circa quello della temperatura ambiente."
    ]

    msg = random.choice(insults)
    bot.send_message(chat_id=update.message.chat_id, text=msg)


def unknown(bot, update):
    #update.message.reply_animation("CgADBAADoq0AAhEdZAfaW_NYik5pqAI")
    update.message.reply_text("???")


# Hook commands to command handlers
dispatcher.add_handler(CommandHandler("start", start))

dispatcher.add_handler(CommandHandler("sollecita", sollecita))

dispatcher.add_handler(CommandHandler("macchina", macchina))
dispatcher.add_handler(CommandHandler("auto", macchina))

dispatcher.add_handler(CommandHandler("posto", posto))

dispatcher.add_handler(CommandHandler("macchinaobici", pref_posto))
dispatcher.add_handler(CommandHandler("biciomacchina", pref_posto))
dispatcher.add_handler(CommandHandler("autoobici", pref_posto))
dispatcher.add_handler(CommandHandler("bicioauto", pref_posto))

dispatcher.add_handler(CommandHandler("bici", bicicletta))
dispatcher.add_handler(CommandHandler("bicicletta", bicicletta))
Пример #7
0
        bot.send_message(chat_id=update.message.chat_id, text=reply)


def echo_sticker(bot, update):
    """callback function for sticker message handler"""
    bot.send_sticker(chat_id=update.message.chat_id,
                     sticker=update.message.sticker.file_id)


def error(bot, update):
    """callback function for error handler"""
    logger.error("Update '%s' caused error '%s'", update, update.error)


bot = Bot(TOKEN)
try:
    bot.set_webhook("https://newsbot1711.herokuapp.com/" + TOKEN)
except Exception as e:
    print(e)

dp = Dispatcher(bot, None)
dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("help", _help))
dp.add_handler(CommandHandler("news", news))
dp.add_handler(MessageHandler(Filters.text, reply_text))
dp.add_handler(MessageHandler(Filters.sticker, echo_sticker))
dp.add_error_handler(error)

if __name__ == "__main__":
    app.run(port=8443)
	bot.addStickerToSet(user_id=query.from_user.id,
		                    name=storage.name,
		                    png_sticker=open("example2.png", "rb"),
		                    emojis=emojis[int(query.data.split(" ")[1])])



	x = bot.getStickerSet(name="user" + str(userHash) + "_" +
			                      query.data.split(" ")[1] +
			                      "_by_sticker_everything_bot")

	bot.deleteStickerFromSet(storage.stickers[0].file_id)
	bot.editMessageText(chat_id = query.message.chat.id,
						message_id = query.message.message_id,
						text = "已設定預設上傳貼圖包為:\nNow default uploading sticker pack is :\n  "+x.title)

dispatcher = Dispatcher(bot, None)

dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(CommandHandler('new', new))
dispatcher.add_handler(CommandHandler('set',setup))
dispatcher.add_handler(CommandHandler('list', allPack))
dispatcher.add_handler(CommandHandler('now', now))
dispatcher.add_handler(CommandHandler('help', help_))
dispatcher.add_handler(CommandHandler('about', about))
dispatcher.add_handler(MessageHandler(Filters.photo, add))
dispatcher.add_handler(MessageHandler(Filters.document, add2))
dispatcher.add_handler(CallbackQueryHandler(process_result, pass_job_queue=True))
if __name__ == "__main__":
	app.run(debug=True)
Пример #9
0
def add_dispatcher(dp:Dispatcher):
    dp.add_handler(CommandHandler('ainfo', getmsgtype))
    dp.add_handler(CommandHandler("info", info))
    return [BotCommand('ainfo','得到消息中的对象声明(Made by Parker&hdcola)'),BotCommand('info','查看消息的信息数据')]
Пример #10
0
class TelegramInterface(BotInterface):
    API_TOKEN = os.environ.get('TELEGRAM_BOT_TOKEN')
    ADMINS_CHAT = os.environ.get('BOT_ADMINS_CHAT')
    EXAMPLE_FILE_URL = os.getenv('EXAMPLE_MEDIA')

    def __init__(self):
        self.bot = Bot(self.API_TOKEN)
        self.dispatcher = Dispatcher(self.bot, None, workers=0)
        self._init_handlers()

    def _init_handlers(self):
        handlers = [
            MessageHandler(
                Filters.text & (Filters.entity(MessageEntity.URL)
                                | Filters.entity(MessageEntity.TEXT_LINK)),
                self._handle_message),
            CommandHandler(['start', 'help'], self._handle_init_message),
            CallbackQueryHandler(self._handle_mismatch_button)
        ]

        for handler in handlers:
            self.dispatcher.add_handler(handler)

    @staticmethod
    def _handle_message(bot, update):
        text = update.message.text
        response = process_message(text)

        response_keyboard = TelegramInterface.get_keyboard(update.message)

        if response:
            update.message.reply_markdown(response,
                                          quote=True,
                                          disable_web_page_preview=True,
                                          disable_notification=True,
                                          reply_markup=response_keyboard)

    @staticmethod
    def _handle_init_message(bot, update):

        if TelegramInterface.EXAMPLE_FILE_URL:
            bot.sendVideo(chat_id=update.message.chat.id,
                          video=TelegramInterface.EXAMPLE_FILE_URL,
                          caption=WELCOME_MSG)
        else:
            bot.sendMessage(chat_id=update.message.chat.id, text=WELCOME_MSG)

    @staticmethod
    def _handle_mismatch_button(bot, update):
        if not TelegramInterface.ADMINS_CHAT:
            return

        user_message_id = update.callback_query.message.reply_to_message.message_id
        bad_response_message_id = update.callback_query.message.message_id
        message_chat_id = update.callback_query.message.chat.id

        bot.forwardMessage(chat_id=TelegramInterface.ADMINS_CHAT,
                           from_chat_id=message_chat_id,
                           message_id=user_message_id)
        bot.forwardMessage(chat_id=TelegramInterface.ADMINS_CHAT,
                           from_chat_id=message_chat_id,
                           message_id=bad_response_message_id)

        bot.edit_message_reply_markup(chat_id=message_chat_id,
                                      message_id=bad_response_message_id,
                                      reply_markup=None)

    def process_message(self, message_data):
        update = Update.de_json(message_data, self.bot)
        self.dispatcher.process_update(update)

    @staticmethod
    def get_keyboard(message):
        if not TelegramInterface.ADMINS_CHAT:
            return

        message_id = message.message_id
        feedback_button = InlineKeyboardButton(
            text="report mismatch",
            callback_data='/bad_response {}'.format(message_id))
        buttons = [[feedback_button]]
        return InlineKeyboardMarkup(inline_keyboard=buttons)
Пример #11
0
                                             url="https://t.me/addstickers/" +
                                             "line" + str(sticker_number) +
                                             "_by_RekcitsEnilbot")
                    ]]))
                return

        temp_message = title + "\n發現" + str(
            len(all_stickers)) + "張貼圖\n\nFound " + str(
                len(all_stickers)) + " stickers\n"
        temp_message2 = temp_message
        for i in range(len(all_stickers)):
            temp_message2 += "_"
        temp_message2 += "0/" + str(len(all_stickers))
        bot.editMessageText(chat_id=update.message.chat.id,
                            message_id=main_message,
                            text=temp_message2)

        main_handle_for_message_sticker(sticker_number, update.message.chat.id,
                                        main_message, all_stickers, title)


dispatcher = Dispatcher(bot, None)

dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(CommandHandler('help', help_))
dispatcher.add_handler(CommandHandler('about', about))
dispatcher.add_handler(MessageHandler(Filters.text, reply_handler))

if __name__ == "__main__":
    app.run(debug=True)
Пример #12
0
def init_dispatcher_handlers(dispatcher: Dispatcher):
    dispatcher.add_handler(
        MessageHandler(filters=(Filters.regex(r'^(Л|л)унный п(е|ё)с') & ~Filters.update.edited_message),
                       callback=command.call))
Пример #13
0
            )

def status_addcase(bot, update, args):
#    with psycopg2.connect(os.environ['DATABASE_URL'], sslmode='require') as conn:
#        with conn.cursor() as cur:
#            cur.execute('insert into case_status (name, url) values (\'{}\',\'{}\');'.format(b64encode(update.args[0].encode()).decode(), b64encode(update.args[1].encode()).decode()))
    update.message.reply_text(
        '成功新增案件,辛苦了❤️\n {} {} {} {}'.format( args[0], args[1], type(bot), type(update)),
        quote=False
    )
    #status_listall(bot, update)

@app.route('/' + TOKEN, methods=['POST'])
def webhook_handler():
    """Set route /hook with POST method will trigger this method."""
    if request.method == "POST":
        update = telegram.Update.de_json(request.get_json(force=True), bot)
        dispatcher.process_update(update)
    return 'ok'


dispatcher = Dispatcher(bot, None)
#dispatcher.add_handler(MessageHandler(Filters.text, reply_handler))
dispatcher.add_handler(CommandHandler(['start'], start))
dispatcher.add_handler(CommandHandler(['status_listall'], status_listall))
dispatcher.add_handler(CommandHandler(['status_addcase'], status_addcase))

if __name__ == "__main__":

    app.run()
Пример #14
0
        return message


bot = TelegramBot()
dispatcher = Dispatcher(bot.bot, None, workers=0)


# Define a few command handlers. These usually take the two arguments update and
# context. Error handlers also receive the raised TelegramError object in error.
def start(update, context):
    """Send a message when the command /start is issued."""
    update.message.reply_text('Hi!')


def help_command(update, context):
    """Send a message when the command /help is issued."""
    update.message.reply_text('Help!')


def echo(update, context):
    """Echo the user message."""
    update.message.reply_text(update.message.text)


# on different commands - answer in Telegram
dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(CommandHandler("help", help_command))

# on noncommand i.e message - echo the message on Telegram
dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
Пример #15
0
def add_callbacks(dp: Dispatcher):
    """
    Register all the callbacks defined in :mod:`cmsysbot.controller.menu`
    and :mod:`cmsysbot.controller.general`

    Args:
        dp (:obj:`telegram.ext.Dispatcher`): Telegram object that registers all
        handlers.
    """

    # Show Main Menu
    dp.add_handler(
        CallbackQueryHandler(menu.main,
                             pattern=State.MAIN,
                             pass_user_data=True))

    # Show Connect Menu
    dp.add_handler(
        CallbackQueryHandler(menu.select_department,
                             pattern=State.CONNECT,
                             pass_user_data=True))

    # Settings for the structure menu:
    with_subsections = []
    without_subsections = []

    for section in states.config_file.get_all_sections():
        if section.has_subsections():
            with_subsections.append(f"^{section.name}$")
        else:
            without_subsections.append(f"^{section.name}$")

    # On the structure menu (when selecting a department/subsection), the
    # returned value after clicking on a button will be the name of the
    # section, so a regex that matches all the possible section names must be
    # crafted.
    #
    # For example, given the following structure:
    # OSL
    #  \- A
    #  \- B
    #     \- C
    #
    # The content of the regex will be:
    # with_subsections_regex = OSL|B
    # without_subsections_regex = A|C
    #
    # So, if we click on 'OSL', the callback return  data will be 'OSL', which
    # matches the `with_subsections_regex`. This pattern is associated to the
    # function menu.structure, which then shows the subsections for 'OSL'
    # On the other hand, if we click on 'A', which doesn't has any subsections,
    # the return data from the callback ('A') will match
    # `withouth_subsections_regex`, calling the function `menu.ip_selection`
    # instead.

    with_subsections_regex = "|".join(with_subsections)
    without_subsections_regex = "|".join(without_subsections)

    # Show structure of department (and subdepartments)
    dp.add_handler(
        CallbackQueryHandler(menu.structure,
                             pattern=with_subsections_regex,
                             pass_user_data=True))

    # When clicked in a section without subsections, show ip list
    dp.add_handler(
        CallbackQueryHandler(menu.ip_selection,
                             pattern=without_subsections_regex,
                             pass_user_data=True))

    # When clicked on an ip, show a menu asking if it should continue with
    # the connection
    dp.add_handler(
        CallbackQueryHandler(menu.confirm_connect_ip,
                             pattern=State.CONFIRM_CONNECT,
                             pass_user_data=True))

    # Triggered when clicking on Disconnect button from main menu.
    dp.add_handler(
        CallbackQueryHandler(general.disconnect,
                             pattern=State.DISCONNECT,
                             pass_user_data=True))

    # Show menu for filtering computers
    dp.add_handler(
        CallbackQueryHandler(menu.filter_computers,
                             pattern=State.FILTER_COMPUTERS,
                             pass_user_data=True))

    # Triggered when clicking on the Include button from the filter computers
    # menu
    dp.add_handler(
        CallbackQueryHandler(
            general.include_computers,
            pattern=State.INCLUDE_COMPUTERS,
            pass_user_data=True,
        ))

    # Triggered when clicking on the Exclude button from the filter computers
    # menu
    dp.add_handler(
        CallbackQueryHandler(
            general.exclude_computers,
            pattern=State.EXCLUDE_COMPUTERS,
            pass_user_data=True,
        ))

    # Triggered when clicking on the Update Ips button from the main menu
    dp.add_handler(
        CallbackQueryHandler(general.update_ips,
                             pattern=State.UPDATE_IPS,
                             pass_user_data=True))
Пример #16
0
class TelegramBot(object):
    """Основной класс бота, отвечающий за всю интеграцию с Flask"""

    def __init__(self, app=None):
        """Инициализация класса"""
        self.bot = None
        self.dispatcher = None
        self.config = None

        self.logger = logging.getLogger(__name__)

        if app is not None:
            self.init_app(app)

    def init_app(self, app):
        """Настройка и запуск бота"""
        self.config = app.config

        self.init_bot()

        # Определяем режим работы бота - либо с вебхуками, либо опросами
        bot_mode = self.config.get('TELEGRAM_BOT_MODE')
        if not bot_mode or bot_mode not in BOT_MODES:
            bot_mode = POLLING
            self.logger.warning(
                'TELEGRAM_BOT_MODE does not specified, or does not correct. '
                'Used POLLING by default')
        if bot_mode == WEBHOOK:
            self.dispatcher = Dispatcher(self.bot, None)
            site_domain = self.config.get('TELEGRAM_WEBHOOK_DOMAIN')
            if not site_domain:
                raise PTBConfigException
                # raise Exception('You should provide proper '
                #                 'TELEGRAM_WEBHOOK_URL to use WEBHOOK mode')
            hook_route = self.config.get(
                'TELEGRAM_WEBHOOK_ROUTE', '/webhook')
            webhook_url = u'{hook_domain}{hook_route}'.format(
                hook_domain=site_domain,
                hook_route=hook_route)
            self.bot.setWebhook(webhook_url)

            # Регистрация адреса получения вэбхука
            app.add_url_rule(
                hook_route, 'webhook', webhook, methods=['POST'])

        else:
            self.start_polling()

        # Привязываем текущего бота к приложению для корректной обработки
        # принятого через вэбхук обновления
        app.ptb = self

    def init_bot(self):
        token = self.config.get('TELEGRAM_TOKEN')
        if not token:
            raise PTBConfigException

        # Настраиваем класс Request для бота
        proxy_url = None
        urllib3_proxy_kwargs = None
        if self.config.get('TELEGRAM_PROXY_URL'):
            proxy_url = self.config.get('TELEGRAM_PROXY_URL')
            urllib3_proxy_kwargs = {
                'username': self.config.get('TELEGRAM_PROXY_USERNAME'),
                'password': self.config.get('TELEGRAM_PROXY_PASSWORD'),
            }
            # Проверяем не прописаны ли в самом адресе юзер и пароль
            auth_part = parse_url(proxy_url).auth
            if auth_part and len(auth_part) == 2:
                username, password = auth_part
                # Перезаписываем, только если данные не были прописаны явно
                urllib3_proxy_kwargs.setdefault('username', username)
                urllib3_proxy_kwargs.setdefault('password', password)
        _request = Request(
            proxy_url=proxy_url, urllib3_proxy_kwargs=urllib3_proxy_kwargs)
        self.bot = Bot(token=token, request=_request)

    def start_polling(self):
        """Настройка бота на опрос серверов для получения обновлений"""
        self.logger.debug('Initializing Updater...')
        updater = Updater(bot=self.bot)
        self.logger.debug('Updater initialized')
        self.dispatcher = updater.dispatcher
        self.logger.debug('Starting polling...')
        updater.start_polling()
        self.logger.debug('Pooling started')

    def add_handler(self, method, *args, **kwargs):
        """Регистрация хендлера с логированием"""
        self.dispatcher.add_handler(method, *args, **kwargs)
        self.logger.info('Handler % added', repr(method))
Пример #17
0
def get_dispatcher():
    bot = Bot(TOKEN)
    dp = Dispatcher(bot=bot, update_queue=None, use_context=True)
    dp.add_handler(CommandHandler("re", handle_re))
    dp.add_handler(CommandHandler("stats", restats))
    dp.add_handler(CommandHandler("pai", handle_pai))
    dp.add_handler(CommandHandler("kween", handle_kween))
    dp.add_handler(CommandHandler("abru", handle_abru))
    dp.add_handler(CommandHandler("githuboli", handle_githuboli))
    dp.add_handler(CommandHandler("gkr", handle_gkr))
    dp.add_handler(CommandHandler("qt", handle_quantum))
    dp.add_handler(CommandHandler("gawd", handle_gawd))
    dp.add_handler(CommandHandler("wow", handle_wow))
    dp.add_handler(CommandHandler("banyarbash", ban_yarbash))
    dp.add_handler(CommandHandler("kadakkpurath", ban_someone))
    dp.add_handler(CommandHandler("hbd", handle_hbd))
    dp.add_handler(CommandHandler("tq", handle_umma))
    dp.add_handler(CommandHandler("dice", toss_idu))
    dp.add_handler(CommandHandler("pewer", handle_pewer))
    dp.add_handler(MessageHandler(Filters.text, respond_with_frande))
    return dp
Пример #18
0
@app.route('/deletewebhook', methods=['GET', 'POST'])
def delete_webhook():
    s = bot.delete_webhook()
    if s:
        return "webhook delete ok"
    else:
        return "webhook delete failed"


@app.route('/')
def index():
    return '.'


# New a dispatcher for bot
dispatcher = Dispatcher(bot, None)

# Add handler for handling message, there are many kinds of message. For this handler, it particular handle text
# message.
dispatcher.add_handler(MessageHandler(Filters.text, reply_handler))
dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(CallbackQueryHandler(button))
dispatcher.add_handler(CommandHandler('help', help_command))
dispatcher.add_handler(CommandHandler('alert', alert_command))

if __name__ == "__main__":
    # Running server
    app.run(host='0.0.0.0', port=8443, debug=True)
    # app.run(debug=True)
Пример #19
0
def start_bot(bot):
    dp = Dispatcher(bot, None, workers=0, use_context=True)

    dp.add_handler(CommandHandler('start', help_start))
    dp.add_handler(CommandHandler('help', help_start))

    dp.add_handler(
        MessageHandler(Filters.text & Filters.regex('ℹ️ О сервисе'),
                       help_info))
    dp.add_handler(
        MessageHandler(
            Filters.text & Filters.regex('🚀 Увеличить лимит запросов'),
            help_no_limits))

    dp.add_handler(
        CallbackQueryHandler(help_analyse_category,
                             pattern='keyboard_analyse_category'))
    dp.add_handler(
        CallbackQueryHandler(help_catalog_link,
                             pattern='keyboard_help_catalog_link'))
    dp.add_handler(
        CallbackQueryHandler(help_feedback,
                             pattern='keyboard_help_info_feedback'))

    dp.add_handler(
        MessageHandler(
            Filters.text & Filters.regex(
                r'(ozon\.ru|beru\.ru|goods\.ru|tmall\.ru|lamoda\.ru)/'),
            help_marketplace_not_supported))
    dp.add_handler(
        MessageHandler(
            Filters.text
            & Filters.regex(r'www\.wildberries\.ru/catalog/.*/detail\.aspx'),
            help_command_not_found))
    dp.add_handler(
        MessageHandler(
            Filters.text & Filters.regex(r'www\.wildberries\.ru/catalog/'),
            wb_catalog))
    dp.add_handler(
        MessageHandler(
            Filters.text & Filters.regex(r'www\.wildberries\.ru/brands/'),
            wb_catalog))
    dp.add_handler(
        MessageHandler(
            Filters.text & Filters.regex(r'www\.wildberries\.ru/promotions/'),
            wb_catalog))

    dp.add_handler(MessageHandler(Filters.all, help_command_not_found))

    return dp
Пример #20
0
def add_handler(dp: Dispatcher):
    dp.add_handler(CommandHandler('gamestart24', start))
    dp.add_handler(CommandHandler('gameq', question))
    dp.add_handler(CommandHandler('gameend24', end))
    dp.add_handler(CommandHandler('gamerules', rules))
    dp.add_handler(CommandHandler('gamel', List_Lifetime_Stats))
    dp.add_handler(
        MessageHandler(
            Filters.text & (~Filters.command) & Filters.chat_type.groups,
            proc_text))
    return [
        BotCommand('gamestart24', '开始一个24点游戏'),
        BotCommand('gameq', '查询当前进行中的24点游戏'),
        BotCommand('gameend24', '结束当前进行的游戏'),
        BotCommand('gamerules', '查询24点的游戏规则'),
        BotCommand('gamel', '查询总排行榜')
    ]
Пример #21
0
def register(dp: Dispatcher):
    dp.add_handler(CommandHandler("start", start))
Пример #22
0
def add_handlers(dp: Dispatcher):
    for name, handler in hdl.handlers.items():
        logger.info('Adding ' + name + ' handler')
        dp.add_handler(handler)
        logger.info('Handler added successfully')
Пример #23
0
	while verb == "":
		verb = random.choice(verbs)
		if verb[-3:] == "ere":
			verb = verb[:-3] + "i"
		elif verb[-3:] == "ire":
			verb = verb[:-2] + "sci"
		elif verb[-3:] == "are":
			verb = verb[:-2]
		else:
			verb = ""
	msg = verb + "milano"
	bot.send_message(chat_id=update.message.chat_id, text=msg)


# Hook commands to command handlers
dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(CommandHandler("sollecita", sollecita))
dispatcher.add_handler(CommandHandler("macchina", macchina))
dispatcher.add_handler(CommandHandler("auto", macchina))
dispatcher.add_handler(CommandHandler("posto", posto))
dispatcher.add_handler(CommandHandler("macchinaobici", pref_posto))
dispatcher.add_handler(CommandHandler("biciomacchina", pref_posto))
dispatcher.add_handler(CommandHandler("autoobici", pref_posto))
dispatcher.add_handler(CommandHandler("bicioauto", pref_posto))
dispatcher.add_handler(CommandHandler("bici", bicicletta))
dispatcher.add_handler(CommandHandler("bicicletta", bicicletta))
dispatcher.add_handler(CommandHandler("status", status))
dispatcher.add_handler(CommandHandler("milano", milano))
dispatcher.add_handler(CommandHandler("help", bot_help))
dispatcher.add_handler(CommandHandler("guest", postoguest))
Пример #24
0
def telegram_bot_runner():
    bot = Bot(current_app.config.get('TOKEN'))
    update_queue = Queue()
    dp = Dispatcher(bot, update_queue, use_context=True)

    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(
        MessageHandler(Filters.regex('^(Посмотреть расписание)$'),
                       check_agenda))
    dp.add_handler(
        MessageHandler(Filters.regex('^(Создать мероприятие)$'), add_event))
    dp.add_handler(CommandHandler("help", help))
    dp.add_handler(CommandHandler('google_auth', google_auth))
    dp.add_handler(
        CommandHandler('google_set_default_calendar',
                       google_set_default_calendar))
    dp.add_handler(CallbackQueryHandler(button))
    dp.add_handler(CommandHandler('google_revoke', google_revoke))
    dp.add_error_handler(error)

    thread = Thread(target=dp.start, name='dp')
    thread.start()

    return bot, update_queue
Пример #25
0
def register(dp: Dispatcher):
    keywords_handler = ConversationHandler(
        entry_points=[
            InlineCallbackHandler(
                CallbackActions.EDIT_BOT_KEYWORDS,
                botproperties.set_keywords_init,
                serialize=lambda data: dict(to_edit=Bot.get(id=data['id'])),
                pass_chat_data=True)
        ],
        states={
            BotStates.SENDING_KEYWORDS: [
                MessageHandler(Filters.text,
                               botproperties.add_keyword,
                               pass_chat_data=True),
                InlineCallbackHandler(
                    CallbackActions.REMOVE_KEYWORD,
                    botproperties.remove_keyword,
                    serialize=lambda data: dict(to_edit=Bot.get(id=data['id']),
                                                keyword=Keyword.get(id=data[
                                                    'kwid'])),
                    pass_chat_data=True),
                InlineCallbackHandler(
                    CallbackActions.DELETE_KEYWORD_SUGGESTION,
                    botproperties.delete_keyword_suggestion,
                    serialize=lambda data: dict(to_edit=Bot.get(id=data['id']),
                                                suggestion=Suggestion.get(
                                                    id=data['suggid'])),
                    pass_chat_data=True)
            ],
        },
        fallbacks=[
            CallbackQueryHandler(callback_router,
                                 pass_chat_data=True,
                                 pass_user_data=True,
                                 pass_job_queue=True)
        ],
        per_user=True,
        allow_reentry=False)

    broadcasting_handler = ConversationHandler(
        entry_points=[
            InlineCallbackHandler('broadcast',
                                  broadcasts.broadcast,
                                  pass_user_data=True),
            CommandHandler("broadcast",
                           broadcasts.broadcast,
                           pass_user_data=True),
            CommandHandler("bc", broadcasts.broadcast, pass_user_data=True)
        ],
        states={
            BotStates.BROADCASTING: [
                MessageHandler(Filters.text,
                               broadcasts.broadcast_preview,
                               pass_user_data=True),
            ],
        },
        fallbacks=[],
        per_user=True,
        per_chat=False,
        allow_reentry=True)
    dp.add_handler(broadcasting_handler)

    dp.add_handler(
        CommandHandler(('cat', 'category', 'categories'),
                       select_category,
                       pass_chat_data=True))
    dp.add_handler(
        CommandHandler(('s', 'search'),
                       search_handler,
                       pass_args=True,
                       pass_chat_data=True))

    dp.add_handler(MessageHandler(Filters.reply,
                                  reply_router,
                                  pass_chat_data=True),
                   group=-1)
    dp.add_handler(
        MessageHandler(Filters.forwarded, forward_router, pass_chat_data=True))

    dp.add_handler(CommandHandler("admin", admin.menu))
    dp.add_handler(CommandHandler("a", admin.menu))

    dp.add_handler(
        CommandHandler(('rej', 'reject'),
                       admin.reject_bot_submission,
                       pass_args=True))
    dp.add_handler(
        CommandHandler(('rejsil', 'rejectsil', 'rejsilent', 'rejectsilent'),
                       lambda bot, update: admin.reject_bot_submission(
                           bot, update, None, notify_submittant=False)))

    # admin menu
    dp.add_handler(
        RegexHandler(captions.APPROVE_BOTS + '.*', admin.approve_bots))
    dp.add_handler(
        RegexHandler(captions.APPROVE_SUGGESTIONS + '.*',
                     admin.approve_suggestions))
    dp.add_handler(
        RegexHandler(captions.PENDING_UPDATE + '.*', admin.pending_update))
    dp.add_handler(
        RegexHandler(captions.SEND_BOTLIST,
                     admin.prepare_transmission,
                     pass_chat_data=True))
    dp.add_handler(RegexHandler(captions.FIND_OFFLINE, admin.send_offline))
    dp.add_handler(
        RegexHandler(captions.SEND_CONFIG_FILES, admin.send_runtime_files))
    dp.add_handler(
        RegexHandler(captions.SEND_ACTIVITY_LOGS, admin.send_activity_logs))

    # main menu
    dp.add_handler(RegexHandler(captions.ADMIN_MENU, admin.menu))
    dp.add_handler(RegexHandler(captions.REFRESH, admin.menu))
    dp.add_handler(
        RegexHandler(captions.CATEGORIES, select_category,
                     pass_chat_data=True))
    dp.add_handler(
        RegexHandler(captions.EXPLORE, explore.explore, pass_chat_data=True))
    dp.add_handler(
        RegexHandler(captions.FAVORITES, favorites.send_favorites_list))
    dp.add_handler(
        RegexHandler(captions.NEW_BOTS, show_new_bots, pass_chat_data=True))
    dp.add_handler(
        RegexHandler(captions.SEARCH, search_handler, pass_chat_data=True))
    dp.add_handler(RegexHandler(captions.CONTRIBUTING, help.contributing))
    dp.add_handler(RegexHandler(captions.EXAMPLES, help.examples))
    dp.add_handler(RegexHandler(captions.HELP, help.help))

    dp.add_handler(RegexHandler("^/edit\d+$",
                                admin.edit_bot,
                                pass_chat_data=True),
                   group=1)

    dp.add_handler(RegexHandler("^/approve\d+$",
                                admin.edit_bot,
                                pass_chat_data=True),
                   group=1)
    dp.add_handler(CommandHandler('approve', admin.short_approve_list))

    dp.add_handler(CommandHandler(('manybot', 'manybots'), admin.manybots))

    dp.add_handler(
        CommandHandler('new',
                       contributions.new_bot_submission,
                       pass_args=True,
                       pass_chat_data=True))
    dp.add_handler(RegexHandler('.*#new.*',
                                contributions.new_bot_submission,
                                pass_chat_data=True),
                   group=1)
    dp.add_handler(
        CommandHandler('offline',
                       contributions.notify_bot_offline,
                       pass_args=True))
    dp.add_handler(RegexHandler('.*#offline.*',
                                contributions.notify_bot_offline),
                   group=1)
    dp.add_handler(
        CommandHandler('spam', contributions.notify_bot_spam, pass_args=True))
    dp.add_handler(RegexHandler('.*#spam.*', contributions.notify_bot_spam),
                   group=1)
    dp.add_handler(
        RegexHandler('^{}$'.format(settings.REGEX_BOT_ONLY),
                     send_bot_details,
                     pass_chat_data=True))

    dp.add_handler(CommandHandler('help', help.help))
    dp.add_handler(
        CommandHandler(("contribute", "contributing"), help.contributing))
    dp.add_handler(CommandHandler("examples", help.examples))
    dp.add_handler(CommandHandler("rules", help.rules))

    dp.add_handler(
        CommandHandler(("addfav", "addfavorite"),
                       favorites.add_favorite_handler,
                       pass_args=True))
    dp.add_handler(
        CommandHandler(("f", "fav", "favorites"),
                       favorites.send_favorites_list))

    dp.add_handler(
        CommandHandler(("e", "explore"), explore.explore, pass_chat_data=True))
    dp.add_handler(CommandHandler("official", explore.show_official))

    dp.add_handler(
        CommandHandler('ban',
                       lambda bot, update, args: admin.ban_handler(
                           bot, update, args, True),
                       pass_args=True))
    dp.add_handler(
        CommandHandler('unban',
                       lambda bot, update, args: admin.ban_handler(
                           bot, update, args, False),
                       pass_args=True))
    dp.add_handler(CommandHandler('t3chno', t3chnostats))
    dp.add_handler(CommandHandler('random', eastereggs.send_random_bot))
    dp.add_handler(
        CommandHandler('easteregg', eastereggs.send_next, pass_args=True))

    dp.add_handler(CommandHandler("subscribe", manage_subscription))
    dp.add_handler(
        CommandHandler("newbots", show_new_bots, pass_chat_data=True))

    dp.add_handler(CommandHandler("accesstoken", access_token))

    dp.add_handler(
        CommandHandler(('stat', 'stats', 'statistic', 'statistics'),
                       admin.send_statistic))

    dp.add_handler(
        CommandHandler(('log', 'logs'),
                       admin.send_activity_logs,
                       pass_args=True))
    dp.add_handler(
        CommandHandler(('debug', 'analysis', 'ana', 'analyze'),
                       lambda bot, update, args: admin.send_activity_logs(
                           bot, update, args, Statistic.ANALYSIS),
                       pass_args=True))
    dp.add_handler(
        CommandHandler('info',
                       lambda bot, update, args: admin.send_activity_logs(
                           bot, update, args, Statistic.INFO),
                       pass_args=True))
    dp.add_handler(
        CommandHandler(('detail', 'detailed'),
                       lambda bot, update, args: admin.send_activity_logs(
                           bot, update, args, Statistic.DETAILED),
                       pass_args=True))
    dp.add_handler(
        CommandHandler(('warn', 'warning'),
                       lambda bot, update, args: admin.send_activity_logs(
                           bot, update, args, Statistic.WARN),
                       pass_args=True))
    dp.add_handler(
        CommandHandler('important',
                       lambda bot, update, args: admin.send_activity_logs(
                           bot, update, args, Statistic.IMPORTANT),
                       pass_args=True))

    dp.add_handler(MessageHandler(
        Filters.text,
        lambda bot, update: botlistchat.text_message_logger(bot, update, log)),
                   group=99)

    for hashtag in HINTS.keys():
        dp.add_handler(RegexHandler(r'{}.*'.format(hashtag),
                                    botlistchat.hint_handler),
                       group=1)
    dp.add_handler(
        CommandHandler(('hint', 'hints'), botlistchat.show_available_hints))

    dp.add_handler(keywords_handler)
    dp.add_handler(
        CallbackQueryHandler(callback_router,
                             pass_chat_data=True,
                             pass_user_data=True,
                             pass_job_queue=True))
    dp.add_handler(
        ChosenInlineResultHandler(inlinequeries.chosen_result,
                                  pass_chat_data=True))
    dp.add_handler(
        InlineQueryHandler(inlinequeries.inlinequery_handler,
                           pass_chat_data=True))
    dp.add_handler(MessageHandler(Filters.all,
                                  all_handler,
                                  pass_chat_data=True),
                   group=98)
Пример #26
0
        url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-80'
    if number == 'callback_button12c':
        url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-81'
        context.bot.send_message(chat_id=update.effective_message.chat_id,
                                 text='Имангали бог, Нурик лох')
    if number == 'callback_button12d':
        url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-82'
    if number == 'callback_button12e':
        url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-83'
    if number == 'CALLBACK_BUTTON12f':
        url = 'https://nistaraz.edupage.org/timetable/view.php?num=104&class=-84'

    driver = webdriver.Firefox()
    driver.get(url)
    sleep(5)
    driver.get_screenshot_as_file("screenshot.png")
    driver.quit()
    print("end...")
    context.bot.send_photo(chat_id=update.effective_message.chat_id,
                           photo=open('screenshot.png', 'rb'))
    context.bot.send_message(
        chat_id=update.effective_message.chat_id,
        text='Нажмите на команду "/start" чтобы заново выбрать класс')


start_handler = CommandHandler('start', start)
callback_handler = CallbackQueryHandler(callback)

dispatcher.add_handler(start_handler)
dispatcher.add_handler(callback_handler)
Пример #27
0
def init(dispatcher: Dispatcher):
    """Provide handlers initialization."""
    dispatcher.add_handler(CommandHandler('list_expense', list_expense))
Пример #28
0
def add_conversation_callbacks(dp: Dispatcher):
    """
    Register all the callbacks defined in
    :mod:`cmsysbot.controller.conversation`

    Args:
        dp (:obj:`telegram.ext.Dispatcher`): Telegram object that registers all
        handlers.
    """

    # Login handler
    login_conv_handler = ConversationHandler(
        entry_points=[
            CallbackQueryHandler(conversation.login,
                                 pattern=State.GET_CREDENTIALS)
        ],
        states={
            conversation.USERNAME: [
                MessageHandler(Filters.text,
                               conversation.get_username,
                               pass_user_data=True)
            ],
            conversation.PASSWORD: [
                MessageHandler(
                    Filters.text,
                    conversation.get_password,
                    pass_user_data=True,
                    pass_job_queue=True,
                )
            ],
        },
        fallbacks=[
            RegexHandler("^/cancel$", menu.new_main, pass_user_data=True)
        ],
        allow_reentry=True,
    )

    plugin_exec_handler = ConversationHandler(
        entry_points=[
            CallbackQueryHandler(
                conversation.start_plugin_from_callback,
                pattern=State.START_PLUGIN,
                pass_user_data=True,
            ),
            MessageHandler(
                Filters.document,
                conversation.start_plugin_from_download,
                pass_user_data=True,
            ),
        ],
        states={
            conversation.ANSWER: [
                MessageHandler(Filters.text,
                               conversation.get_answer,
                               pass_user_data=True)
            ]
        },
        fallbacks=[
            RegexHandler("^/cancel$", menu.new_main, pass_user_data=True)
        ],
        allow_reentry=True,
    )

    # Add to dispatcher
    dp.add_handler(login_conv_handler)
    dp.add_handler(plugin_exec_handler)
Пример #29
0
def init(dispatcher: Dispatcher):
    """Provide handlers initialization."""
    dispatcher.add_handler(CommandHandler('reconnect', reconnect))
Пример #30
0

def welcome(bot, update):
    """ Welcome a user to the group """

    logger.info('%s joined the group' %
                (escape(update.message.new_chat_member.first_name)))

    # Pull the custom message for this chat from the database
    text = '歡迎加入柳柳反指女神教!'

    # Replace placeholders and send message
    """
    text = text.replace('$username',
                        update.message.new_chat_member.username)
    """
    bot.sendMessage(update.message.chat.id, text=text)
    # update.message.reply_text(text)


# New a dispatcher for bot
dispatcher = Dispatcher(bot, None)

# Add handler for handling message, there are many kinds of message. For this handler, it particular handle text
# message.
dispatcher.add_handler(CommandHandler('start', start_handler))
# dispatcher.add_handler(welcome)

if __name__ == "__main__":
    # Running server
    app.run(debug=True)