使用telethon.sync时如何处理“洪水等待”错误?

时间:2019-08-16 18:34:50

标签: telethon

看起来客户端的同步版本不会引发任何错误? 使用telethon.sync处理错误的正确方法是什么?

下面的代码使客户端进入“睡眠”状态,但不会出错。

我尝试对FloodWaitError进行显式例外处理,但这不能解决问题。

from telethon.sync import TelegramClient
from telethon.tl.functions.channels import GetFullChannelRequest


if __name__ == '__main__':
    setup_logging(level=logging.INFO)

tg = TelegramClient(
    'anon',
    api_id=config.API_ID,
    api_hash=config.API_HASH,
)

with tg as client:
    try:
        result = client(GetFullChannelRequest(-1001100118939))
    except ValueError as e:
        print(e)
        break;
        # print('Flood wait for ', e.seconds)
        # time.sleep(e.seconds)
    print(result)

1 个答案:

答案 0 :(得分:1)

<div id="hSandwich"> <div class="hSandwich-01 hSandwichItem"></div> <div class="hSandwich-02 hSandwichItem"></div> <div class="hSandwich-03 hSandwichItem"></div> </div>不会更改异常的行为。但是,telethon.sync不是FloodWaitError,因此您的ValueError不会抓住它。以下将起作用:

except

请注意,如果默认情况下泛洪错误少于一分钟,则库会自动进入休眠状态,在这种情况下,它将等待并且不会为了方便起见而升高。