问题标签 [telethon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
829 浏览

python - Telethon:如何上传频道/聊天徽标?

如何上传频道/聊天标志?我在官方文档中没有找到这个信息。

0 投票
1 回答
1280 浏览

python-3.x - 从本地会话 Telethon 获取用户名

我正在使用Telethon库来抓取一些电报频道。在爬行时,我需要解析许多加入链接、用户名和频道 ID。为了解决这些问题,我使用了方法client.get_entity(),但过了一段时间,电报服务器禁止我的爬虫解析太多用户名。我四处搜索并从这个问题中发现,我应该使用get_input_entity()而不是get_entity()。实际上,telethon 将实体保存在本地 SQLite 文件中,每当调用时get_input_entity(),它首先搜索本地 SQLite 数据库,如果没有找到匹配项,则向电报服务器发送请求。到目前为止一切顺利,但我对这种方法有两个问题:

  1. get_input_entity()只返回两个属性:ID哈希,但 SQLite 数据库中还有其他列,例如usernamephonename。我需要一种方法,不仅要返回IDhash,还要返回其他列。
  2. 我需要控制发送到电报服务器的解析请求的数量,但get_input_entity()只要在本地数据库中找不到匹配项,就会向电报服务器发送请求。问题是我无法控制这种方法何时请求电报服务器。实际上,我需要此方法的布尔参数,指示当在本地数据库中找不到匹配项时,该方法是否应向电报服务器发送请求。

我阅读了一些 Telethon 源代码,主要是get_input_entity()编写了我自己的版本get_input_entity()

但是我的代码在某种程度上存在性能问题,因为它对 SQLite 数据库进行了冗余查询。例如,如果target实际是本地数据库中的实体并且with_infoTrue,它首先查询本地数据库self._client.session.get_input_entity(target)并检查是否with_infoTrue,然后再次查询数据库以获取用户名名称列。在另一种情况下,如果target在本地数据库中找不到,则self._client.get_input_entity(target)调用会对本地数据库进行冗余调用。

了解了这些性能问题后,我深入研究了 telethon 源代码,但由于我对asyncio了解不多,所以我写不出比上面更好的代码了。

任何想法如何解决这些问题?

0 投票
3 回答
3646 浏览

python - 使用 Telethon 查找会话 ID 并终止会话

在我问这个问题之前,我检查了这里。我想杀死除了我现在连接的会话之外的所有其他会话。基于我使用的 Telethon api all_sessions = client(GetAuthorizationsRequest()).to_dict(),我得到了这个结果:

我想终止这个会话,但我不知道session id上面的链接中提到了什么(telethon API 文档)。我尝试使用这些命令:

但不仅没有删除会话,而且没有来自 api 的响应,并且命令等待并等待响应没有错误或没有异常。我怎样才能终止会话?

0 投票
2 回答
330 浏览

telegram - Telethon ID 的唯一性

Telethon有 3 种类型:

  1. 用户:可以是真实用户还是机器人
  2. 聊天:电报群
  3. 频道:电报频道或超群

这三种类型都有一个ID属性。我可以将它们存储在数据库的一列中并使该列唯一吗?或者这三种类型之间可以有重复的id?

0 投票
1 回答
2485 浏览

telegram - AuthKeyDuplicatedError 电视节目

使用下面的代码,我已经使用 Telethon 连接到电报大约一年了!

昨天当我想用代码连接到我的会话时,我收到了这个错误:

该错误不再说明,并且在文档中没有关于此错误消息的更多描述。如何检索我的会话?

0 投票
2 回答
1903 浏览

telethon - 使用 Telethon 获取特定 ID 后的电报频道消息

我想在 id(例如 1245)之后获取特定的频道帖子。我写了这段代码:

但这给了我最后的 100 条消息。即使将max_id参数传递给 GetHistoryRequest,我也会从较早的消息中获取消息到较旧的消息。我怎样才能收到相反顺序的消息?

0 投票
2 回答
1319 浏览

python - 有什么方法可以使用 Telethon 知道电报张贴照片的网址吗?

我使用 python 和 Telethon 来获取消息。我可以下载消息照片,但我不想存储和下载。我想知道照片的网址,以便以后随时使用它。有什么办法吗?

0 投票
1 回答
11239 浏览

python-3.x - Telegram API 抛出 PeerFloodError:请求过多

我没有使用机器人 API。我正在使用 Telegram API 发送消息。消息很容易发送,但问题发生在 19 个用户之后。在第 20 个用户,我收到 PeerFloodError。即使在搜索了很多之后,我也没有找到任何具体的限制,并且使用 sleep 也不起作用。请提出解决此问题的方法。

代码

0 投票
0 回答
980 浏览

python - 为什么 ImportContactsRequest (telethon 1.3) 方法不添加联系人也不产生错误?

ImportContactsRequest 方法(telethon 1.3)。通过电话号码添加新联系人不起作用。是否可以将此方法更改为另一种方法?

0 投票
1 回答
1342 浏览

python-3.x - 从 Telegram 频道接收消息

我正在尝试使用 Telethon 库从 Telegram 频道获取消息。每周消息都按类型发布:

  • 1 条消息包含姓氏
  • 此姓氏的 2 条消息

我需要收到一条带有姓氏和以下消息的消息,并忽略其他名称的所有其他消息。

我收到带有姓氏的第一条消息:

我收到一条消息:

你能告诉我如何以可读的形式获取我需要的消息吗?