2025_MyShell_Developers_Recap
- TypeScript 60.7%
- JavaScript 26%
- Shell 7%
- Batchfile 2.7%
- CSS 1.7%
- Other 1.9%
Bulk formatting normalization - emphasis style, line spacing, AI signature removal. Companion to main repo d4b657a workspace cleanup. |
||
|---|---|---|
| assets | ||
| CCimages | ||
| functions | ||
| scripts | ||
| services | ||
| utils | ||
| .env.local.example | ||
| .gitignore | ||
| API_PROXY_SOLUTION.md | ||
| App.tsx | ||
| CLAUDE.md | ||
| cloudbuild.yaml | ||
| configure-trigger.sh | ||
| data.ts | ||
| db.ts | ||
| DEBUG.md | ||
| DEPLOY_CLOUD_FUNCTION.md | ||
| DEPLOYMENT.md | ||
| Dockerfile | ||
| FEATURE_SIMPLIFICATION_SUMMARY.md | ||
| IMPLEMENTATION_COMPLETE.md | ||
| index.css | ||
| index.html | ||
| index.tsx | ||
| LOTTERY_EASTER_EGG.md | ||
| metadata.json | ||
| myshell-bots-2025-all.csv | ||
| myshell-bots-2025.csv | ||
| NEXT_STEPS.md | ||
| package-lock.json | ||
| package.json | ||
| QUICK-FIX.md | ||
| README.md | ||
| SIMPLIFIED_FEATURES.md | ||
| STATUS_REPORT.md | ||
| tsconfig.json | ||
| types.ts | ||
| VERIFICATION.md | ||
| vite.config.ts | ||
| 生图类bot list (1) 2d43f81ff51e81c9b6c2ec60b255245d.csv | ||
MyShell 2025 开发者年度回顾
🎉 一个基于真实数据的开发者年度总结动态网站
📊 项目概述
本项目是 MyShell 2025 年度开发者回顾网站,展示了:
- 1157 个 Bot(去重后的唯一 Bot)
- 175 位开发者
- 152 个 Tag 分类
所有数据来自真实的 CSV 文件,经过严格的解析、去重和验证。
⚡ 一键启动
# 1. 克隆仓库
git clone https://github.com/Arxchibobo/2025_MyShell_Developers_Recap.git
cd 2025_MyShell_Developers_Recap
# 2. 配置环境变量(可选,用于AI功能)
cp .env.local.example .env.local
# 编辑 .env.local 填入你的 Gemini API Key
# 3. 安装依赖(必须使用 --legacy-peer-deps)
npm install --legacy-peer-deps
# 4. 启动开发服务器
npm run dev
# 5. 打开浏览器访问
# http://localhost:3000
数据已预先解析完成,无需额外配置即可运行!
🔒 启用 AI 功能(感谢信和头像生成)
方法 1:使用 Cloud Functions 后端代理(推荐)⭐
这是生产环境推荐的安全方案,只需 5-10 分钟:
- 阅读 DEPLOY_CLOUD_FUNCTION.md
- 执行部署脚本:
cd functions/generate-content ./deploy.sh 你的_API_Key # Mac/Linux # 或 deploy.bat 你的_API_Key # Windows - 完成!AI 功能自动启用
优势:
- ✅ API Key 安全存储在服务端
- ✅ 前端代码中完全不包含 API Key
- ✅ 即使 API Key 泄露也无需重新构建
- ✅ 5 分钟即可完成部署
方法 2:本地开发(仅用于测试)
⚠️ 警告: 此方法会将 API Key 编译到前端代码中,不适合生产环境!
echo "GEMINI_API_KEY=你的_API_Key" > .env.local
npm run dev
当前状态:
- ✅ 核心功能正常(数据展示、开发者查询、抽奖)
- ⏳ AI 功能等待部署 Cloud Functions
- 🔒 生产环境已配置使用后端代理
🚀 快速开始
环境要求
- Node.js 18+ 或更高版本
- npm 或 pnpm
安装依赖
# 使用 --legacy-peer-deps 解决 React 19 和 recharts 的版本冲突
npm install --legacy-peer-deps
重要: 必须使用 --legacy-peer-deps 标志,否则会因 peer dependencies 冲突而安装失败。
启动开发服务器
npm run dev
访问 http://localhost:3000 查看网站。
构建生产版本
npm run build
npm run preview
📁 项目结构
├── scripts/
│ ├── parseCSV.ts # CSV 解析脚本
│ └── validateData.ts # 数据验证脚本
├── assets/
│ └── bots.json # 解析后的 JSON 数据
├── App.tsx # 主应用组件
├── data.ts # 数据导入模块
├── db.ts # 内存数据库
├── types.ts # TypeScript 类型定义
├── myshell-bots-2025.csv # 原始 CSV 数据源
└── .env.local # Gemini API Key 配置
🔧 数据处理流程
1. 解析 CSV 数据
npm run parse-csv
功能:
- 读取原始 CSV 文件(1168 行数据)
- 处理引号内的换行符和逗号
- 提取开发者名称(去除 Notion URL)
- 按 `MyShell_URL` 去重(保留最新日期的记录)
- 生成 `assets/bots.json` 文件
输出示例:
✅ 成功解析 1168 条记录
🔍 去重后: 1157 条记录
📊 最终数据: 1157 个 Bot, 175 位开发者
2. 验证数据完整性
npm run validate-data
验证项:
- ✅ Bot 总数(1150-1170 范围)
- ✅ 开发者数量(170-180 范围)
- ✅ URL 唯一性
- ✅ 必需字段完整性
- ✅ URL 格式有效性
- ✅ 日期格式(YYYY/MM/DD)
- ✅ Tag 数据完整性
📊 数据说明
CSV 数据源
文件: myshell-bots-2025.csv
字段结构:
Bot_Name,微信/Discord/x,Tag,MyShell_URL,Note,Launch_Date
去重策略
按 `MyShell_URL` 去重,当有重复 URL 时保留 `Launch_Date` 较新的记录。
原因:
- 原始 CSV 有 1168 行数据
- 去重后得到 1157 个唯一 Bot
- 移除了 11 条重复记录
开发者名称提取
从 `微信/Discord/x` 字段提取开发者名称,自动去除 Notion URL。
示例:
原始: "李火火 (https://www.notion.so/1bb3f81ff51e80eba138d176a1426398?pvs=21)"
提取后: "李火火"
🎨 功能特性
📄 页面一:总览页(Overview)
- 展示 Bot 总数和开发者总数
- 显示所有开发者名单(交互式词云)
- 社区感谢信
- 核心统计数据卡片
👤 页面二:成就查询(Creator Lookup)
- 输入开发者名称查询
- 支持精确匹配和模糊匹配
- 显示该开发者的所有 Bot
- 使用 Gemini AI 生成个性化总结
- 彩纸动画庆祝效果
🐛 常见问题
Q: 为什么 Bot 总数是 1157 而不是 1168?
A: 原始 CSV 包含 1168 行数据,但有 11 条重复记录(相同的 MyShell_URL)。去重后得到 1157 个唯一 Bot。
Q: 开发者数量为什么是 175?
A: 这是从 CSV 的 `微信/Discord/x` 字段提取的唯一开发者名称数量。已自动去除 Notion URL 部分。
Q: 如何重新生成数据?
A: 执行以下命令:
# 1. 确保 CSV 文件在根目录
# 2. 解析 CSV
npm run parse-csv
# 3. 验证数据
npm run validate-data
# 4. 重启开发服务器
npm run dev
📈 数据统计摘要
Top 10 开发者
- 工作人员: 77 个 bot
- 放空的记忆: 63 个 bot
- 金运: 50 个 bot
- 李火火: 49 个 bot
- L gong: 44 个 bot
- soilsigh: 43 个 bot
- 宣宣: 43 个 bot
- _12zzz22(discord): 37 个 bot
- 牟某某: 36 个 bot
- 亦诚: 27 个 bot
构建时间: 2025-12-26 数据版本: v1.0 技术支持: Claude Code + Gemini 3