V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
blueset
V2EX  ›  分享创造

EFB: 一个可扩展的聊天平台隧道 Bot 框架 (Python 3)

  •  2
     
  •   blueset ·
    blueset · 2016-12-04 15:39:49 +08:00 · 4848 次点击
    这是一个创建于 2915 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第一个有好好写文档的开源项目。

    EH Forwarder Bot

    https://github.com/blueset/ehForwarderBot

    Banner

    (开发代号) EH Forwarder Bot ,简称 EFB ,是一个可扩展的聊天平台隧道 Bot 框架。能够让用户在一个聊天平台收发其他平台的消息,进而间接控制其他平台。目前已经完成了框架主体,以及从 Telegram 收发微信消息的模块。通过开发其他的「主频道 (Master channel)」及「从频道 (Slave channel)」扩展,可以实现聊天平台一对多的消息传递和账户管理。

    EFB 基于 Python 3 ,目前是一个比较稳定的版本。使用方法,开发文档均可以在 Repo 的 docs 文件夹中找到。感谢 Python-telegram-bot 和 @NxnXgpuPSfsIT (LittleCoderSh) 的 ItChat 的接口支持。

    如果有什么意见和建议,欢迎在这里或者 GitHub 上面提出。也欢迎感兴趣的朋友们一起来开发其他平台的对应模块。

    顺便求 Star 。 XD

    19 条回复    2017-04-10 10:56:00 +08:00
    NxnXgpuPSfsIT
        1
    NxnXgpuPSfsIT  
       2016-12-04 17:31:13 +08:00
    666 ,来支持一下
    leopku
        2
    leopku  
       2016-12-04 19:41:01 +08:00
    支持一下
    7jmS8834H50s975y
        3
    7jmS8834H50s975y  
       2016-12-04 19:46:05 +08:00
    @blueset 好的项目不该有`.idea`文件夹
    saxon
        4
    saxon  
       2016-12-04 22:23:45 +08:00
    @NxnXgpuPSfsIT
    @blueset 666 两位大神的项目我都会跟进!@
    htfy96
        5
    htfy96  
       2016-12-04 23:08:01 +08:00   ❤️ 1
    害怕……想起了之前在写的同样基于 Python3 ,功能基本相同的的框架: https://github.com/sjtug/im-bridge 不过设计是多对多的,而且最近坑掉了
    blueset
        6
    blueset  
    OP
       2016-12-05 00:26:37 +08:00
    @htfy96 有兴趣一起参与吗?
    crazycabbage
        7
    crazycabbage  
       2016-12-05 01:17:04 +08:00 via Android   ❤️ 1
    666,最近在写聊天室,这让我想到了新功能
    strahe
        8
    strahe  
       2016-12-05 09:36:57 +08:00
    python 里函数命名用驼峰式不觉得怪怪的.
    saxon
        9
    saxon  
       2016-12-05 15:21:32 +08:00
    有没有展示功能的 DEMO
    blueset
        10
    blueset  
    OP
       2016-12-05 15:54:15 +08:00
    @saxon 由于聊天平台的隧道转发会涉及隐私内容,故不适合开放 Demo ,请谅解。
    如果有兴趣的话可以在本地尝试一下。安装不是很复杂的。
    xcjzv
        11
    xcjzv  
       2017-04-10 09:24:02 +08:00
    @blueset 请问, telegram 端收发微信,最新的在 vps 上部署的中文教程有没有啊, https://blog.1a23.com/2017/01/09/EFB-How-to-Send-and-Receive-Messages-from-WeChat-on-Telegram-zh-CN/
    你说 out of date 了啊
    blueset
        12
    blueset  
    OP
       2017-04-10 09:56:04 +08:00 via Android
    @xcjzv 安装教程请参照项目文档。 https://ehforwarderbot.readthedocs.io
    xcjzv
        13
    xcjzv  
       2017-04-10 10:24:39 +08:00
    @blueset 最后启动那步,报错:
    Traceback (most recent call last):
    File "main.py", line 131, in <module>
    init()
    File "main.py", line 83, in init
    obj = getattr(__import__(i[0], fromlist=i[1]), i[1])
    File "/root/ehForwarderBot/plugins/eh_wechat_slave.py", line 12, in <module>
    import itchat
    ImportError: No module named 'itchat'
    blueset
        14
    blueset  
    OP
       2017-04-10 10:29:04 +08:00
    @xcjzv #13 依赖安装不完整。请检查安装依赖时( pip3 install -Ur requirements.txt 或类似指令)的报错信息。
    xcjzv
        15
    xcjzv  
       2017-04-10 10:31:57 +08:00
    @blueset 请问 telegram ID 这里是不是还要倒过来输入一次? "admins": [12345678, 87654321],

    我倒过来输入一次了后,报错是不报错了,但:
    root@default:~# cd ehForwarderBot
    root@default:~/ehForwarderBot# python3 daemon.py start
    pid: 8479
    Output is saved to 'EFB.log', showing output now.
    Press ^C (Control+C on Mac, Ctrl+C otherwise) to hide.

    这里出不来微信二维码啊
    xcjzv
        16
    xcjzv  
       2017-04-10 10:34:12 +08:00
    @blueset 是不是 https://blog.1a23.com/2017/01/09/EFB-How-to-Send-and-Receive-Messages-from-WeChat-on-Telegram-zh-CN/
    这个教程不完整啊?缺少配置微信什么东西?
    blueset
        17
    blueset  
    OP
       2017-04-10 10:39:26 +08:00
    @xcjzv #15 Telegram ID 仅需要输入可以控制 bot 的用户 ID ,不需要倒转。如果 daemon 不出现任何错误提示,尝试运行 python3 main.py 并查看错误提示。
    微信部分没有必填配置,因为登录时只能通过扫码鉴权。
    xcjzv
        18
    xcjzv  
       2017-04-10 10:44:03 +08:00
    @blueset daemon 没报任何错, pip3 install -Ur requirements.txt 这里我看也没问题啊!


    root@default:~/ehForwarderBot# pip3 install -Ur requirements.txt
    Collecting moviepy (from -r requirements.txt (line 1))
    Using cached moviepy-0.2.3.1-py2.py3-none-any.whl
    Collecting peewee (from -r requirements.txt (line 2))
    Using cached peewee-2.9.2.tar.gz
    Collecting pydub (from -r requirements.txt (line 3))
    Using cached pydub-0.18.0-py2.py3-none-any.whl
    Collecting requests (from -r requirements.txt (line 4))
    Using cached requests-2.13.0-py2.py3-none-any.whl
    Collecting python_telegram_bot>=5.3 (from -r requirements.txt (line 5))
    Using cached python_telegram_bot-5.3.0-py2.py3-none-any.whl
    Collecting xmltodict (from -r requirements.txt (line 6))
    Using cached xmltodict-0.10.2.tar.gz
    Collecting Pillow (from -r requirements.txt (line 7))
    Using cached Pillow-4.1.0-cp35-cp35m-manylinux1_x86_64.whl
    Collecting python_magic (from -r requirements.txt (line 8))
    Using cached python_magic-0.4.13-py2.py3-none-any.whl
    Collecting itchat>=1.2.24 (from -r requirements.txt (line 9))
    Using cached itchat-1.3.5-py2.py3-none-any.whl
    Collecting python-daemon (from -r requirements.txt (line 10))
    Using cached python_daemon-2.1.2-py2.py3-none-any.whl
    Collecting pyqrcode (from -r requirements.txt (line 11))
    Using cached PyQRCode-1.2.1.zip
    Collecting numpy (from moviepy->-r requirements.txt (line 1))
    Downloading numpy-1.12.1-cp35-cp35m-manylinux1_x86_64.whl (16.8MB)
    99% |############################### | 16.8MB 38.6MB/s eta 0:00:01Killed
    blueset
        19
    blueset  
    OP
       2017-04-10 10:56:00 +08:00
    @xcjzv #18 如果 daemon 不出现任何错误提示,尝试运行 python3 main.py 并查看错误提示。
    如果需要详细讨论,建议访问 EFB 支持群组 (Gitter / Telegram)。
    链接详见项目文档。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2855 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:12 · PVG 23:12 · LAX 07:12 · JFK 10:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.