# gitee-vote **Repository Path**: bryan31/gitee-vote ## Basic Information - **Project Name**: gitee-vote - **Description**: gitee2025年度最受欢迎项目排名情况 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-11-20 - **Last Updated**: 2025-12-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📊 Gitee 项目投票统计分析系统 一个简洁、美观的 Gitee 项目投票数据统计分析工具,支持多种数据获取方式,自动展示各类别项目的投票排名。 ## ✨ 功能特性 - 🔐 **.env 配置** - 通过配置文件设置 Cookie(推荐) - 📋 **手动导入** - 支持直接粘贴 JSON 数据 - 📊 **自动统计** - 智能分析和分类统计 - 📈 **数据可视化** - ECharts 柱状图 + 饼图 - 🎯 **分类统计** - 按项目类别展示 Top 10 - 🏆 **总体排名** - 全部项目的 Top 10 - 🎨 **现代化 UI** - 简洁明亮、响应式设计 ## 🚀 快速开始 ### 方式 1: 使用 .env 文件(推荐) #### 1. 配置 Cookie ```bash # 1. 复制示例文件 cp .env.example .env # 2. 编辑 .env 文件,设置您的 Cookie # GITEE_COOKIE=gitee-session-n=你的Cookie值 ``` #### 2. 获取 Cookie 1. 访问 https://gitee.com 并登录 2. 按 `F12` 打开开发者工具 3. 切换到 **Application** 标签 4. 左侧选择 **Cookies** → **https://gitee.com** 5. 找到 `gitee-session-n` 并复制其值 6. 粘贴到 `.env` 文件中: ``` GITEE_COOKIE=gitee-session-n=BAh7CEkiD3Nlc3Npb25faWQGOgZFVEkiJWY... ``` #### 3. 启动服务 ```bash # 方式1: 后台启动(推荐) ./start.sh # 方式2: 前台启动 npm start ``` #### 4. 访问应用 打开浏览器访问:`http://localhost:3000` 点击 **"🚀 开始统计分析"** 按钮即可! #### 5. 服务管理 ```bash # 查看服务状态 ./status.sh # 停止服务 ./stop.sh # 查看实时日志 tail -f gitee-vote.log ``` --- ### 方式 2: 手动粘贴 JSON 数据 如果不想配置 `.env` 文件,可以手动获取 JSON 数据: #### 1. 启动服务 ```bash npm start ``` #### 2. 访问应用 打开浏览器访问:`http://localhost:3000` #### 3. 获取 JSON 数据 1. 登录 [Gitee](https://gitee.com) 2. 在浏览器中访问以下链接: ``` https://gitee.com/activities/project_candidates/list?page=1&per_page=200&sort=votes_count&direction=desc&filter_type=all&status=0&show_votes_count=true ``` 3. 复制页面上显示的所有 JSON 数据 4. 回到应用页面,选择 **"方式2: 手动粘贴 JSON 数据"** 5. 粘贴 JSON 数据到文本框 6. 点击 **"📊 分析 JSON 数据"** 按钮 --- ## 📋 Cookie 格式说明 ### 正确格式 ``` GITEE_COOKIE=gitee-session-n=BAh7CEkiD3Nlc3Npb25faWQGOgZFVEkiJWY... ``` ### 重要提示 - ✅ 只需要 `gitee-session-n` 这个 Cookie - ✅ 不需要其他 Cookie(如 `_ga`、`_gid` 等) - ✅ Cookie 通常很长,请完整复制 - ✅ 可以带 `gitee-session-n=` 前缀,也可以只复制值 - ❌ 不要包含多余的空格或换行 ## 📊 功能说明 ### 数据获取 - **Cookie 模式**:自动获取前 200 个项目(2 页,每页 100 个) - **JSON 模式**:根据您提供的 JSON 数据进行分析(可自定义获取数量) - 数据按票数从高到低排序 - 实时从 Gitee 官方接口获取 ### 数据展示 - **全部项目** - 所有项目的 Top 10 总排名 - **类别选择器** - 快速切换不同项目类别 - **柱状图** - 直观显示票数排名 - **饼图** - 展示票数分布占比 - **详细表格** - 显示项目名称、票数、描述等完整信息 ## 🔧 服务管理脚本 ### start.sh - 后台启动服务 ```bash ./start.sh ``` **功能:** - ✅ 检查服务是否已运行(防止重复启动) - ✅ 自动检查并安装依赖 - ✅ 后台运行服务(使用 nohup) - ✅ 自动保存进程 PID - ✅ 输出日志到 `gitee-vote.log` - ✅ 启动成功提示 ### stop.sh - 停止服务 ```bash ./stop.sh ``` **功能:** - ✅ 优雅停止服务(SIGTERM) - ✅ 10秒超时后强制停止(SIGKILL) - ✅ 自动清理 PID 文件 - ✅ 停止状态反馈 ### status.sh - 查看服务状态 ```bash ./status.sh ``` **功能:** - ✅ 检查服务是否运行 - ✅ 显示进程详细信息(PID、CPU、内存、运行时间) - ✅ 检查端口监听状态 - ✅ 显示访问地址和日志文件位置 ### 其他启动方式 ```bash # 使用环境变量直接启动 GITEE_COOKIE='gitee-session-n=xxx' npm start # Windows (PowerShell) $env:GITEE_COOKIE='gitee-session-n=xxx'; npm start ``` ## 📝 常见问题 ### ❓ 页面显示 "未检测到 Cookie 配置"? - 确保您已经创建 `.env` 文件 - 检查 `.env` 文件中 Cookie 格式是否正确 - 重启服务器 - 或者选择 "方式2" 手动粘贴 JSON 数据 ### ❓ JSON 模式提示 "数据格式错误"? - 确保已登录 Gitee - 确保复制的是完整的 JSON 数据 - 检查 JSON 格式是否完整(以 `{` 开始,以 `}` 结束) ### ❓ Cookie 模式提示 "Failed to fetch data"? - Cookie 可能已过期,请重新获取 - 检查网络连接是否正常 - 确保 Cookie 复制完整 ### ❓ 如何获取更多数据? **Cookie 模式**:系统固定获取 200 个项目 **JSON 模式**:修改 URL 中的 `per_page` 参数 ``` per_page=200 # 最多 200 条 ``` ## 🌐 部署说明 ### 本地运行 ```bash npm start ``` ### 使用 PM2 管理 ```bash npm install -g pm2 pm2 start server.js --name gitee-vote pm2 save pm2 startup ``` ### Docker 部署 ```bash docker build -t gitee-vote . docker run -d -p 3000:3000 \ -e GITEE_COOKIE='gitee-session-n=xxx' \ gitee-vote ``` ## 📂 项目结构 ``` gitee-vote/ ├── .env.example # 环境变量示例文件 ├── start.sh # 启动脚本 ├── server.js # Express 后端服务 ├── package.json # 项目配置 ├── README.md # 项目文档 └── public/ # 前端文件 ├── index.html # 主页面 ├── app.js # 前端逻辑 └── style.css # 样式文件 ``` ## ⚠️ 注意事项 1. **Cookie 安全** - Cookie 包含您的登录信息,请勿泄露 - 不要将 `.env` 文件提交到 Git 仓库 - 建议定期更新 Cookie 2. **数据说明** - Cookie 模式:固定获取前 200 个项目 - JSON 模式:根据提供的数据分析 - 数据来源于 Gitee 官方接口 - 票数实时变化,建议定期刷新 3. **使用限制** - 请合理使用,避免频繁请求 - 遵守 Gitee 的使用规范 ## 🎯 使用建议 ### 推荐流程(Cookie 模式) 1. 复制 `.env.example` 为 `.env` 2. 获取 Gitee Cookie 并填入 `.env` 3. 运行 `npm start` 4. 访问 `http://localhost:3000` 5. 点击按钮开始统计 ### 备用流程(JSON 模式) 1. 运行 `npm start` 2. 访问 `http://localhost:3000` 3. 选择 "方式2: 手动粘贴 JSON 数据" 4. 登录 Gitee 获取 JSON 数据 5. 粘贴并分析 ## 🔧 技术栈 - **后端**:Node.js + Express + Axios + dotenv - **前端**:原生 JavaScript + ECharts 5.x - **样式**:纯 CSS3(渐变、动画、响应式) ## 📄 开源协议 ISC License ## 🔗 相关链接 - [Gitee 官网](https://gitee.com) - [ECharts 文档](https://echarts.apache.org) - [Express 文档](https://expressjs.com) --- **如有问题或建议,欢迎反馈!** 💬