本文整理汇总了Python中telegram.error.ChatMigrated方法的典型用法代码示例。如果您正苦于以下问题:Python error.ChatMigrated方法的具体用法?Python error.ChatMigrated怎么用?Python error.ChatMigrated使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类telegram.error
的用法示例。
在下文中一共展示了error.ChatMigrated方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: distribute_tasks
# 需要导入模块: from telegram import error [as 别名]
# 或者: from telegram.error import ChatMigrated [as 别名]
def distribute_tasks(bot, session):
"""Distribute tasks under idle maintenance chats."""
idle_maintenance_chats = (
session.query(Chat)
.filter(Chat.is_maintenance)
.filter(Chat.current_task_id.is_(None))
.all()
)
for chat in idle_maintenance_chats:
try:
tg_chat = call_tg_func(bot, "get_chat", args=[chat.id])
except BadRequest as e:
if e.message == "Chat not found": # noqa
session.delete(chat)
continue
raise e
try:
check_maintenance_chat(session, tg_chat, chat, job=True)
except (Unauthorized, ChatMigrated):
session.delete(chat)
session.commit()
示例2: error_callback
# 需要导入模块: from telegram import error [as 别名]
# 或者: from telegram.error import ChatMigrated [as 别名]
def error_callback(bot, update, error):
try:
raise error
except Unauthorized:
print("no nono1")
print(error)
# remove update.message.chat_id from conversation list
except BadRequest:
print("no nono2")
print("BadRequest caught")
print(error)
# handle malformed requests - read more below!
except TimedOut:
print("no nono3")
# handle slow connection problems
except NetworkError:
print("no nono4")
# handle other connection problems
except ChatMigrated as err:
print("no nono5")
print(err)
# the chat_id of a group has changed, use e.new_chat_id instead
except TelegramError:
print(error)
# handle all other telegram related errors
示例3: error_callback
# 需要导入模块: from telegram import error [as 别名]
# 或者: from telegram.error import ChatMigrated [as 别名]
def error_callback(update, context):
# add all the dev user_ids in this list. You can also add ids of channels or groups.
devs = [OWNER_ID]
# we want to notify the user of this problem. This will always work, but not notify users if the update is an
# callback or inline query, or a poll update. In case you want this, keep in mind that sending the message
# could fail
if update.effective_message:
text = "Hey. I'm sorry to inform you that an error happened while I tried to handle your update. " \
"My developer(s) will be notified."
update.effective_message.reply_text(text)
# This traceback is created with accessing the traceback object from the sys.exc_info, which is returned as the
# third value of the returned tuple. Then we use the traceback.format_tb to get the traceback as a string, which
# for a weird reason separates the line breaks in a list, but keeps the linebreaks itself. So just joining an
# empty string works fine.
trace = "".join(traceback.format_tb(sys.exc_info()[2]))
# lets try to get as much information from the telegram update as possible
payload = ""
# normally, we always have an user. If not, its either a channel or a poll update.
if update.effective_user:
payload += f' with the user {mention_html(update.effective_user.id, update.effective_user.first_name)}'
# there are more situations when you don't get a chat
if update.effective_chat:
payload += f' within the chat <i>{update.effective_chat.title}</i>'
if update.effective_chat.username:
payload += f' (@{update.effective_chat.username})'
# but only one where you have an empty payload by now: A poll (buuuh)
if update.poll:
payload += f' with the poll id {update.poll.id}.'
# lets put this in a "well" formatted text
text = f"Hey.\n The error <code>{context.error}</code> happened{payload}. The full traceback:\n\n<code>{trace}" \
f"</code>"
# and send it to the dev(s)
for dev_id in devs:
context.bot.send_message(dev_id, text, parse_mode=ParseMode.HTML)
# we raise the error again, so the logger module catches it. If you don't use the logger module, use it.
try:
raise context.error
except Unauthorized:
# remove update.message.chat_id from conversation list
LOGGER.exception('Update "%s" caused error "%s"', update, context.error)
except BadRequest:
# handle malformed requests - read more below!
LOGGER.exception('Update "%s" caused error "%s"', update, context.error)
except TimedOut:
# handle slow connection problems
LOGGER.exception('Update "%s" caused error "%s"', update, context.error)
except NetworkError:
# handle other connection problems
LOGGER.exception('Update "%s" caused error "%s"', update, context.error)
except ChatMigrated as e:
# the chat_id of a group has changed, use e.new_chat_id instead
LOGGER.exception('Update "%s" caused error "%s"', update, context.error)
except TelegramError:
# handle all other telegram related errors
LOGGER.exception('Update "%s" caused error "%s"', update, context.error)