• 欢迎访问爱玩之家
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏爱玩之家

[GitHub]TikTok 式 GitHub 开源项目发现信息流 —— 上滑刷仓库、为你推荐、一键收藏、全站热门榜

GitHub awzj 1个月前 (07-26) 53次浏览 已收录 0个评论

TikTok 式 GitHub 开源项目发现信息流 —— 上滑刷仓库、为你推荐、一键收藏、全站热门榜。

浏览使用地址:https://www.awzj.net/plugin/gitflow/

功能特性

  • 探索模式:按 Star 区间 + 语言随机发现优质仓库,告别算法茧房。
  • 为你推荐:读取你 Star 过的项目,找出同样 Star 了这些项目的人,按”共现”推荐相似仓库(并标注推荐理由)。
  • 搜索:顶部搜索框直接查 GitHub 仓库 / 关键词。
  • 多语言界面:整站中文 / 英文一键切换。
  • 仓库描述翻译:自动翻译成中文(Google 为主,MyMemory 兜底),可开关。
  • 一键收藏 + 全站热门榜:收藏后自动同步到服务端,所有人可见「N 人收藏」公共榜。
  • README 预览:卡片内直接渲染仓库 README。
  • 一键复制git clone 命令与分享链接。
  • 不感兴趣:屏蔽某仓库 / 作者,信息流不再推送。
  • 深浅主题:暗色极光默认,支持亮色主题并记忆偏好。
  • 部署无依赖:纯 PHP,无需 Composer / 数据库,收藏数据用带守卫的 PHP 文件存储。

技术栈

  • 前端:原生 HTML / CSS / JavaScript(无框架、无构建步骤)
  • 后端:PHP 8+(仅作 GitHub API 代理与密钥托管)
  • 存储:服务端 PHP 数据文件(data/store.php,零数据库)
  • 外部 API:GitHub REST API、Google 翻译(gtx 端点)、MyMemory 翻译

目录结构

gitflow/
├── index.php          主入口(PHP 版,前端 + 引导逻辑)
├── index.html         无 PHP 本地预览版(直连 GitHub,仅用于本地体验)
├── config.php         配置 / 密钥(已被禁止直接访问)
├── _common.php        共享逻辑(ghCall / 缓存 / 翻译)
├── .htaccess          根目录保护(Apache 专用)
├── api/
│   ├── auth.php       GitHub Token 登录(存入 session)
│   ├── collections.php 公共收藏读写 + 热门榜聚合
│   ├── github.php     GitHub API 代理(防 SSRF / 路径穿越)
│   ├── recommend.php  服务端 Star 共现推荐算法
│   └── translate.php  翻译代理(Google 为主 + MyMemory 兜底)
├── data/
│   ├── .htaccess      数据目录保护(Apache 专用)
│   └── index.php      防目录浏览(Apache / nginx 通用)
└── cache/             GitHub API 响应缓存(运行时自动生成,含 .htaccess)

部署

1. 上传

把整个 gitflow/ 目录上传到网站目录(例如子目录 /plugin/gitflow/)。目录名区分大小写,保持小写 gitflow

2. 配置(可选)

编辑 config.php

  • GH_APP_TOKEN:GitHub Token(建议只勾选 public_repo)。填了可提升匿名模式限流(默认仅 60 次/小时)。
  • MYMEMORY_KEY:MyMemory 翻译密钥(选填,可提升兜底翻译额度)。

两项留空程序也能跑,只是走的 GitHub 匿名限流。

3. 权限

  • data/ 与 cache/ 需 PHP 有写入权限(收藏与缓存会写入)。
  • 第一次运行会自动创建 data/store.php 与 cache/*.json

⚠️ Apache 部署

.htaccess 已写好,无需额外配置,直接可用。

⚠️ Nginx 部署(重要)

Nginx 不读 .htaccess。本项目已做代码级加固,无需依赖 .htaccess

  • data/store.php 带 GF_READ 守卫,网页直接访问返回 403,仅 collections.php 内部可读取。
  • data/index.php 防止目录浏览。

但你仍需确认 Nginx 已启用 PHP-FPM(否则 .php 会被当作文本下载或 404)。典型配置片段:

location ~ \.php$ {
    fastcgi_pass   unix:/run/php/php-fpm.sock;   # 按实际路径调整
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

确认方法:上传后访问 index.php,若页面空白 / 被下载 / 404,则是 PHP 未接线,需补上面的 location 规则。

安全说明

  • 推荐算法、GitHub Token、翻译密钥均托管在服务端,不会下发给前端
  • 前端 index.php 的 HTML/CSS/JS 本就需浏览器下载才能运行,这部分代码公开属正常。
  • 收藏数据(含 GitHub 登录名)存于受守卫的 data/store.php,Apache / nginx 下均不可直接访问。
  • 热门榜按「不同 GitHub 账号去重计数」防刷榜,但聚合结果对所有访客公开(即「公用」的设计本意)。

已知限制

  • Google gtx 翻译端点属于 ToS 灰色地带,已用 MyMemory 兜底;极端情况下翻译可能受限。
  • 匿名模式受 GitHub 公开 API 限流约束(建议填 GH_APP_TOKEN)。
  • 「为你推荐」需登录(GitHub Token),且依赖你已 Star 过一定数量的公开仓库。

本地预览(无需服务器)

  • 想快速看界面:直接用浏览器打开 index.html(直连 GitHub,收藏 / 热门榜等功能不可用)。

  • 完整功能本地预览:用 PHP 内置服务器

    php -S 127.0.0.1:8653 -t /path/to/gitflow
    # 浏览器访问 http://127.0.0.1:8653/index.php

爱玩之家 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[GitHub]TikTok 式 GitHub 开源项目发现信息流 —— 上滑刷仓库、为你推荐、一键收藏、全站热门榜
喜欢 (0)

您必须 登录 才能发表评论!