如何通过图书馆电视节目搜索电报中的频道?

时间:2019-11-28 12:41:11

标签: python python-3.x telegram telethon

此刻,我有一个电报客户端,可以读取给定通道中的所有消息。

from telethon import TelegramClient, connection
import socks
import asyncio
client = TelegramClient('session4', api_id, api_hash, proxy=(socks.SOCKS5, str(proxy_ip), port),timeout=66)
client.start()
kanal='???'
loop = asyncio.get_event_loop()
dp = loop.run_until_complete(client.get_entity(kanal))
posts = loop.run_until_complete(client.get_messages(dp,limit=1000))
loop.close()

为了自动搜索频道,我决定通过频道搜索来获取它们。找到了方法

result = client(functions.contacts.SearchRequest(q='some',limit=100))

但是他一直返回一个空列表。我怀疑这是否真的是这种方法?还是我应该使用其他东西?

1 个答案:

答案 0 :(得分:0)

您可以使用get_entity()。如果您有channel_id,则可以执行以下操作。

my_channel = client.get_entity(PeerChannel(some_id))

如果您没有ID,但确实有名称,则可以这样做。

my_channel = client.get_entity('some')

您可以找到更多信息here

如果您希望获取所有频道,然后进行搜索,则可以先获取所有对话框,然后检查每个聊天的标题(如果它与您的频道名称匹配)

result = client.get_dialogs()

for chat in result:
  if chat.title == 'some':
    #do something