QQ 与 Telegram 群相互转发的 bot without User Bot
Go to file
Nofated095 134a21b279 patch(delete tgUser function) 2024-02-17 08:04:39 +08:00
.github Merge branch 'rainbowcat' of github.com:clansty/Q2TG into rainbowcat 2024-01-12 09:19:12 +08:00
.idea feat: /q 后自动在 tg pin 原消息,在 QQ 将原消息设为精华 2024-02-12 22:38:55 +08:00
assets/tgs perf: 完善导入引擎 2022-03-08 21:13:46 +08:00
prisma fix: 使用 richHeader 之后无法 /q 来自 QQ 的消息 2024-02-01 17:31:08 +08:00
src patch(delete tgUser function) 2024-02-17 08:04:39 +08:00
.dockerignore remove nix, use standard docker build and use pnpm 2023-11-06 18:42:41 +08:00
.editorconfig init: install deps and init prisma 2022-02-15 18:06:36 +08:00
.gitignore feat: /q 后自动在 tg pin 原消息,在 QQ 将原消息设为精华 2024-02-12 22:38:55 +08:00
.node-version fix: 修复参数没有传进去的 bug 2023-11-06 02:03:13 +08:00
Dockerfile feat: 签名 API 异常时提供重启选项 2024-01-10 18:26:31 +08:00
LICENSE doc: 添加免责声明和许可证 2022-03-30 15:21:13 +08:00
README.md Merge branch 'rainbowcat' of github.com:clansty/Q2TG into clansty-rainbowcat 2023-12-30 08:39:32 +08:00
README_backup.md update README 2023-01-19 16:02:12 +08:00
docker-compose.yaml Merge branch 'rainbowcat' of github.com:clansty/Q2TG into rainbowcat 2024-01-12 09:19:12 +08:00
package.json chore(deps): bump prisma from 5.8.0 to 5.9.1 2024-02-09 05:10:10 +00:00
pnpm-lock.yaml chore(deps): bump prisma from 5.8.0 to 5.9.1 2024-02-09 05:10:10 +00:00
tsconfig.json remove nix, use standard docker build and use pnpm 2023-11-06 18:42:41 +08:00

README.md

Q2TG - without User Bot

A fork of Clansty/Q2TG. Deleted UserBot function.

交流 https://t.me/+XkF-96lLnFU3ZTM1

QQ 群与 Telegram 群相互转发的 bot但是去除了 UserBot 模式,再也不用担心杜叔叔封 UserBot 啦!

为什么不需要 User Bot

Clansty/Q2TG#74 Clansty/Q2TG#80 Clansty/Q2TG#83

首先,并不是说 User Bot 不好,如果杜叔叔不瞎几把封号那其实无所谓,但我已经被封了两个 +1 的 Telegram Account 了。 但是对于那些不需要个人模式,愿意舍弃 Telegram 消息撤回检测,且想体验 rainbowcat 的新功能的用户来说User Bot 的配置略显多余,但 User Bot 在 rainbowcat 中被写死在代码中,而不是像 v1 中一样作为可选功能安装,而 rainbowcat 中在部署时必须配置 User Bot于是便有了这个 fork。

需要注意的是,此 fork 中个人模式几乎不可用,而群聊模式中需要 User Bot 功能实现的功能也都无法使用。

image

安装 / 迁移

请看 Wiki,与上游相同。

请注意修改 docker-compose.yaml,启动命令 docker compose up -d

如果你事先部署过上游的 Q2TG 实例,建议通过 docker stop main_q2tg 停止服务。你可以直接修改原先的 docker-compose.yamlservices - q2tg - imageghcr.io/nofated095/q2tg:rainbowcat

version: "3.8"
services:
  # 如果有现成的 Postgresql 实例,可以删除这一小节
  postgres:
    image: postgres
    container_name: postgresql_q2tg
    restart: unless-stopped
    environment:
      POSTGRES_DB: db_name
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    volumes:
      - ./postgresql:/var/lib/postgresql/data
  q2tg:
    image: ghcr.io/nofated095/q2tg:rainbowcat
    container_name: main_q2tg
    restart: unless-stopped
    depends_on:
      - postgres
    volumes:
      - ./data:/app/data
    environment:
      - TG_API_ID=
      - TG_API_HASH=
      - TG_BOT_TOKEN=
      - DATABASE_URL=postgres://user:password@postgres/db_name
      - CRV_API=
      - CRV_KEY=
      # 如果需要通过代理联网,那么设置下面两个变量
      #- PROXY_IP=
      #- PROXY_PORT=

支持的消息类型

  • 文字(双向)

  • 图片(双向)

    • GIF

    • 闪照

      闪照每个 TG 用户也只能查看 5 秒

  • 图文混排消息(双向)

  • 大表情(双向)

  • 视频(双向)

  • 语音(双向)

  • 小表情(可显示为文字)

  • 链接(双向)

  • JSON/XML 卡片

    (包括部分转化为小程序的链接)

  • 位置TG -> QQ

  • 群公告

  • 回复(双平台原生回复)

  • 文件

    QQ -> TG 按需获取下载地址

    TG -> QQ 将自动转发 20M 以下的小文件

  • 转发多条消息记录

  • TG 编辑消息(撤回再重发)

  • 双向撤回消息

  • 戳一戳

关于模式

群组模式

群组模式就是 1.x 版本唯一的模式,是给群主使用的。如果群组想要使自己的 QQ 群和 Telegram 群联通起来,就使用这个模式。群组模式只可以给群聊配置转发,并且转发消息时会带上用户在当前平台的发送者名称。

个人模式

个人模式适合 QQ 轻度使用者TG 重度使用者。可以把 QQ 的好友和群聊搬到 Telegram 中。个人模式一定要登录机器人主人自己的 Telegram 账号作为 UserBot。可以自动为 QQ 中的好友和群组创建对应的 Telegram 群组,并同步头像简介等信息。当有没有创建关联的好友发起私聊的时候会自动创建 Telegram 中的对应群组。个人模式在初始化的时候会自动在 Telegram 个人账号中创建一个文件夹来存储所有来自 QQ 的对应群组。消息在从 TG 转发到 QQ 时不会带上发送者昵称,因为默认发送者只有一个人。

不幸的,因为 User Bot 在此分支被残忍的删除,所以虽然没有测试个人模式,但是想想就知道个人模式在没有 User Bot 的情况下是几乎完全废的。

如何撤回消息

在 QQ 中,直接撤回相应的消息,撤回操作会同步到 TG

在 TG 中,可以选择以下操作之一:

  • 将消息内容编辑为 /rm
  • 回复要撤回的消息,内容为 /rm。如果操作者在 TG 群组中没有「删除消息」权限,则只能撤回自己的消息
  • 如果正确配置了个人账号的 User Bot可以直接删除消息

正确的,但由于此分支删除了 User Bot 功能,所以无法直接删除。

为了使撤回功能正常工作TG 机器人需要具有「删除消息」权限QQ 机器人需要为管理员或群主

即使 QQ 机器人为管理员,也无法撤回其他管理员在 QQ 中发送的消息

免责声明

一切开发旨在学习,请勿用于非法用途。本项目完全免费开源,不会收取任何费用,无任何担保。请勿将本项目用于商业用途。由于使用本程序造成的任何问题,由使用者自行承担,项目开发者不承担任何责任。

本项目基于 AGPL 发行。修改、再发行和运行服务需要遵守 AGPL 许可证,源码需要和服务一起提供。

许可证

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.