# StarBackup **Repository Path**: mktime/star-backup ## Basic Information - **Project Name**: StarBackup - **Description**: Star时光机(用来备份GitHub/Gitee的star) - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-25 - **Last Updated**: 2025-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ⭐ StarBackup - GitHub Stars备份工具 ![StarBackup 预览](front/screenshots/screenshot1.png) 一个优雅而强大的GitHub/Gitee Star备份工具,使用Deepseek AI对star数据二次加工,方便检索。支持将您珍贵的GitHub/Gitee星标项目备份到本地,并以复古游戏机风格的界面进行管理和浏览。 ## 🌟 项目特色 - **🔄 自动备份**:一键备份GitHub/Gitee星标项目到本地 - **🎮 复古界面**:独特的复古游戏机风格设计,带来怀旧体验 - **🔍 智能搜索**:支持按名称、描述、语言等多维度搜索 - **📊 分类管理**:按编程语言自动分类整理项目 - **📈 统计洞察**:可视化展示星标项目统计信息 - **💾 本地存储**:完全离线运行,数据安全可控 - **⚡ 快速响应**:基于Vite的极速前端体验 ## 🏗️ 系统架构 ``` StarBackup/ ├── 📁 front/ # 前端应用 │ ├── src/ │ │ ├── App.vue # 主应用组件 │ │ ├── assets/ │ │ │ └── retro.css # 复古主题样式 │ │ └── main.js # 应用入口 │ ├── public/ │ │ └── result.json # 示例数据 │ ├── package.json # 前端依赖 │ └── vite.config.js # Vite配置 ├── 📁 scripts/ # 数据抓取脚本 │ ├── fetch_star.py # GitHub API数据抓取 │ ├── process_star.py # 调用deepseek API增加分类、描述信息 │ ├── requirements.txt # Python依赖 │ ├── starred_repos.json # 调用GitHub API获取的未经处理的star数据 │ └── result.json # 调用deepseek API处理后的star数据 └── README.md # 项目文档 ``` ## 🚀 功能特性 ### 前端功能 - **项目展示**:卡片式展示GitHub/Gitee星标项目 - **智能筛选**: - 按编程语言筛选 - 按关键词搜索 - 按更新时间排序 - **分页浏览**:支持大量项目的分页展示 - **详情查看**:点击项目名称直接跳转到GitHub/Gitee项目详情页 - **响应式设计**:适配各种屏幕尺寸 ### 后端功能 - **API集成**:GitHub/Gitee API v3集成 - **数据备份**:完整备份项目元数据 - **增量更新**:支持增量备份减少API调用 - **数据清洗**:智能处理API返回数据 ## 📋 安装步骤 ### 环境要求 - **Node.js**: 20.x 或更高版本 - **Python**: 3.8 或更高版本 - **Git**: 最新版本 ### 1. 克隆项目 ```bash git clone https://gitee.com/mktime/star-backup.git cd StarBackup ``` ### 2. 安装前端依赖 ```bash cd front npm install # 或使用国内镜像 npm install --registry=https://registry.npmmirror.com ``` ### 3. 安装Python依赖 ```bash cd ../scripts pip install -r requirements.txt # 或使用国内镜像 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` ## 🎯 运行步骤 1. **登录GitHub创建Token** - 访问:https://github.com/settings/tokens - 点击 Generate new token - 输入Token描述(如:StarBackup) - 勾选 public_repo 权限 - 点击 Generate token - 复制生成的Token(仅显示一次,稍后需要保存) - 保存Token到环境变量或`.env`文件 2. **配置环境变量** ``` # 创建scripts/.env文件 touch scripts/.env # 替换为你的 GitHub 用户名 GITHUB_USERNAME = 'your-id' # 替换为你的 GitHub 个人访问令牌 GITHUB_TOKEN = 'ghp_your_token' # 存储已获取仓库信息的文件 STAR_FILE = 'starred_repos.json' # 每页获取的数量 PER_PAGE = 100 # 包含分类和中文描述的输出数据 OUTPUT_FILE = "result.json" # 替换为实际的 DeepSeek API 地址 DEEPSEEK_API_URL = "https://api.deepseek.com/v1/chat/completions" # 替换为你的 DeepSeek API 密钥 DEEPSEEK_API_KEY = "sk-xxxxxxxxxxx" ``` 3. **运行数据抓取脚本** ```bash cd scripts python fetch_star.py ``` 4. **处理数据** ```bash python process_star.py # 生成的result.json文件会在scripts目录下,拷贝到front/public/目录下 cp result.json ../front/public/ ``` 5. **启动前端展示** ```bash cd ../front npm run dev ``` ## ⚙️ 配置选项 ### 前端配置 编辑`front/vite.config.js`: ```javascript export default { server: { port: 3000, // 自定义端口 host: '0.0.0.0' // 允许外部访问 } } ``` ## 🎨 自定义主题 项目采用CSS变量实现主题定制,编辑`front/src/assets/retro.css`: ```css :root { --retro-bg: #0f0f23; /* 背景色 */ --retro-primary: #00ff00; /* 主色调 */ --retro-secondary: #ff0066; /* 强调色 */ --retro-accent: #ffff00; /* 高亮色 */ } ``` ## 📊 项目统计示例 备份完成后,您将看到类似的数据结构: ```json [ { "id": 39571075, "name": "wasabeef/Blurry", "url": "https://github.com/wasabeef/Blurry", "starred_at": "2025-08-15T05:13:53Z", "description": "Blurry is an easy blur library for Android", "last_updated": "2025-08-18T19:00:15.178247", "category": "移动端开发", "summary": "一个轻量级的 Android 图像模糊库,提供简单易用的 API,帮助开发者快速为图片、View 或 Dialog 添加模糊效果,提升应用视觉体验。" }, { "id": 385199222, "name": "seemoo-lab/AirGuard", "url": "https://github.com/seemoo-lab/AirGuard", "starred_at": "2025-08-09T15:18:24Z", "description": "Protect yourself from being tracked 🌍 by AirTags 🏷 and Find My accessories 📍", "last_updated": "2025-08-18T19:00:15.179196", "category": "移动端开发", "summary": "一款保护用户隐私的Android应用,用于检测和防御Apple AirTags或其他Find My配件进行的未经授权的跟踪和定位。" } ] ``` ## 🤝 贡献指南 欢迎提交Issue和Pull Request! ### 开发流程 1. Fork本项目 2. 创建功能分支:`git checkout -b feature/new-feature` 3. 提交更改:`git commit -m 'Add new feature'` 4. 推送分支:`git push origin feature/new-feature` 5. 创建Pull Request 请勿将自己的.env文件提交到版本控制中,避免泄露个人信息。 ### 代码规范 - 前端:遵循Vue.js风格指南 - Python:遵循PEP 8规范 - 提交信息:使用清晰的描述性语言 ## 📄 许可证 MIT License - 详见 [LICENSE](LICENSE) 文件 ## 🙋‍♂️ 常见问题 ### Q: 如何处理API限制? A: GitHub API有每小时60次调用的限制(未认证)。建议使用token进行认证,可获得每小时5000次调用。 ### Q: 可以备份私有仓库吗? A: 需要创建具有`repo`权限的token,并在脚本中指定。 ### Q: 数据多久更新一次? A: 建议每周运行一次备份脚本,或使用GitHub Actions实现自动备份。 ## 🔗 相关链接 - [GitHub API文档](https://docs.github.com/en/rest) - [Vue.js官方文档](https://vuejs.org/) - [Ant Design Vue](https://antdv.com/) - [Vite官方文档](https://vitejs.dev/) --- ⭐ 如果这个项目对您有帮助,请给它一个Star!