Code Monkey home page Code Monkey logo

qq2tg's Introduction

更新

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存在发送失败的可能性,因此读取自己的信息并显示出来有利于判断消息是否成功发送。

安装

需要安装的组件

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 系列命令, 记录历史消息并显示

鸣谢

qq2tg's People

Contributors

huihuimoe avatar kurikomoe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

qq2tg's Issues

[Feature Idea] Redirect Group Messages to Different Telegram Groups

新功能「绝对不是新 BUG」

描述

考虑到现在来自 QQ 的消息都集中在 Bot 的输出有点过于拥挤。。好几次都错过了单个联系人发的消息「被淹没在了众多群消息中」,现在考虑对消息进行分流

实现方式

Group 分类法

通过将 Bot 和自己加入到同一个 Group,在 Group 中通过 /set 命令将 Group 和 QQ群 进行绑定。。从而将消息分流到该 Group

卖萌用

为什么 Gayhub 不支持 Due Time 啊。。这不是方便我摸鱼么?怠惰症晚期患者 栗子。趴~

文档补全请求

不是很懂具体的使用方法, qqbot 我之前单独弄过(QQ 群与 TG 群互联),TG bot 也弄了,只是这个项目的 config_user 和文件位置不是很理解。

[Feature Idea] Password Protection

新功能「绝对不是新 BUG」

描述

现在 Bot 还是有一些问题。。如果有人把 Bot 导入到群组,之后 /start 会把消息重新导向到这个 Group,就很麻烦。。

实现方式

给 /start 一个参数

利用预共享密钥,使得只有提供有效的 password 才能刷新 chat_id。

卖萌向

栗子好希望有人 fork 之后写出更好的版本。。这样栗子就能躺在床上用了。

[Bug] the message sent to tg.py cannot be received

Description

sometimes we use /qqbot restart to restart qq.py, but later I found out that the tg.py cannot receive the message sent from qq.py, but it can still send messages to qq.py.

Further investigation needed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.