ソースを参照

docs: add README.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
kotoyuuko 1 ヶ月 前
コミット
3e22d98bc9
1 ファイル変更82 行追加0 行削除
  1. 82 0
      README.md

+ 82 - 0
README.md

@@ -0,0 +1,82 @@
+# CosMoe Bot
+
+甜奈摄影会 Telegram 机器人,基于 [grammy](https://grammy.dev) 框架,部署在 Cloudflare Workers 上。
+
+## 功能
+
+| 命令 | 说明 |
+|---|---|
+| `/start` | 显示欢迎信息和可用命令 |
+| `/login` | 交互式登录 CosMoe 账户 |
+| `/logout` | 登出并清除账户凭证 |
+| `/events` | 查看最新活动列表 |
+| `/event_{id}` | 查看活动详情和可预约时段 |
+| `/book_{eventId}_{slotIndex}` | 预约活动时段 |
+| `/history` | 查看进行中的预约记录 |
+| `/history all` | 查看全部预约记录 |
+| `/cancel_{bookingId}` | 取消预约 |
+
+机器人每分钟自动检查新活动,并通过 Telegram 推送通知给已登录用户。
+
+## 技术栈
+
+- **运行时**: Cloudflare Workers
+- **框架**: grammy (Telegram Bot)
+- **存储**: Cloudflare KV(用户凭证、会话状态、调度数据)
+- **语言**: TypeScript (ES2024)
+- **测试**: Vitest + @cloudflare/vitest-pool-workers
+
+## 开发
+
+```bash
+# 安装依赖
+npm install
+
+# 本地开发
+npm run dev
+
+# 部署
+npm run deploy
+
+# 运行测试
+npm test
+
+# 重新生成 Worker 类型
+npm run cf-typegen
+```
+
+### 环境变量
+
+在 `.dev.vars` 中配置本地开发所需的密钥:
+
+```
+BOT_TOKEN=your_telegram_bot_token
+```
+
+生产环境的密钥通过 Cloudflare Dashboard 设置。
+
+## 项目结构
+
+```
+src/
+├── index.ts              # Worker 入口(fetch + scheduled handler)
+├── client/
+│   └── cosmoe.ts         # CosMoe API 客户端
+├── command/
+│   ├── index.ts          # 命令路由和注册
+│   └── handlers/         # 各命令处理器
+│       ├── start.ts
+│       ├── login.ts
+│       ├── logout.ts
+│       ├── events.ts
+│       ├── eventDetails.ts
+│       ├── bookEvent.ts
+│       ├── cancel.ts
+│       └── history.ts
+└── scheduler/
+    └── index.ts          # 定时任务:新活动通知
+```
+
+## License
+
+Private