diff --git a/.gitea/workflows/sync_raw_file.yml b/.gitea/workflows/sync_raw_file.yml index 7fcdd1f..2207a96 100644 --- a/.gitea/workflows/sync_raw_file.yml +++ b/.gitea/workflows/sync_raw_file.yml @@ -46,17 +46,26 @@ jobs: # 循环遍历每个目录,下载对应平台下的文件 for directory in "${directories[@]}"; do - # 特殊处理 Clash 平台的文件名和 URL - if [ "$platform_type" = "Clash" ]; then - url="https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/${platform_type}/${directory}/${directory}_Classical.${filetype}" - output_file="${directory}_Classical.${filetype}" - else - url="https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/${platform_type}/${directory}/${directory}.${filetype}" - output_file="${directory}.${filetype}" - fi + # 输出的文件名始终不包含 _Classical + output_file="${directory}.${filetype}" - # 使用 curl 下载文件并保存到动态路径 - curl -o "$save_dir/$output_file" "$url" + # 如果是 Clash 平台,优先尝试带 _Classical 的 URL + if [ "$platform_type" = "Clash" ]; then + url_with_classical="https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/${platform_type}/${directory}/${directory}_Classical.${filetype}" + url_without_classical="https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/${platform_type}/${directory}/${directory}.${filetype}" + + # 先尝试带 _Classical 的 URL + if curl --fail --silent --output /dev/null "$url_with_classical"; then + curl -o "$save_dir/$output_file" "$url_with_classical" + else + # 如果带 _Classical 的 URL 失败,尝试不带 _Classical 的 URL + curl -o "$save_dir/$output_file" "$url_without_classical" + fi + else + # 其他平台直接使用不带 _Classical 的 URL + url="https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/${platform_type}/${directory}/${directory}.${filetype}" + curl -o "$save_dir/$output_file" "$url" + fi done done