ehForwarderBot / efb-wechat-slave

A channel for EH Forwarder Bot.
GNU Affero General Public License v3.0
459 stars 62 forks source link

EWS & ETM:批量绑定 现在貌似不可用 #105

Closed shzxm closed 4 years ago

shzxm commented 4 years ago

EWS & ETM:批量绑定 现在貌似不可用

版本信息

EH Forwarder Bot
Version: 2.0.0
Python version:
3.8.2 (default, Apr 27 2020, 15:53:34) 
[GCC 9.3.0]
Running on profile "default".

Master channel:
    Telegram Master (blueset.telegram) 2.0.3 # Default instance

Slave channel:
    WeChat Slave (blueset.wechat) 2.0.1 # Default instance

Middlewares:
    No middleware is enabled.

问题描述

EWS & ETM:批量绑定 现在貌似不可用

或者说教程需要更新?......

重现步骤

python3 -i -m ehforwarderbot [-p default ]

usage: __main__.py [-h] [-v] [-V] [-p PROFILE]
__main__.py: error: unrecognized arguments: [-p default ]
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 193, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/usr/local/lib/python3.8/dist-packages/ehforwarderbot/__main__.py", line 282, in <module>
    main()
  File "/usr/local/lib/python3.8/dist-packages/ehforwarderbot/__main__.py", line 260, in main
    args = parser.parse_args()
  File "/usr/lib/python3.8/argparse.py", line 1783, in parse_args
    self.error(msg % ' '.join(argv))
  File "/usr/lib/python3.8/argparse.py", line 2533, in error
    self.exit(2, _('%(prog)s: error: %(message)s\n') % args)
  File "/usr/lib/python3.8/argparse.py", line 2520, in exit
    _sys.exit(status)
SystemExit: 2

>>> from ehforwarderbot import coordinator
>>> from efb_telegram_master import utils

>>> etm = coordinator.master
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'ehforwarderbot.coordinator' has no attribute 'master'

>>> ews = coordinator.slaves['blueset.wechat']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'blueset.wechat'

>>> chats = ews.get_chats()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'ews' is not defined

Verbose 日志

Verbose 日志 ``` 请在这里贴出您的 Verbose 日志。如果您对隐私有所顾虑,您可以自行 隐去隐私信息、或 GPG 加密至 BD6B65EC00638DC9083781D5D4B65BB1A106200A。 ```
blueset commented 4 years ago

方括号里面的内容代表的是可选项,-p PROFILE 只需要在配置档案不是默认的时候设置为相应的值,否则可留空。

shzxm commented 4 years ago

也就是说详细的操作办法为 1.先获取 想要绑定的群组 ID(在群组重发送/info 获取id) 2.telegram 使用efb 获取chat id (命令为 /0_get_chat_list -r) 3.python3.6 -i -m ehforwarderbot (这个部分如果为默认配置文件可以留空.否则需要指定 [-p PROFILE_NAME])

相关操作中有一部分我没看懂 这个是不是一行命令? 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) 还有一个问题.获取到的chat id文件 image 譬如这部分 id怎么添加到命令的哪一部分?

blueset commented 4 years ago

如果是针对所有公众号进行操作的话,直接在指令里面查询会话 ID 即可。也就是说如果不是要手工挑选需要绑定的公众号的话,可以不用 get_chat_list -r

指令的解释:

etm.db.add_chat_assoc(
    # 把编号为 etm.channel_id 主端里面编号为 tg_grp_id 的 Telegram 会话
    master_uid=utils.chat_id_to_str(etm.channel_id, tg_grp_id),
    # 和编号为 ews.channel_id 的从端中编号为 i 的会话进行绑定
    slave_uid=utils.chat_id_to_str(ews.channel_id, i),
    # 同时允许一个主端会话绑定到多个从端会话
    multiple_slave=True
)