【问题标题】:Why does my pyrogram bot keep turning off?为什么我的 pyrogram bot 一直关闭?
【发布时间】:2022-12-05 02:41:05
【问题描述】:

出于某种原因,我的机器人总是在不向命令行打印任何输出或显示任何类型的错误的情况下关闭。机器人在打开后可以正常运行几个小时。基本代码如下所示:

app = Client("my_account", '123456', '123456789abcd')
TESTING = "321"
USER_ID = "123"

chat_mapping = {TESTING: "-10011111111111", USER_ID: "-10011111111111"}


@app.on_message()
def my_handler(client, message):
    if str(message.chat.id) not in chat_mapping:
        return
    elif str(message.chat.id) == USER_ID:
        storeMsg(message)
    else:
        print(message.text)

app.run()

任何建议将不胜感激!

【问题讨论】:

  • 尝试制作一个日志文件,当您将 my_handler 函数包装在 try except 中时,它会记录日志。您可能会发现它失败是因为错误的调用将记录在永久存储的日志中。它应该记录成功发生和失败发生的时间。
  • 如果这是您的全部代码,那么您正在比较 str(message.chat.id) 和未定义的 USER_ID
  • @James 谢谢,我会的。如果 app.run() 停止工作,你知道有什么方法可以自动重启它吗?我试过在 while 循环中运行它,但它再次随机停止并且不会重新启动 - 也许它挂在什么东西上?

标签: python pyrogram


【解决方案1】:

if str(message.chat.id) not in chat_mapping 在此通道中,您的语句将检查 message.chat.id 是否等于字典的键之一,而不是值。

表示您的message.chat.id 不能是 123 或 321。

USER_ID = some id
chat_mapping = [some ids] 
@app.on_message()
def my_handler(client, message):
    if str(message.chat.id) not in chat_mapping:
        return
    elif str(message.chat.id) == USER_ID:
        storeMsg(message)
    else:
        print(message.text)

app.run()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-23
    • 2023-02-14
    • 2017-01-16
    • 1970-01-01
    • 2020-03-18
    • 2016-09-27
    • 2020-04-28
    • 1970-01-01
    相关资源
    最近更新 更多