python - Telethon 电报消息过滤器
问题描述
我想从今天发送的聊天中获取所有消息。
import sys,datetime
from telethon import TelegramClient
api_id = 1234567
api_hash = "0986asdgshjfag"
client = TelegramClient('session_name', api_id, api_hash)
client.start()
dialogs = client.get_dialogs()
chat = client.get_input_entity('username')
filter = InputMessagesFilterEmpty()
result = client(SearchRequest(
peer=chat, # On which chat/conversation
q='', # What to search for
filter=filter, # Filter to use (maybe filter for media)
min_date=datetime.date.today(), # Minimum date
max_date=None, # Maximum date
offset_id=0, # ID of the message to use as offset
add_offset=0, # Additional offset
limit=5, # How many results
max_id=0, # Maximum message ID
min_id=0, # Minimum message ID
from_id=None, # Who must have sent the message (peer)
hash=0 # Special number to return nothing on no-change
))
for message in client.iter_messages(chat,filter=result):
print(message.message)
过滤器根本不起作用,我可以看到超过 5 条消息(整个聊天)而且它不关心时间。为什么?
解决方案
您可以使用“message.date”。
如果您想从今天收到消息,您需要检查发送日期。这就像:
if datetime.datetime.now().strftime('%Y-%m-%d') == message.date.strftime('%Y-%m-%d')
推荐阅读
- php - 得到与mysql相同格式的结果?
- c++ - 文本文件不读取 c++ MacOSX
- cmake - cmake 中 ALIAS 的意义何在?
- javascript - 我可以访问并拉出嵌套数组对象并将其放入根数组对象吗?
- maven - 如何使用 exec-maven-plugin 设置 VM 参数和程序参数?
- python - 如何提取从网站上抓取的 Json 数据
- javascript - Firebase HTML TAG 在页面中无效
- actions-on-google - OAuth 隐式流程失败,导航被阻止:助手切换
- c++ - C++ 阿拉伯数字到罗马数字,反之亦然
- r - 转换日期和时间数据