Нужно получить по запросу список всех хештегов из определённого чата.
Как это сделать? На ум приходит библиотека telethon. Собрать всю историю сообщений и если там есть знак
#
, значит это тег.
Но когда я делаю:
client.get_messages(chat, 10, search='#')
Он всё равно выдаёт все сообщения.
Тогда решил так:
while True:
history = await client(GetHistoryRequest(
peer=channel,
offset_id=offset_msg,
offset_date=None, add_offset=0,
limit=limit_msg, max_id=0, min_id=0,
hash=0))
if not history.messages:
break
messages = history.messages
for message in messages:
# ...Если есть решётка, значит это хештег,
# извлекаем, возможно, регулярным выражением
#добавляем его в список
Будет ли это работать, как я задумывал
или есть способ лучше? Потому что если в группе миллион сообщений, он так каждую будет сканировать, будет же слишком много запросов и можно дойти до лимита или блокировки?
Источники: 1 2