Кол-во сообщений пользователя за неделю telethon
Мне с помощью бота нужно считать, сколько сообщений написал каждый пользователь за неделю с помощью. Идея такова: брать историю сообщений за неделю, и по айди добавлять 1 в словарь, вообще сначала пробовал на aiogram 3, но там нельзя было брать историю сообщений.
Возвращаюсь к моей идее, если брать историю сообщений, то нужно знать их количество, чтобы указать лимит, и идти циклом проверяя дату отправки сообщения, но если лимит маленький, то могут не все сообщения посчитаться, а если большой, то слишком долго выполняется. В итоге пришёл к такому коду:
post = await client.get_messages(channel)
last_date = post[0].date + timedelta(hours=3)
end_date = datetime.now(pytz.timezone('UTC')) - timedelta(days=7) + timedelta(hours=3)
while last_date >= end_date:
id = post[0].from_id.user_id
if id not in count_messages:
count_messages[id] = 0
count_messages[id] += 1
post = await client.get_messages(channel, offset_date=last_date-timedelta(hours=3, microseconds=1))
last_date = post[0].date + timedelta(hours=3)
print(count_messages)
Этот код берёт последнее сообщение в чате, считает его, а потом тоже берёт 1 сообщение от даты отправки прошлого. Всё было бы хорошо, НО время выполнения, он берёт 1 сообщение за 0.1 секунду приблизительно, следовательно не подходит по времени тоже.
Может есть функция которая считает количество сообщений каждого пользователя за определённый срок? Или может можно это на aiogram 3 как-нибудь реализовать?