Skip to content

EWS & ETM:批量绑定(公众号等)

Eana Hufwe edited this page Jul 26, 2020 · 3 revisions

Written for EFB 2.0.0; ETM 2.0.0; EWS 2.0.0

注意
本内容是一个非正式支持的 Hack,且未经过测试。项目维护者及作者没有义务对下述内容提供任何支持,且不对该内容产生的任何后果负任何责任。 请在充分理解下述内容原理的前提下操作。You have been warned.

  1. 将 ETM 的 Telegram Bot 添加到目标绑定群组、发送 /info 以获取该群组 ID。群组 ID 应是一个负整数。下面以 -3324225 为例。
  2. 在当前的 profile 中设置 ETM 为主端,并启用 EWS。
  3. 以 REPL 模式启动 EFB
    python3.6 -i -m ehforwarderbot [-p PROFILE_NAME]
  4. 操作 REPL
    >>> from ehforwarderbot import coordinator
    >>> from efb_telegram_master import utils
    >>> # 获取 ETM, EWS 运行实例
    >>> etm = coordinator.master
    >>> ews = coordinator.slaves['blueset.wechat']  # 如有运行多个实例,需追加实例 ID
    >>> # 获取会话列表
    >>> chats = ews.get_chats()
    >>> # 提取出所有需要批量绑定的会话,例如这里要提取所有非公众号
    >>> # 具体可使用的参数请参考 EFB 和 EWS 的说明文档
    >>> to_link = [i.uid for i in chats if not i.vendor_specific.get('is_mp', False)]
    >>> # 绑定到指定会话
    >>> tg_grp_id = -3324225
    >>> for i in to_link:
    ...     etm.db.add_chat_assoc(master_uid=utils.chat_id_to_str(etm.channel_id, tg_grp_id),
    ...                           slave_uid=utils.chat_id_to_str(ews.channel_id, i),
    ...                           multiple_slave=True)
    >>> # 退出 EFB 实例并以一般方式重新启动
    >>> ^D