106 lines
4.5 KiB
Markdown
106 lines
4.5 KiB
Markdown
# TaskPing 新项目结构设计
|
|
|
|
## 📁 重构后的目录结构
|
|
|
|
```
|
|
TaskPing/
|
|
├── 📦 src/ # 源代码目录
|
|
│ ├── 🎯 core/ # 核心模块
|
|
│ │ ├── notifier.js # 通知核心类
|
|
│ │ ├── config.js # 配置管理
|
|
│ │ └── logger.js # 日志记录
|
|
│ ├── 📢 channels/ # 通知渠道
|
|
│ │ ├── base/ # 基础接口
|
|
│ │ │ └── channel.js # 通知渠道基类
|
|
│ │ ├── local/ # 本地通知
|
|
│ │ │ └── desktop.js # 桌面通知
|
|
│ │ ├── email/ # 邮件通知
|
|
│ │ │ └── smtp.js # SMTP邮件
|
|
│ │ ├── chat/ # 聊天平台
|
|
│ │ │ ├── discord.js # Discord
|
|
│ │ │ ├── telegram.js # Telegram
|
|
│ │ │ ├── whatsapp.js # WhatsApp
|
|
│ │ │ └── feishu.js # 飞书
|
|
│ │ └── webhook/ # Webhook通知
|
|
│ │ └── generic.js # 通用Webhook
|
|
│ ├── 🔄 relay/ # 命令中继模块
|
|
│ │ ├── server.js # 中继服务器
|
|
│ │ ├── client.js # 中继客户端
|
|
│ │ └── commands.js # 命令处理
|
|
│ ├── 🛠️ tools/ # 工具模块
|
|
│ │ ├── cli.js # 命令行工具
|
|
│ │ ├── installer.js # 安装器
|
|
│ │ └── config-manager.js # 配置管理器
|
|
│ └── 🎵 assets/ # 静态资源
|
|
│ └── sounds/ # 音效文件
|
|
├── 📋 config/ # 配置文件
|
|
│ ├── default.json # 默认配置
|
|
│ ├── user.json # 用户配置
|
|
│ ├── channels.json # 渠道配置
|
|
│ └── templates/ # 配置模板
|
|
│ ├── claude-hooks.json # Claude Code hooks
|
|
│ └── channel-templates/ # 各渠道配置模板
|
|
├── 📚 docs/ # 文档目录
|
|
│ ├── README.md # 主文档
|
|
│ ├── QUICKSTART.md # 快速开始
|
|
│ ├── api/ # API文档
|
|
│ ├── channels/ # 各渠道使用指南
|
|
│ └── examples/ # 使用示例
|
|
├── 🧪 tests/ # 测试目录
|
|
│ ├── unit/ # 单元测试
|
|
│ ├── integration/ # 集成测试
|
|
│ └── fixtures/ # 测试数据
|
|
├── 📦 项目根文件
|
|
│ ├── package.json # Node.js配置
|
|
│ ├── taskping.js # 主入口文件
|
|
│ ├── LICENSE # 开源协议
|
|
│ └── .gitignore # Git忽略
|
|
└── 🚀 scripts/ # 构建脚本
|
|
├── build.js # 构建脚本
|
|
├── dev.js # 开发脚本
|
|
└── deploy.js # 部署脚本
|
|
```
|
|
|
|
## 🏗️ 模块设计原则
|
|
|
|
### 1. 核心抽象
|
|
- **NotificationChannel**: 所有通知渠道的基类
|
|
- **CommandRelay**: 命令中继的统一接口
|
|
- **ConfigManager**: 统一的配置管理
|
|
|
|
### 2. 插件化架构
|
|
- 每个通知渠道独立模块
|
|
- 支持动态加载和卸载
|
|
- 标准化的接口和生命周期
|
|
|
|
### 3. 配置分离
|
|
- 用户配置与默认配置分离
|
|
- 渠道配置模块化
|
|
- 敏感信息加密存储
|
|
|
|
## 🔄 工作流程
|
|
|
|
### Phase 1: 本地通知 (当前)
|
|
Claude Code → hook-notify.js → Desktop Notification
|
|
|
|
### Phase 2: 多渠道通知
|
|
Claude Code → Core Notifier → Channel Router → [Email|Discord|Telegram|...]
|
|
|
|
### Phase 3: 命令中继
|
|
Channel → Command Relay Server → Claude Code Client → Execute Command
|
|
|
|
## 🎯 入口点设计
|
|
|
|
```bash
|
|
# 主命令
|
|
taskping [command] [options]
|
|
|
|
# 子命令
|
|
taskping install # 安装和配置
|
|
taskping config # 配置管理
|
|
taskping test # 测试通知
|
|
taskping serve # 启动中继服务
|
|
taskping relay # 连接中继服务
|
|
```
|
|
|
|
这个结构为未来的扩展提供了良好的基础。 |