简体   繁体   English

在电报中解析消息时的时间范围。 电报机器人

[英]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=Trueoffset_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM