当前位置: 首页>>代码示例>>Python>>正文


Python Bot.sendChatAction方法代码示例

本文整理汇总了Python中telegram.Bot.sendChatAction方法的典型用法代码示例。如果您正苦于以下问题:Python Bot.sendChatAction方法的具体用法?Python Bot.sendChatAction怎么用?Python Bot.sendChatAction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在telegram.Bot的用法示例。


在下文中一共展示了Bot.sendChatAction方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: StrelkaBot

# 需要导入模块: from telegram import Bot [as 别名]
# 或者: from telegram.Bot import sendChatAction [as 别名]

#.........这里部分代码省略.........

        # Some initial number preparation
        try:
            message = update.message.text
            card_num = long( message.replace(' ', '').replace('-','').strip() )
        except:
            answer = u'В номере карты допущена ошибка. Проверь его, пожалуйста!'
            reply_markup = telegram.ReplyKeyboardHide()
            self.bot.sendMessage(chat_id=from_id,
                                text=answer,
                                reply_markup=reply_markup)
            return

        # Real check of card number
        if strelka_user.is_valid_number( card_num ):
            strelka_user.update_number( card_num )
            answer = (
                u'%s, я запомнил номер твоей карты. Теперь можешь использовать команду /strelka, '
                u'чтобы проверять баланс! Если ты захочешь удалить этот номер, используй '
                u'команду /forget_me.' % from_name
            )
            reply_markup = self._get_reply_markup(from_id)
            self.bot.sendMessage(chat_id=from_id,
                            text=answer,
                            reply_markup=reply_markup )
            pickle.dump(self.strelka_db, open('STRELKA_DB.dump', 'wb') )

        else:
            answer = u'С полученным сообщением что-то не так. Отправь номер карты ещё раз, пожалуйста!'
            reply_markup = telegram.ReplyKeyboardHide()
            self.bot.sendMessage(chat_id=from_id,
                                text=answer,
                                reply_markup=reply_markup)

    def process_strelka_update(self, bot, update):
        from_id   = update.message.chat_id
        from_name = update.message.chat.first_name
        if from_id not in self.strelka_db:
            self.strelka_db[from_id] = StrelkaUser(from_id)

        strelka_user = self.strelka_db[from_id]
        if not strelka_user.has_strelka_number():
            # New user without card number
            answer = (
                u'У меня нет твоего номера карты!'
                u'Жду 10-значный номер твоей карты'
            )
            reply_markup = telegram.ReplyKeyboardHide()
            self.bot.sendMessage(chat_id=from_id,
                                text=answer,
                                reply_markup=reply_markup)
        else:
            # Known user with card number
            self.bot.sendChatAction(action = 'typing', chat_id = from_id )
            balance = strelka_user.get_updated_balance()
            answer = u'%s, баланс твоей карты Стрелка %.2f₽!'%(from_name, balance)
            reply_markup = self._get_reply_markup(from_id)
            self.bot.sendMessage(chat_id=from_id,
                            text=answer,
                            reply_markup=reply_markup )
    
    @staticmethod
    def _get_reply_markup(chat_id):
        if chat_id == ADMIN_ID: 
            custom_keyboard = [[ "/strelka" ], ["/forget_me", '/admin kill all'] ]
        else: 
            custom_keyboard = [[ "/strelka" ], ["/forget_me"] ]

        reply_markup = telegram.ReplyKeyboardMarkup(custom_keyboard)

        return reply_markup

    def run(self):
        # Create the EventHandler and pass it your bot's token.
    
        # updater = Updater(TELEGRAM_TOKEN, workers=5) 
        updater = Updater(TELEGRAM_TOKEN)
        self.updater = updater

        # Get the dispatcher to register handlers
        dp = updater.dispatcher

        # dp.add_handler(Handler(self.process_strelka_update))
        dp.add_handler(CommandHandler('start', self.start))
        dp.add_handler(CommandHandler('admin', self.process_admin_update))
        dp.add_handler(CommandHandler('forget_me', self.process_admin_update))
        dp.add_handler(RegexHandler(r'^[0-9 -]{10,}$', self.process_card_number))
        dp.add_handler(CommandHandler('strelka', self.process_strelka_update))


        # log all errors
        # dp.add_error_handler(error) 

        # Start the Bot
        updater.start_polling()

        # Run the bot until the you presses Ctrl-C or the process receives SIGINT,
        # SIGTERM or SIGABRT. This should be used most of the time, since
        # start_polling() is non-blocking and will stop the bot gracefully.
        updater.idle()
开发者ID:apetrin,项目名称:FeriatBot,代码行数:104,代码来源:strelka_card.py


注:本文中的telegram.Bot.sendChatAction方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。