Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kurikomoe/QQ2TG
QQ和Telegram消息的连通层(废弃,WebQQ 协议 1/1/19 被腾讯下线)
https://github.com/kurikomoe/QQ2TG
qq telegram
Last synced: 3 months ago
JSON representation
QQ和Telegram消息的连通层(废弃,WebQQ 协议 1/1/19 被腾讯下线)
- Host: GitHub
- URL: https://github.com/kurikomoe/QQ2TG
- Owner: kurikomoe
- License: gpl-3.0
- Archived: true
- Created: 2017-11-04T09:11:12.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2019-01-06T06:32:17.000Z (almost 6 years ago)
- Last Synced: 2024-07-17T13:01:22.958Z (4 months ago)
- Topics: qq, telegram
- Language: Python
- Homepage:
- Size: 34.2 KB
- Stars: 45
- Watchers: 7
- Forks: 2
- Open Issues: 5
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
## 更新
1/6/19:
废弃,WebQQ 协议 1/1/19 被腾讯下线,建议采用酷 Q 等的作为后端。# 一句话概述
Linux下不管是Wine、Crossover还是虚拟机跑QQ都太麻烦了,因此写了个东西把TG和QQ连接到了一起。于是可以在TG上愉快的聊QQ了。
# 具体描述
为QQBot写了一个插件(不妨叫做「QQBOT_PLUGIN」),为Telegram写了一个Bot(不妨叫做「TGBOT」),通过(现阶段)Unix Socket通信,基本工作原理就是
QQBot <--> QQBOT_PLUGIN <--(Unix Socket)--> TGBOT <--> Telegram
这样子进行通信。把QQ消息转发到TG,把发送给TGBOT的消息转发到QQ。
## 要点
不同于关联QQ-TG群组的组件,此BOT为个人独享,直接作为TG和QQ的中间层,把一个BOT当作QQ信息的终端,以此来接受和发送信息。
## 优点
- 不用忍受wine系列qq的高cpu占用,不用忍受开虚拟机的费电。所有的东西都整合在TG里面,方便又开心。
- 不怕别人召回了??
- TG可以和系统内置的Notification结合,实时提示新的信息,以及内容。
## 缺点
- 由于WebQQ本身协议的问题,因此只能接受发送文字信息(考虑到大部分时间图片,表情包都是卖萌的。。也就无所谓了,不过以后可以考虑利用酷Q实现)
- 对QQBot的源代码理解不是很深入,因此目前是通过插件的形式导入进去,以后希望能把QQBot的代码内置到本项目里面,就不用分别启动了。
- 掉线重连机制目前还没有实现
- QQ消息全部整合到BOT中,容易看走眼??(有几万个群的dalao估计会被刷爆的)
- 目前没有过滤自己发送的信息,因为weibqq存在发送失败的可能性,因此读取自己的信息并显示出来有利于判断消息是否成功发送。
# 安装
## 需要安装的组件
- **环境:python3**
- [QQBot](https://github.com/pandolia/qqbot):QQBot: A conversation robot base on Tencent's SmartQQ
- [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot):We have made you a wrapper you can't refuse [https://python-telegram-bot.org](https://python-telegram-bot.org)
## config.py
配置文件,可以建立config_user.py 修改相应的配置
## qq.py
作为QQBOT的Plugin载入,同时确保qq.py可以import到config.py
建议把qq.py config.py config_user.py 直接ln -s 「软链接」到~/.qqbot-tmp/plugins目录下
## tg.py
telegram bot,直接
```
python3 tg.py
```
就可以启动# 功能描述
## 基础聊天功能
通过/start开启和机器人的聊天(为了刷新username和chat_id)
```
基本发送消息命令
/msg group|buddy|discuss username|qq message
```> 对于包含 space 的群名,使用下划线「_」代表空格
## 快速回复功能
因为每次打/msg balabala 实在是太麻烦了,于是利用TG的reply功能,可以快速回复消息
具体做法:
- 右键含有「name: type」的这种消息,选择reply
- 直接输入要回复的信息,之后TGBOT会自动提取出要回复联系人的类型和名字,直接回复。
## 启动 qqbot 的功能
> INFO: 这个功能目前是用 os.system 实现的,有注入的危险
> 另外需要在 config_user.py 里面添加相应的配置 QQBOT_USER_CONFIG_NAME 设置```
启动 qqbot 的命令
/qqbot start|stop|restart
```配合自动发送二维码功能,以后就能超方便的重启 qqbot or 获取新的 qqbot 二维码了(因为栗子懒得登录服务器重启了。。)
> INFO: /start 命令会自动执行 /qqbot start
## 未来的计划
- 将QQBot换成酷Q?
- QQBOT_PLUGIN 与 TelegramBot 通讯支持跨服务器(以后就VPS上24h不停的跑TGBOT,QQBOT看情况按需在本地或VPS上开启
- /focus 系列命令
将与BOT的直接聊天转化为对focus状态的联系人的聊天。
- 更多的兼容层,实现与IRC等的兼容
- /block 系列命令,记录屏蔽群消息清单
- /history 系列命令, 记录历史消息并显示
# 鸣谢
- [pandolia/qqbot](https://github.com/pandolia/qqbot) -- 逆向smartqq协议真不是人干的事儿,感谢作者的轮子
- [python-telegram-bot/python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) -- 如果用raw http请求写tg bot,我大概会死吧。