EFB: 一个可扩展的聊天平台隧道 Bot 框架 (Python 3) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
blueset

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

  •  2
     
  •   blueset
    blueset Dec 4, 2016 5330 views
    This topic created in 3433 days ago, the information mentioned may be changed or developed.
    第一个有好好写文档的开源项目。

    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 replies    2017-04-10 10:56:00 +08:00
    NxnXgpuPSfsIT
        1
    NxnXgpuPSfsIT  
       Dec 4, 2016
    666 ,来支持一下
    leopku
        2
    leopku  
       Dec 4, 2016
    支持一下
    7jmS8834H50s975y
        3
    7jmS8834H50s975y  
       Dec 4, 2016
    @blueset 好的项目不该有`.idea`文件夹
    saxon
        4
    saxon  
       Dec 4, 2016
    @NxnXgpuPSfsIT
    @blueset 666 两位大神的项目我都会跟进!@
    htfy96
        5
    htfy96  
       Dec 4, 2016   1
    害怕……想起了之前在写的同样基于 Python3 ,功能基本相同的的框架: https://github.com/sjtug/im-bridge 不过设计是多对多的,而且最近坑掉了
    blueset
        6
    blueset  
    OP
       Dec 5, 2016
    @htfy96 有兴趣一起参与吗?
    crazycabbage
        7
    crazycabbage  
       Dec 5, 2016 via Android   1
    666,最近在写聊天室,这让我想到了新功能
    strahe
        8
    strahe  
       Dec 5, 2016
    python 里函数命名用驼峰式不觉得怪怪的.
    saxon
        9
    saxon  
       Dec 5, 2016
    有没有展示功能的 DEMO
    blueset
        10
    blueset  
    OP
       Dec 5, 2016
    @saxon 由于聊天平台的隧道转发会涉及隐私内容,故不适合开放 Demo ,请谅解。
    如果有兴趣的话可以在本地尝试一下。安装不是很复杂的。
    xcjzv
        11
    xcjzv  
       Apr 10, 2017
    @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
       Apr 10, 2017 via Android
    @xcjzv 安装教程请参照项目文档。 https://ehforwarderbot.readthedocs.io
    xcjzv
        13
    xcjzv  
       Apr 10, 2017
    @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
       Apr 10, 2017
    @xcjzv #13 依赖安装不完整。请检查安装依赖时( pip3 install -Ur requirements.txt 或类似指令)的报错信息。
    xcjzv
        15
    xcjzv  
       Apr 10, 2017
    @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  
       Apr 10, 2017
    @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
       Apr 10, 2017
    @xcjzv #15 Telegram ID 仅需要输入可以控制 bot 的用户 ID ,不需要倒转。如果 daemon 不出现任何错误提示,尝试运行 python3 main.py 并查看错误提示。
    微信部分没有必填配置,因为登录时只能通过扫码鉴权。
    xcjzv
        18
    xcjzv  
       Apr 10, 2017
    @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
       Apr 10, 2017
    @xcjzv #18 如果 daemon 不出现任何错误提示,尝试运行 python3 main.py 并查看错误提示。
    如果需要详细讨论,建议访问 EFB 支持群组 (Gitter / Telegram)。
    链接详见项目文档。
    About     Help     Advertise     Blog     API     FAQ     Solana     1259 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 48ms UTC 23:39 PVG 07:39 LAX 16:39 JFK 19:39
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86