【发布时间】:2018-08-24 11:07:52
【问题描述】:
我想从今天发送的聊天中获取所有消息。
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 条消息(整个聊天)而且它不关心时间。 为什么?
【问题讨论】:
-
用python而不是telethon制作过滤器。您可以制作一个过滤器来检查关键字,或者限制您可以发送的消息数量,在 Telethon 的文档中并不清楚。如果你愿意,我可以解释更多。我希望这可以帮助你我不太了解过滤器的提议。
标签: python chat telegram telethon