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

2016-12-04 15:39:49 +08:00
 blueset
第一个有好好写文档的开源项目。

EH Forwarder Bot

https://github.com/blueset/ehForwarderBot

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

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

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

顺便求 Star 。 XD

4844 次点击
所在节点    分享创造
19 条回复
NxnXgpuPSfsIT
2016-12-04 17:31:13 +08:00
666 ,来支持一下
leopku
2016-12-04 19:41:01 +08:00
支持一下
7jmS8834H50s975y
2016-12-04 19:46:05 +08:00
@blueset 好的项目不该有`.idea`文件夹
saxon
2016-12-04 22:23:45 +08:00
@NxnXgpuPSfsIT
@blueset 666 两位大神的项目我都会跟进!@
htfy96
2016-12-04 23:08:01 +08:00
害怕……想起了之前在写的同样基于 Python3 ,功能基本相同的的框架: https://github.com/sjtug/im-bridge 不过设计是多对多的,而且最近坑掉了
blueset
2016-12-05 00:26:37 +08:00
@htfy96 有兴趣一起参与吗?
crazycabbage
2016-12-05 01:17:04 +08:00
666,最近在写聊天室,这让我想到了新功能
strahe
2016-12-05 09:36:57 +08:00
python 里函数命名用驼峰式不觉得怪怪的.
saxon
2016-12-05 15:21:32 +08:00
有没有展示功能的 DEMO
blueset
2016-12-05 15:54:15 +08:00
@saxon 由于聊天平台的隧道转发会涉及隐私内容,故不适合开放 Demo ,请谅解。
如果有兴趣的话可以在本地尝试一下。安装不是很复杂的。
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
2017-04-10 09:56:04 +08:00
@xcjzv 安装教程请参照项目文档。 https://ehforwarderbot.readthedocs.io
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
2017-04-10 10:29:04 +08:00
@xcjzv #13 依赖安装不完整。请检查安装依赖时( pip3 install -Ur requirements.txt 或类似指令)的报错信息。
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
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
2017-04-10 10:39:26 +08:00
@xcjzv #15 Telegram ID 仅需要输入可以控制 bot 的用户 ID ,不需要倒转。如果 daemon 不出现任何错误提示,尝试运行 python3 main.py 并查看错误提示。
微信部分没有必填配置,因为登录时只能通过扫码鉴权。
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
2017-04-10 10:56:00 +08:00
@xcjzv #18 如果 daemon 不出现任何错误提示,尝试运行 python3 main.py 并查看错误提示。
如果需要详细讨论,建议访问 EFB 支持群组 (Gitter / Telegram)。
链接详见项目文档。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/325191

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX