本文整理汇总了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()