QQ 群与 Telegram 群相互转发的桥接机器人,适合tg重度用户单独使用。受 Clansty/Q2TG 启发。
-
环境配置:python == 3.10
如果python版本已经是3.10,建议使用 venv
python -m venv venv --upgrade-deps source venv/bin/activate pip install -r requirements.txt
如果系统默认python版本非3.10,建议使用 conda
conda create -n q2tg python=3.10 -y conda activate q2tg pip install -r requirements.txt
-
运行一个 go-cqhttp 实例,配置文件可参考
bot/example_config.yml
,注意启用 http 和正向 ws 通信 -
参考
example_config.toml
,填写config.toml
(如果不知道群的 ID,可以先不配置转发匹配,直接运行 bot,在需要查询 ID 的 TG 群里发送 /chatid 指令即可获得 ID) -
开始运行
python main.py
输入 Ctrl-D 或
q
回车退出
- 群聊
- 好友私聊
- 文字(双向)
- 图片(双向)
- 图文混排消息(双向)
- 回复(双平台原生回复)
- 小表情(可显示为文字)
- 大表情(双向)
- TG 中的动态 Sticker(目前仅发送缩略图)
- 链接(双向)
- 文件(双向)
- QQ -> TG 获取下载地址
- TG -> QQ 转发图片文件
- TG -> QQ 自动转发 20M 以下的小文件
- 视频(双向)
- 语音(双向)
- JSON/XML 卡片
- 双向转发消息记录
- TG 转发单条消息,QQ 显示消息来源
- QQ 合并转发,TG 展开消息记录
- TG 编辑消息,QQ 撤回并重发
- 双向撤回消息
- QQ 撤回消息,TG 同步删除(配置文件:
anti_recall = 0
) - QQ 撤回消息,TG 仅更改为删除线但不删除消息
- TG 删除消息,QQ 撤回(因bot无法接收删除事件,目前实现方式为编辑消息内容为
/rm
)
- QQ 撤回消息,TG 同步删除(配置文件:
- 快速+1功能(使用
/1
回复要复读的消息)
- 做成类似 oicq-http 的可交互 cli(初步)
- 所有私聊转发到同一个群
- 动图与 Sticker 转码发送
- 解析 Bilibili 分享卡片
- 同时连接多个 go-cqhttp 实现多账号统一收发
- 更详细的 readme 或 wiki,完整的一套教程
- 打个docker,一键运行
- 加入参数指定配置文件运行
- 待补充
- 发送 telegram 消息失败时触发 TelegramError
- 查询不到历史消息时触发 KeyError
- 部分特殊字符不会被 escape
- telegram 编辑重发的消息可能被转发回来
- telegram 发送的图片消息可能被转发回来
- 用户名里的链接可能被识别为网址,触发自动预览
- 转发失败时触发 UnboundLocalError
- 待补充