V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
isa
V2EX  ›  分享创造

写了一个可以在线下载 Github 仓库子文件夹的用户脚本

  •  
  •   isa · 2020-09-26 01:48:50 +08:00 · 1458 次点击
    这是一个创建于 684 天前的主题,其中的信息可能已经有所发展或是发生改变。

    无需克隆 GitHub 仓库, 一键在线下载 Github 仓库子文件夹; 同时还能在源码详情页一键复制源码.

    脚本安装地址: download github repo sub-folder, 源码地址: github

    下载按钮 和 复制按钮无缝和 Github.com 集成, 示例效果如下:

    Download Github screenshot

    credits: 在线下载 Github 仓库的文件夹功能使用开源项目 downgit(源码) 实现

    使用说明

    安装脚本管理器

    Chrome 用户推荐安装浏览器扩展: Tampermonkey

    其他选择可参考: 安装一个用户脚本管理器

    安装本脚本

    脚本安装地址: download github repo sub-folder, 源码地址: github

    脚本管理器配置

    本脚本的下载 Github 单个文件的功能依赖脚本管理器的 GM_download 权限, 需遵循脚本管理器的安全策略, 如 Tampermonkey 官方所说:

    因安全原因所下载的文件后缀名必须添加至 Tampermonkey 的白名单中

    你可以按下述步骤来设置 Tampermonkey:

    1. 在 Chrome 中打开 Tampermonkey 的设置页面, 你可以直接复制 chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/options.html#nav=settings 在 Chrome 地址栏中打开
    2. General 设置组 将 Config mode 改为 Advanced
    3. 然后再滚动到页面底部, 找到 Downloads BETA, 将你需要下载的文件后缀追加至 Whitelisted File Extensions: 中:

      可以添加常用代码文件后缀 /\.(js|ts|jsx|tsx|json|java|go|cpp|c|swift|cmd|sh|md|markdown|rb)$/
      如果嫌麻烦, 也可以添加 /\..*$/ 来允许下载任意后缀文件, 需自行注意所下载文件的安全问题

    已知问题:

    downgit在线下载 github 文件夹时, 会调用 github api, 由于该网站调用 API 时没使用 Github Auth Token, 会有接口调用频次和权限限制:

    1. 不能下载私有仓库的内容
    2. 下载几个仓库文件夹后即会报错, 原因是超过 GitHub 匿名调用 API 的次数, 需等待一天

    若想突破上面限制, 可使用另一个服务 gitzip, 填入你的 GitHub Auth Token 后即可无限制下载了.

    2 条回复    2020-09-26 11:25:29 +08:00
    lxk11153
        1
    lxk11153  
       2020-09-26 02:10:48 +08:00
    [doge] 我也看到一个,是从这 /t/710179 递归到的 ↓
    https://i.otherhill.com/index.php/topic/show/271/2
    isa
        2
    isa  
    OP
       2020-09-26 11:25:29 +08:00
    @lxk11153 嗯, 就是用的 downgit. downgit 和 gitzip 用起来都不太便利, 后续有空会考虑把下载文件夹的功能直接集成到 userscript 中去
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3853 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 09:55 · PVG 17:55 · LAX 02:55 · JFK 05:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.