• 吃人一口,還人一斗 我思故我在

    字面上意思是說,受別人一點幫助,就要思考如何回報他更多。

    同義的:受人點滴,湧泉以報

    我覺得更值得更深入思考的是,

    當你輕易地要求別人的幫助時,你就得有心理準備,要返還十倍或更多。

    所以,當自己能做到,不輕易要求別人的幫忙。

    (說到這裡,小伙伴會覺得跟我以前說的”情感投入報酬”不一樣,情境不同暫不展開)

    這是台灣的俗語,用台語發音更有味道。

  • 瘋狂宇宙 我思故我在

    這個宇宙太瘋狂,大海掀翻了小池塘。

  • 區塊鏈是工具,要合理的使用;而非商品炒作。我思故我在

  • 賀賀郎,哇嗄哩供喂 我思故我在

    意思就是說,我是一個好好的、正常的人,我幹嘛跟你講話。

    一般用於朋友間小小辨論時,無法說服對方而使用。

    請不要企圖說服價值觀不在同個方向上的人或朋友。

  • Ethereum 塞車體驗 我思故我在
    下午四點,第一次體驗到 Eethereum 的塞車,一個 Uniswap 的交易等了一個鐘頭

    約1600 左右的交易,到 1702 收到通知完成

    不是說好的幾秒鐘,幾分鐘哦。造成這個情況的這是 TPS 限制嗎?還是真的有大量垃圾訊息或攻擊導致的?

  • 中心思想 我思故我在

    行為會改變、技術會改變,但中心思想不會變
    如同你會隨著環境而適應,但你的價值觀沒那麼容易改變

    中心思想、價值觀要改變,需要非常深刻的思考及體會,一般人在成長階段接受了某種價值觀,就不容易再改變了。

  • 現在想想,還好選了 ethereum 入門 我思故我在
    當時本來是想跟 Bruce 在公司的決定一樣,從 Fabric 開始。最近沒聯絡不知道發展得如何?

    還好選了 ethereum 入門

  • 成大事者不拘小節 魔鬼藏在細節裡 我思故我在

    兩句話看似相互矛盾,但其實使用的場景是不同的
    年輕人,把這兩句話串在一起,就定位成幹話

    真的這淺薄嗎?

  • 想像力比知識更重要?我思故我在

    你的問題在於書讀得太少,想得太多。

    如果是可比較的,那請您思考:想像力固然重要,是不是應該讓你的知識追上你的想像力?

  • 學士碩士博士的不同 我思故我在
    學士 學習知識 判斷問題(價值)
    碩士 運用知識 解決問題
    博士 創造知識 發現問題

Telegram机器人6- 如何找出想要的群组?

大叔的python之路 andy 1年前 (2019-07-23) 3178次浏览 已收录 0个评论 扫描二维码

Telegram机器人6- 如何找出想要的群组?

一个正常的tg号一定会加入很多群组。
而我们要开始建立一个新群组的时候,一定少不了从原来的众多群组里拉一些人进新群,才会有基本的人数。
现在对 telegram群 完全不了解的情况下,我们想先了解群的结构,然後对照api。
进而实现从一个指定的群组把人拉到另一个群组,这样的目的。
所以我们今天就把群列出来,并且参照api文档,找出对我们有用的资料。

先上代码
Telegram机器人6- 如何找出想要的群组?

第4-11行 读取设置档, 不懂请参考 http://www.sbooker.com/2019/07/05/204/
第14行 dialog_title_list 函数 列出我们要的资讯 以方便对照api文档
第19行 使用 for 来迭代 app.iter_dialogs() 就能列出所有的对话, 这是本文的第一个重点
第20行 列出对话的资讯, 以对照文档, 这是本文的第二个重点
第21行 这是後来我们知道了 dialog 的内容後,要打印出来的群的标题(title),还有群资讯
群资讯也是要用来对照文档, 这是第三个重点
第24行 运行 pyrogram
第25行 打印出自已的信息(可省略)
第26行 运行 app.iter_dialogs() 函数,

我们只贴出来部份需要说明的,
Telegram机器人6- 如何找出想要的群组?
上图这个是自已的信息
id 用户唯一识别
username 用户自已的唯一名称

然後是重头戏 群的信息
Telegram机器人6- 如何找出想要的群组?

chat 内容是说明目前这个 dialog 是属於哪个 chat ,这是我们要再深入探索的
top_message 最後一条讯息的相关信息
对话的完整信息请参考 https://docs.pyrogram.org/api/types?highlight=top_message#pyrogram.Dialog
我们发现 没有什麽有用的信息,再全部看过内容之後,知道要再往下找 chat 内容
所以我们再往下看 chat 内容, https://docs.pyrogram.org/api/types#pyrogram.Chat
大略看过 chat 的内容发现,比较符合我们对群信息的定义,所以我们初步的认为 chat 就是群的定义。
其中现阶段比较重要的列举如下
id 是群的唯一识别, 以後我们靠这个识别来定位群
type 是这个群的类型有几个类型说明如下
private 私人对话
bot 机器人
group 一般群
supergroup 超级群,意思是你有管理权限的群。
channel 频道, 用户不能聊天,只有创建者能发信息的叫频道

title 群标题 私人对话 private 没有这个属性
username 跟title 类似,但每种类型的群都会有, 指的各不一样。

所以我们後来在第21行才会打印出chat 跟 chat.title
这就代表了 群信息 跟 群名称

按照这个思路往下走,接下来我们就是利用名称比对我们要的群名称,然後找出所有用户,最後邀请进入目标群。
下一篇来实现 比对群名然後找出所有用户

参考
python3 恰到好处的 configparse 教程 http://www.sbooker.com/2019/07/05/204/
对话的信息请参考 https://docs.pyrogram.org/api/types#pyrogram.Dialog
群的信息请参考 https://docs.pyrogram.org/api/types#pyrogram.Chat

完整代码

from pyrogram import Client, Filters
import configparser

config = configparser.ConfigParser()
config.read('../data/config.ini')
section = 'user_5456'   # user_5456 user_5310
user = {
    "session": config.get(section, 'session'),
    "api_id": config.get(section, 'api_id'),
    "api_hash": config.get(section, 'api_hash'),
}


def dialog_title_list():
    """
    列出所有的聊天
    :return:
    """
    for _dialog in app.iter_dialogs():
        print(_dialog)
        print(_dialog.chat.title, _dialog.chat)


with Client(user['session'], user['api_id'], user['api_hash']) as app:
    print(app.get_me())
    dialog_title_list()

神隊友學長Andy , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Telegram机器人6- 如何找出想要的群组?
喜欢 (0)
[320208045@qq.com]
分享 (0)
andy
关于作者:
中年大叔,打拼 like young students.
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址