feat: Additional download mirrors

This commit is contained in:
Kroese 2024-11-24 21:37:51 +01:00 committed by GitHub
parent 216107fac1
commit 6df6fe037f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -441,146 +441,175 @@ getMG() {
local user_agent="" local user_agent=""
user_agent=$(get_agent) user_agent=$(get_agent)
language=$(getLanguage "$lang" "name") language=$(getLanguage "$lang" "desc")
culture=$(getLanguage "$lang" "culture") culture=$(getLanguage "$lang" "culture")
local msg="Requesting download link from massgrave.dev..." local msg="Requesting download link from massgrave.dev..."
info "$msg" && html "$msg" info "$msg" && html "$msg"
local pattern="" local pattern=""
local platform="x64"
local locale="${culture,,}" local locale="${culture,,}"
local platform="${PLATFORM,,}"
local url="https://massgrave.dev/" local url="https://massgrave.dev/"
case "${version,,}" in if [[ "${PLATFORM,,}" != "arm64" ]]; then
"win11${PLATFORM,,}" )
url+="windows_11_links" case "${version,,}" in
pattern="consumer" "win11${PLATFORM,,}" )
;; url+="windows_11_links"
"win11${PLATFORM,,}-enterprise" | "win11${PLATFORM,,}-enterprise-eval" ) pattern="consumer"
url+="windows_11_links" ;;
pattern="business" "win11${PLATFORM,,}-enterprise" | "win11${PLATFORM,,}-enterprise-eval" )
;; url+="windows_11_links"
"win11${PLATFORM,,}-ltsc" | "win11${PLATFORM,,}-enterprise-ltsc-eval" ) pattern="business"
url+="windows_ltsc_links" ;;
pattern="11_enterprise_ltsc" "win11${PLATFORM,,}-ltsc" | "win11${PLATFORM,,}-enterprise-ltsc-eval" )
;; url+="windows_ltsc_links"
"win11${PLATFORM,,}-iot" | "win11${PLATFORM,,}-enterprise-iot-eval" ) pattern="11_enterprise_ltsc"
url+="windows_ltsc_links" ;;
pattern="11_iot" "win11${PLATFORM,,}-iot" | "win11${PLATFORM,,}-enterprise-iot-eval" )
;; url+="windows_ltsc_links"
"win10${PLATFORM,,}" ) pattern="11_iot"
url+="windows_10_links" ;;
pattern="consumer" "win10${PLATFORM,,}" )
;; url+="windows_10_links"
"win10${PLATFORM,,}-enterprise" | "win10${PLATFORM,,}-enterprise-eval" ) pattern="consumer"
url+="windows_10_links" ;;
pattern="business" "win10${PLATFORM,,}-enterprise" | "win10${PLATFORM,,}-enterprise-eval" )
;; url+="windows_10_links"
"win10${PLATFORM,,}-ltsc" | "win10${PLATFORM,,}-enterprise-ltsc-eval" ) pattern="business"
url+="windows_ltsc_links" ;;
pattern="10_enterprise_ltsc" "win10${PLATFORM,,}-ltsc" | "win10${PLATFORM,,}-enterprise-ltsc-eval" )
;; url+="windows_ltsc_links"
"win10${PLATFORM,,}-iot" | "win10${PLATFORM,,}-enterprise-iot-eval" ) pattern="10_enterprise_ltsc"
url+="windows_ltsc_links" ;;
pattern="10_iot" "win10${PLATFORM,,}-iot" | "win10${PLATFORM,,}-enterprise-iot-eval" )
;; url+="windows_ltsc_links"
"win81${PLATFORM,,}-enterprise" | "win81${PLATFORM,,}-enterprise-eval" ) pattern="10_iot"
url+="windows_8.1_links" ;;
pattern="8.1_enterprise" "win81${PLATFORM,,}-enterprise" | "win81${PLATFORM,,}-enterprise-eval" )
locale=$(getLanguage "$lang" "code") url+="windows_8.1_links"
[[ "$locale" == "sr" ]] && locale="sr-latn" pattern="8.1_enterprise"
;; locale=$(getLanguage "$lang" "code")
"win2025" | "win2025-eval" ) [[ "$locale" == "sr" ]] && locale="sr-latn"
url+="windows_server_links" ;;
pattern="server_2025" "win2025" | "win2025-eval" )
;; url+="windows_server_links"
"win2022" | "win2022-eval" ) pattern="server_2025"
url+="windows_server_links" ;;
pattern="server_2022" "win2022" | "win2022-eval" )
;; url+="windows_server_links"
"win2019" | "win2019-eval" ) pattern="server_2022"
url+="windows_server_links" ;;
pattern="server_2019" "win2019" | "win2019-eval" )
;; url+="windows_server_links"
"win2016" | "win2016-eval" ) pattern="server_2019"
url+="windows_server_links" ;;
pattern="server_2016" "win2016" | "win2016-eval" )
locale=$(getLanguage "$lang" "code") url+="windows_server_links"
[[ "$locale" == "hk" ]] && locale="ct" pattern="server_2016"
[[ "$locale" == "tw" ]] && locale="ct" locale=$(getLanguage "$lang" "code")
;; [[ "$locale" == "hk" ]] && locale="ct"
"win2012r2" | "win2012r2-eval" ) [[ "$locale" == "tw" ]] && locale="ct"
url+="windows_server_links" ;;
pattern="server_2012_r2" "win2012r2" | "win2012r2-eval" )
locale=$(getLanguage "$lang" "code") url+="windows_server_links"
;; pattern="server_2012_r2"
"win2008r2" | "win2008r2-eval" ) locale=$(getLanguage "$lang" "code")
url+="windows_server_links" ;;
pattern="server_2008_r2" "win2008r2" | "win2008r2-eval" )
locale=$(getLanguage "$lang" "code") url+="windows_server_links"
;; pattern="server_2008_r2"
"win7x64" | "win7x64-enterprise" ) locale=$(getLanguage "$lang" "code")
url+="windows_7_links" ;;
pattern="enterprise" "win7x64" | "win7x64-enterprise" )
locale=$(getLanguage "$lang" "code") url+="windows_7_links"
;; pattern="enterprise"
"win7x64-ultimate" ) locale=$(getLanguage "$lang" "code")
url+="windows_7_links" ;;
pattern="ultimate" "win7x64-ultimate" )
locale=$(getLanguage "$lang" "code") url+="windows_7_links"
;; pattern="ultimate"
"win7x86" | "win7x86-enterprise" ) locale=$(getLanguage "$lang" "code")
platform="x86" ;;
url+="windows_7_links" "win7x86" | "win7x86-enterprise" )
pattern="enterprise" platform="x86"
locale=$(getLanguage "$lang" "code") url+="windows_7_links"
;; pattern="enterprise"
"win7x86-ultimate" ) locale=$(getLanguage "$lang" "code")
platform="x86" ;;
url+="windows_7_links" "win7x86-ultimate" )
pattern="ultimate" platform="x86"
locale=$(getLanguage "$lang" "code") url+="windows_7_links"
;; pattern="ultimate"
"winvistax64" | "winvistax64-enterprise" ) locale=$(getLanguage "$lang" "code")
url+="windows_vista_links" ;;
pattern="enterprise" "winvistax64" | "winvistax64-enterprise" )
locale=$(getLanguage "$lang" "code") url+="windows_vista_links"
;; pattern="enterprise"
"winvistax64-ultimate" ) locale=$(getLanguage "$lang" "code")
url+="windows_vista_links" ;;
pattern="sp2" "winvistax64-ultimate" )
locale=$(getLanguage "$lang" "code") url+="windows_vista_links"
;; pattern="sp2"
"winvistax86" | "winvistax86-enterprise" ) locale=$(getLanguage "$lang" "code")
platform="x86" ;;
url+="windows_vista_links" "winvistax86" | "winvistax86-enterprise" )
pattern="enterprise" platform="x86"
locale=$(getLanguage "$lang" "code") url+="windows_vista_links"
;; pattern="enterprise"
"winvistax86-ultimate" ) locale=$(getLanguage "$lang" "code")
platform="x86" ;;
url+="windows_vista_links" "winvistax86-ultimate" )
pattern="sp2" platform="x86"
locale=$(getLanguage "$lang" "code") url+="windows_vista_links"
;; pattern="sp2"
"winxpx86" ) locale=$(getLanguage "$lang" "code")
platform="x86" ;;
url+="windows_xp_links" "winxpx86" )
pattern="xp" platform="x86"
locale=$(getLanguage "$lang" "code") url+="windows_xp_links"
[[ "$locale" == "pt" ]] && locale="pt-br" pattern="xp"
[[ "$locale" == "pp" ]] && locale="pt-pt" locale=$(getLanguage "$lang" "code")
[[ "$locale" == "cn" ]] && locale="zh-hans" [[ "$locale" == "pt" ]] && locale="pt-br"
[[ "$locale" == "hk" ]] && locale="zh-hk" [[ "$locale" == "pp" ]] && locale="pt-pt"
[[ "$locale" == "tw" ]] && locale="zh-tw" [[ "$locale" == "cn" ]] && locale="zh-hans"
;; [[ "$locale" == "hk" ]] && locale="zh-hk"
"winxpx64" ) [[ "$locale" == "tw" ]] && locale="zh-tw"
url+="windows_xp_links" ;;
pattern="xp" "winxpx64" )
locale=$(getLanguage "$lang" "code") url+="windows_xp_links"
;; pattern="xp"
esac locale=$(getLanguage "$lang" "code")
;;
esac
else
case "${version,,}" in
"win11${PLATFORM,,}" | "win11${PLATFORM,,}-enterprise" | "win11${PLATFORM,,}-enterprise-eval" )
url+="windows_arm_links"
pattern="11_business"
;;
"win11${PLATFORM,,}-ltsc" | "win11${PLATFORM,,}-enterprise-ltsc-eval" )
url+="windows_arm_links"
pattern="11_iot_enterprise_ltsc"
;;
"win10${PLATFORM,,}" | "win10${PLATFORM,,}-enterprise" | "win10${PLATFORM,,}-enterprise-eval" )
url+="windows_arm_links"
pattern="Pro_10"
locale="$language"
[[ "$locale" == "Chinese" ]] && locale="ChnSimp"
[[ "$locale" == "Chinese HK" ]] && locale="ChnTrad"
[[ "$locale" == "Chinese TW" ]] && locale="ChnTrad"
;;
"win10${PLATFORM,,}-ltsc" | "win10${PLATFORM,,}-enterprise-ltsc-eval" )
url+="windows_arm_links"
pattern="10_iot_enterprise_ltsc"
;;
esac
fi
local body="" local body=""
@ -591,10 +620,10 @@ getMG() {
} }
local list="" local list=""
list=$(echo "$body" | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" | grep '\.iso$') list=$(echo "$body" | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" | grep -i '\.iso$')
local result="" local result=""
result=$(echo "$list" | grep "${platform}" | grep "${pattern}" | grep -m 1 "${locale,,}_") result=$(echo "$list" | grep -i "${platform}" | grep "${pattern}" | grep -i -m 1 "${locale,,}_")
if [ -z "$result" ]; then if [ -z "$result" ]; then
if [[ "${lang,,}" != "en" ]] && [[ "${lang,,}" != "en-"* ]]; then if [[ "${lang,,}" != "en" ]] && [[ "${lang,,}" != "en-"* ]]; then