UpdateFetch 能根據使用者的設定,每日檢查 GitHub、F-Droid 等平台的軟體,若有更新則下載,並提供連結,方便在特殊網路環境中分享、下載軟體,配合 UpdateFetchWeb 更方便使用。可以前往演示網頁體驗: UpdateFetch Web (vfly2.com)
專案地址: AhFeil/UpdateFetch: 定期檢查和下載軟體的最新版,方便在特殊網路環境中分享、下載軟體 (github.com)
創建這個專案的需求動力是在「長城防火牆」下,國內機子想裝個 serverstatus 探針都要梯子,雖然可以手動上傳,但是不方便寫腳本。後來又發現這個專案還方便給其他人分享 GitHub 上的好用 APP 等,他們也方便自行更新軟體,於是又寫了 UpdateFetchWeb 作為前端。
功能#
- 方便在國內直接下載軟體,如 xray、serverstatus-rust ,不用每次都加代理
- 方便給一般使用者分享軟體,以及方便他們更新,如 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#
UpdateFetch 只是用於下載,沒有使用者能交互的介面,而 UpdateFetchWeb 是在網頁上展示它下載的內容,方便使用。演示網頁: UpdateFetch Web (vfly2.com)
添加前端網頁需要額外幾步
- 安裝 UpdateFetchWeb,並添加使用者、分類和 token
- 在 UpdateFetch 的配置檔將上一步的 token 和網址填入
- 執行 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"