[英]Time range when parsing messages in telegram. Telegram Bot
I'm making a Telegram bot and I need to set a time range for collecting messages for the last month.我正在制作一个 Telegram 机器人,我需要设置一个时间范围来收集上个月的消息。
from telethon import TelegramClient
from datetime import date
api_id = my_id
api_hash = ''
phone = ''
client = TelegramClient(phone, api_id, api_hash)
dateStart = date(2022, 12, 27)
async def main():
async for message in client.iter_messages(-1001369370434, reverse=True, offset_date=dateStart, search='eth'):
print(message.chat.title, ':', message.date, ':', message.text)
with client:
client.loop.run_until_complete(main())
The offset_date
should be the beginning of the date range. offset_date
应该是日期范围的开始。
Then use reverse=True
to loop from the offset_date
to today's latest message:然后使用
reverse=True
从offset_date
循环到今天的最新消息:
My complete test script:我的完整测试脚本:
import datetime
import asyncio
import re
from telethon import TelegramClient
CHAT = 1234567
BEGIN = datetime.datetime(2022, 11, 1, 0, 0, 0)
client = TelegramClient('anon', '111111', 'aaaabbbbccccddddeee')
client.start()
async def main():
chat = await client.get_input_entity(CHAT)
async for message in client.iter_messages(chat, reverse=True, offset_date=BEGIN):
print(message.date, "\t\t", message.text)
client.loop.run_until_complete(main())
Which output's all the messages starting 2022-11-1
until today:哪个输出是从
2022-11-1
到今天的所有消息:
2022-11-01 00:00:43+00:00 ...
2022-11-01 00:00:59+00:00 ...
2022-11-01 00:01:50+00:00 ...
2022-11-01 00:01:50+00:00 ...
2022-11-01 00:05:32+00:00 ...
2022-11-01 00:08:47+00:00 ...
2022-11-01 00:10:00+00:00 ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.