name: SyncRawFile on: push: paths: - .gitea/workflows/sync_raw_file.yml # 仅在该文件被修改时触发 schedule: - cron: "0 * * * *" # 每小时执行一次 jobs: sync_files: runs-on: ubuntu-latest steps: - name: Clone Gitea repository uses: actions/checkout@v2 - name: Define file types and download run: | # 定义文件目录和平台类型列表 directories=("Lan" "Apple" "Steam" "SteamCN" "Xbox" "OpenAI" "Gemini" "Claude" "China" "Proxy") platform_types=("Surge" "Clash" "Loon" "QuantumultX" "Shadowrocket") # 平台类型和文件扩展名的映射(Surge -> list, Clash -> list, 等) declare -A type_mapping type_mapping=(["Surge"]="list" ["Clash"]="list" ["Loon"]="list" ["QuantumultX"]="list" ["Shadowrocket"]="list") # 循环下载文件并根据平台类型和目录动态创建保存路径 for i in ${!directories[@]}; do directory=${directories[$i]} platform_type=${platform_types[$i]} # 使用平台类型变量 filetype=${type_mapping[$platform_type]} # 获取文件类型(list) # 构建文件 URL url="https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/${platform_type}/${directory}/${directory}.${filetype}" # 动态生成保存目录路径,基于平台类型和文件目录 save_dir="./${platform_type}/${directory}" # 创建目录(如果不存在的话) mkdir -p "$save_dir" # 输出下载信息 echo "Downloading $url to $save_dir/${directory}.${filetype}" # 使用 curl 下载文件并保存到动态路径 curl -o "$save_dir/${directory}.${filetype}" "$url" done - name: Commit and push changes to Gitea run: | git config --global user.name "yuanzhen869" git config --global user.email "yuanzhen869@gmail.com" git add . # 添加所有更改的文件 git commit -m "Sync files from GitHub raw" || echo "No changes to commit" git push origin main