Bridging QQ and Telegram with NapCat & mtcute. 基于 NapCat 和 mtcute 的 QQ-Telegram 消息桥
10K+
简体中文
基于 NapCat 和 mtcute 的现代化 QQ-Telegram 消息桥接工具
IQQClient 接口的标准化实现,解耦底层协议| 组件 | 技术方案 | 说明 |
|---|---|---|
| QQ 适配 | NapCat | 基于 WebSocket 的现代化协议实现 |
| TG 适配 | mtcute | 原生 MTProto 实现,无需 Bot API 中转 |
| 核心语言 | TypeScript 5.0+ | 严格模式,全链路类型安全 |
| 前端框架 | React 19 + Vite | Tailwind CSS 4, Shadcn UI, Recharts |
| 运行时 | Node.js 25 (ESM) | 现代化模块系统 |
| 数据持久化 | PostgreSQL + Prisma 7 | 强类型 ORM,支持自动迁移 |
| 测试框架 | Vitest | 单元测试覆盖率 >80% |
获取项目
git clone https://github.com/magisk317/NapGram.git
cd NapGram
环境配置
cp main/.env.example main/.env
# 编辑 .env 填入 NapCat 连接信息和 TG Bot Token
启动服务
cp compose.example.yaml docker-compose.yml
docker-compose up -d
main/src/
├── features/ # 功能模块
│ ├── forward/ # 消息转发核心
│ ├── recall/ # 撤回同步
│ ├── media/ # 媒体处理流水线
│ └── commands/ # 下一代命令系统
├── infrastructure/ # 基础设施
│ ├── clients/qq/ # QQ 协议适配层
│ └── clients/telegram/# MTProto 封装
└── domain/ # 领域模型与转换器
得益于模块化架构,添加新功能非常简单:
// 1. 实现 Feature 接口
class MyFeature {
constructor(
private instance: Instance,
private tgBot: Telegram,
private qqClient: IQQClient,
) {
this.setupListeners();
}
private setupListeners() {
this.qqClient.on('message', this.handleMessage);
}
}
// 2. 注册到 FeatureManager
featureManager.register(new MyFeature(...));
/mode, /bind 等管理命令本项目仅供教育和个人使用。请遵守 QQ 和 Telegram 的服务条款。
Content type
Image
Digest
sha256:b46241e4c…
Size
288.6 MB
Last updated
about 21 hours ago
docker pull alpha317/napgram:dev-20260811-amd64