AhFei

AhFei

简洁的写作需要勇气

UpdateFetch - GitHub & F-Droid 软件版本更新定期检查与下载

UpdateFetch 能根据用户的设定,每日检查 GitHub、F-Droid 等平台的软件,若有更新则下载,并提供链接,方便在特殊网络环境中分享、下载软件,配合 UpdateFetchWeb 更方便使用。可以前往演示网页体验: UpdateFetch Web (vfly2.com)

项目地址: AhFeil/UpdateFetch: 定期检查和下载软件的最新版,方便在特殊网络环境中分享、下载软件 (github.com)

创建这个项目的需求动力是在 “长城防火墙” 下,国内机子想装个 serverstatus 探针都要梯子,虽然可以手动上传,但是不方便写脚本。后来又发现这个项目还方便给其他人分享 GitHub 上的好用 APP 等,他们也方便自行更新软件,于是又写了 UpdateFetchWeb 作为前端。

image

功能#

  1. 方便在国内直接下载软件,如 xray、serverstatus-rust ,不用每次都加代理
  2. 方便给一般用户分享软件,以及方便他们更新,如 Bitwarden 、Element

使用#

首先安装: 定期检查和下载软件的最新版 UpdateFetch 的安装步骤 - 技焉洲 (vfly2.com)

然后编写自己的下载项,这样程序每天执行就会检查、更新。

下载项配置文件#

为了方便管理,本项目会重命名下载后的文件,格式为: 软件名 - 系统 - 架构 - 版本。后缀名,每个部分用 - 连接,因此软件名不能带有 - ,会导致程序出错。


GitHub 网站 release 下载

本项目最初参考 Linux 下的自动下载最新版的 shell 脚本,因此 GitHub 下载器是模仿这种脚本思路来的

# 以 xray 为例
xray_binary:   # 下载项的名称,在上传时,会创建同名目录;以及在下载器会用到
  name: xray   # 软件名,用于重命名下载后的文件,推荐全小写,不能带有 - 
  website: github   # 用哪个下载器
  project_name: XTLS/Xray-core
  sample_url: https://github.com/XTLS/Xray-core/releases/download/${tag}/Xray-${system}-${ARCHITECTURE}${suffix_name}   # release 中的下载链接,${} 包裹的在下载时会被替换成实际值
  system:   # 软件要下载哪些系统的,左边是用于重命名的标准名称,右边的列表里,左项是 sample_url 中应该实际填写的,右边是对应的后缀名
    windows: [windows, .zip]
    linux: [linux, .zip]
  architecture:   # 软件要下载哪些架构的,左边是用于重命名的标准名称,右边是 sample_url 中应该实际填写的
    arm64: arm64-v8a
    amd64: '64'

# 最终,下载器会组合出 4 个下载链接,并下载,假设查到的最新版是 v1.8.7, 4 个网址分别是
# https://github.com/XTLS/Xray-core/releases/download/v1.8.7/Xray-windows-arm64-v8a.zip
# https://github.com/XTLS/Xray-core/releases/download/v1.8.7/Xray-windows-64.zip
# https://github.com/XTLS/Xray-core/releases/download/v1.8.7/Xray-linux-arm64-v8a.zip
# https://github.com/XTLS/Xray-core/releases/download/v1.8.7/Xray-linux-64.zip

FDroid 下载

SchildChat:
  name: schildchat
  website: fdroid
  project_name: de.spiritcroc.riotx   # 这个到软件在 FDroid 网站的页面,其网址最后一部分就是
  # 因为 FDroid 上都是 Android 平台的 APP,因此不必填写系统
  architecture:
    arm64: arm64-v8a

安装 UpdateFetchWeb#

项目地址: AhFeil/updatefetchWeb: 在网页上展示 UpdateFetch 下载的内容,方便使用。updatefetchWeb is the front-end of UpdateFetch. (github.com)

UpdateFetch 只是用于下载,没有用户能交互的界面,而 UpdateFetchWeb 是在网页上展示它下载的内容,方便使用。演示网页: UpdateFetch Web (vfly2.com)

添加前端网页需要额外几步

  1. 安装 UpdateFetchWeb,并添加用户、分类和 token
  2. 在 UpdateFetch 的配置文件将上一步的 token 和网址填入
  3. 运行 UpdateFetch,就可以将更新信息自动传到网页了

安装流程: updatefetchWeb 的安装步骤 - 技焉洲 (vfly2.com)


除此之外,UpdateFetchWeb 还有一个更实用的功能,以一定格式自动跳转到最新版的下载网址

比如要获取 xray 的 Windows 平台 AMD64 架构的文件,可以直接访问 http://ip:7699/xray-win-amd64 ,本程序会跳转到最新的网址

格式为: 软件名-系统 - 架构,软件名必须是第一个。系统和架构有别名,Windows 可以填 win 或 windows,具体查看 settings.py 中的设置。

配合 bash 脚本的示例:

url="http://updatefetch.vfly2.com/xray-linux-arm64"
# 获取最终的重定向URL
redirect_url=$(curl -Ls -o /dev/null -w %{url_effective} $url)
# 下载文件
curl -LO "$redirect_url"
加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。