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"
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。