QQ2TG – 轻量级QQ <-> Telegram互联程序

已弃坑,随缘重构

项目地址 : GayHub

OnePlus 6 电池比较小, 耗电也比较快, 找了找原因, 发现是QQ这国产毒瘤的锅, 于是就想着写一个小程序, 让QQ终身呆在垃圾桶里, 就这样, 这个无底洞出现了 //滑稽

适用对象

目前仅适用于 轻度使用QQ 或 不想使用多个聊天客户端的 TG重度使用者

毕竟还有些功能不能实现, 不装QQ暂不可能

QQ2TG

一个帮助 QQ 与 Telegram 互联的小程序 qq2tg.png

演示

聊天界面)聊天记录界面

简述

程序主体使用PHP编写, 依赖于拓展swoole, 配合酷Q的coolq-http-api插件使用

目前还不是十分完善, 可能存在各种奇怪的问题, 还请各位 dalao 指点一二

Feature

  • 使用 Swoole 的异步 HTTP Client 请求 Telegram Bot API 服务器
  • 将QQ图片缓存为 Telegram File ID , 提高效率
  • 拓展性较高, 可轻松支持一个新的 CQ 码或 Telegram 消息格式
  • 支持双向发起私聊消息
  • 支持 QQ 自带的 Emoji
  • 支持 Telegram 端撤回 QQ 消息
  • 支持私聊 QQ 黑名单
  • 支持 Sticker 无损转发 (可以当 Sticker 转移机器人啦233
  • 附带 Web 端消息查看
  • 支持位置信息发送与接收
  • 机器人在线时手机电脑可同时在线
  • 采用世界上最好的语言编写 ((日常拉仇恨

实在编不出来了… /滑稽

使用

  1. 将代码拖到本地 : git clone https://github.com/XiaoLin0815/QQ2TG.git
  2. config\.env.example改名为config\.env并根据提示及示例填写完整
  3. 安装酷Q(若要发送图片则要求安装Pro版本)以及coolq-http-api插件,并添加配置以下参数:
  • 酷Q:

    • 更改登录模式为平板模式

      [Debug]
      Platform=2
    • HTTP API:

      • use_ws_reverse : 使用反向 WebSocket 通讯

      • ws_reverse_api_url/ws_reverse_event_url : 反向WS服务器地址,对应操作2中配置的websocket -> host/port

      • host/port/use_http : HTTP服务器设置,对应操作2中配置的

        coolq -> http_url
        {
            "use_ws_reverse":true,
            "ws_reverse_api_url":"ws://192.168.31.120:9501",
            "ws_reverse_event_url":"ws://192.168.31.120:9501",
            "host":"0.0.0.0",
            "port":5700,
            "use_http":true
        }
  1. 确保您本地可访问 Telegram Bot API 服务器或填写好了proxy -> host/port(若不需要请留空)

  2. 确保您的PHP已安装了swoole扩展

  3. 进入目录, 输入composer update

  4. 在网站环境中设置 public/ 为运行目录并确保其中的 images 目录可写

  5. 访问 https://api.telegram.org/bot/setWebHook?url=https:///webhook.php 设置WebHook, 若认为不安全, 可自行改变文件名

  6. 配置进程守护程序(

    强烈建议

    ):

    • Systemd

      # /usr/lib/systemd/system/QQ2TG.service
      [Unit]
      Description=QQ2TG
      Documentation=https://github.com/XiaoLin0815/QQ2TG
      After=network.target
      [Service]
      ExecStart=/path/to/your/php /path/to/2018-07-qq2tg/run.php
      Restart=always
      [Install]
      WantedBy=multi-user.target
  7. 终端输入 service QQ2TG start

  8. enjoy it

  • TG端发送消息:
    1. 私聊机器人并发送 /new_chat
    2. 选择要私聊的用户
    3. 回复机器人发出的消息开始私聊
  • Web 消息查看:
    1. 在 Config.php 中设置好 program -> password
    2. 打开 http(s):///admin/message.html 并将权限密钥填写完整
    3. enjoy it

配置安全 (极为重要!)

  • Nginx:

    location ~ (^\.|/\.) {
        return 403;
    }
  • Apache:

    RewriteEngine On
    RewriteRule (^\.|/\.) - [F]
  • IIS:

    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="Block access to dotfiles">
              <match url="(^\.|/\.)" ignoreCase="false" />
              <action type="CustomResponse" statusCode="403" statusReason="Forbidden" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    </configuration>

问题

本项目仅对 酷 Q Pro 版本提供支持, 对使用 Air 或 Lite 的用户不提供技术支持

日志等级建议调至 2 或以上,否则可能会造成严重的消息延误

由于 Telegram 的特殊性,所有由 QQ 转发至 Telegram 的 GIF 图像都会以链接的方式发送,至于客户端能不能自动解析显示就要看运气了 /滑稽

若要在 Linux 上使用 酷Q , 可参考这里

TODO

  • 异步消息发送
  • 图片信息缓存
  • 用户群名片缓存
  • 支持私聊消息
  • 支持消息撤回
  • 更新时自动更新配置
  • 解决文档中提到的问题
    • 从 Telegram 端发起私聊
  • 更多CQ码兼容

dalao 们如果有任何问题或者建议请在issue中提出或直接提交PR,感谢万分

题外话

毕竟初中生, 就是头脑简单四肢发达, 思维算法一坨屎, 英语极差, 导致代码里很多奇怪或者重复的变量名, 还请多多包涵,有些地方代码质量不高、效率低下, 或者结构有问题的, 还请 dalao 们多多指点

或许真的要像LWL说的那样变得更优秀

更新日志

2018/08/11 完全重构配置调用方式

2018/08/10 支持位置信息发送与接收

2018/08/09 新增 Web 端消息查看

2018/08/08 新增 rich/sign CQ 码兼容

2018/07/27 新增日志记录

2018/07/26 支持 Sticker 本地处理转发

2018/07/22 支持 Telegram 端先发起私聊

2018/07/20 支持消息撤回

2018/07/18 回复消息提醒对方

2018/07/12 支持双向私聊消息

2018/07/11 更新名片获取机制, 添加伪消息回复支持

2018/07/05 添加图片信息缓存、消息异步发送、群名片缓存, 支持保存消息

2018/07/02 第一版,支持 QQ 与 Telegram 消息双向互通,支持图片、sticker 发送

本文采用 CC BY-NC-SA 4.0 许可协议。转载和引用时请注意遵守协议、注明出处!