Почему телемарафон зависает при получении содержимого сообщения канала? - PullRequest
0 голосов
/ 01 августа 2020

Я пытаюсь очистить канал телеграммы под названием «Mothership.sg», и оказалось, что я могу получать сообщения канала только до определенного момента времени, несмотря на то, что ранее я мог успешно очистить все сообщения канала. Ниже приведен мой код

from telethon import TelegramClient
##declare api_id, api_hash

async def afternoon():
    async for message in client.iter_messages(-1001123464890):
        print(message.id, message.text)

with TelegramClient('tester', api_id, api_hash) as client:
    client.loop.run_until_complete(afternoon())

При печати message.id 4923 текст message.text не печатается. вместо этого вся программа зависает, и я не могу выделить какой-либо текст в оболочке python и не могу изменить размер оболочки. Когда я снова запускаю программу, она продолжает зависать, а не перезапускать ее.

Вот изображение message.id 4923, где программа зависает

Это сообщение канала было отправлено 31 июля в 18:30 по Гринвичу +8. Может ли кто-нибудь объяснить мне, почему он зависает при этом сообщении? Спасибо

1 Ответ

0 голосов
/ 01 августа 2020

Потому что серверы Telegram выдают ошибку FLOOD_WAIT всем клиентам. Если вы попытаетесь очень быстро прокрутить в официальном клиенте, он тоже в конечном итоге зависнет. Единственный способ предотвратить это - не получать все сообщения. Возможно, вы хотите воспользоваться функцией поиска?

...