Skip to content
This repository has been archived by the owner on Jun 25, 2020. It is now read-only.

kyubotics/im-ambassador

Repository files navigation

IM Ambassador

License Build Status Docker Repository

这是从 CCZU-DEV/xiaokai-bot 精简而来的即时聊天消息转发器。

名字的「Ambassador」意为「使者」,「IM」意为「即时聊天」,也可理解为「我是」,寓意这个 bot 在多个即时聊天平台承担使者的角色,按某一既定规则转发、回复消息。

转发规则可通过配置文件设置,自定义性比较强。另外,消息发送器采用适配器模式,易于扩展不同的 IM 平台。目前仅支持接收和发送基于 sjdy521/Mojo-Webqqsjdy521/Mojo-Weixinrichardchien/coolq-http-api 的消息。

重要:目前实现还非常粗糙,我也不一定有时间去改进。另外,完全没有做对于不同消息源的非文字消息的适配,所以按需谨慎使用。目前最建议的使用场景是使用一个酷 Q 程序进行 QQ 号之间的转发,也就不存在非文字消息的适配问题。

使用场景

  • 将多个小号收到的消息转发到大号,并在大号里直接回复
  • 将微信收到的消息转发到 QQ,并在 QQ 里直接回复
  • 仅将某几个群的包含某几个关键词的消息转发到另一个账号
  • 对同一个社区在不同平台的分群消息进行互相转发
  • 更多使用场景等待你发现……

快速开始

预备

首先你需要决定用什么消息源,所有支持的消息源在 消息源列表 给出(和 CCZU-DEV/xiaokai-bot 兼容),然后去其官网了解如何使用这些消息源来登录你的账号。

另外本项目需要 Python 3.x,下面的命令可能要换成 pip3python3

修改配置文件

复制 config.sample.jsonconfig.json 或复制 config.sample.pyconfig.py(两者有任意一个即可),然后按需进行修改,具体写法见 配置文件写法

运行程序

首先安装依赖:

pip install -r requirements.txt

然后启动程序:

python app.py

#

python app.py 9000

#

python app.py 127.0.0.1 8080

不加参数会默认监听 0.0.0.0:8080,加参数可以自定 IP 和端口。这两个参数也可以分别通过环境变量 IM_AMBASSADOR_HOSTIM_AMBASSADOR_PORT 来设置。

在 Docker 中运行程序

相比起直接运行,使用 Docker 来运行本程序是一种更方便快捷的方法,例如下面启动命令:

docker run -ti --rm -e "IM_AMBASSADOR_HOST=0.0.0.0" -e "IM_AMBASSADOR_PORT=9000" -v config.json:config.json --name my-im-ambassador richardchien/im-ambassador

设置消息源的上报地址

无论什么消息源,都需要通过 HTTP POST 来将收到的消息以 JSON 的形式发送给本程序。

为了区分不同的消息源,设置上报地址时需要对不同的消息源指定不同的子路径,按 /<string:via>/<string:login_id> 的格式。

例如,如果你使用 sjdy521/Mojo-Weixin 作为消息源登录微信号 your_wechat_id,并且运行本程序的时候监听了 127.0.0.1:8888,那么你需要在运行 sjdy521/Mojo-Weixin 时指定上报地址为 http://127.0.0.1:8888/mojo_weixin/your_wechat_id

更多配置

项目中给出的 config.sample.json 中是一种非常简单的配置,你可以参考 配置文件写法 来进行你自己的定制,也可以参考 配置文件示例 给出的几种典型的使用场景下的配置文件。

About

即时聊天消息转发器

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages