mirror of
https://github.com/dockur/windows.git
synced 2025-10-30 04:35:49 +00:00
Update mido.sh
This commit is contained in:
parent
7b34e4fba2
commit
390263a13d
1 changed files with 63 additions and 52 deletions
113
src/mido.sh
113
src/mido.sh
|
|
@ -52,6 +52,42 @@ getLanguage() {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getCulture() {
|
||||||
|
|
||||||
|
local code="$1"
|
||||||
|
local culture=""
|
||||||
|
|
||||||
|
case "${code,,}" in
|
||||||
|
"zh-hk" | "zh-mo" | "zh-hant" | "zh-tw" )
|
||||||
|
culture="zh-tw"
|
||||||
|
"zh" | "zh-"* )
|
||||||
|
culture="zh-cn"
|
||||||
|
"en-gb" | "en-uk" )
|
||||||
|
culture="en-gb"
|
||||||
|
"en" | "en-"* )
|
||||||
|
culture="en-us"
|
||||||
|
"fr" | "fr-"* )
|
||||||
|
culture="fr-fr"
|
||||||
|
"de" | "de-"* )
|
||||||
|
culture="de-de"
|
||||||
|
"it" | "it-"* )
|
||||||
|
culture="it-it"
|
||||||
|
"ja" | "ja-"* )
|
||||||
|
culture="ja-jp"
|
||||||
|
"ko" | "ko-"* )
|
||||||
|
culture="ko-kr"
|
||||||
|
"pt" | "pt-"* )
|
||||||
|
culture="pt-br"
|
||||||
|
"ru" | "ru-"* )
|
||||||
|
culture="ru-ru"
|
||||||
|
"es" | "es-"* )
|
||||||
|
culture="es-es"
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "$culture"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
handle_curl_error() {
|
handle_curl_error() {
|
||||||
|
|
||||||
local error_code="$1"
|
local error_code="$1"
|
||||||
|
|
@ -94,8 +130,9 @@ handle_curl_error() {
|
||||||
download_windows() {
|
download_windows() {
|
||||||
|
|
||||||
local id="$1"
|
local id="$1"
|
||||||
local language="$2"
|
local lang="$2"
|
||||||
local sku_id=""
|
local sku_id=""
|
||||||
|
local language=""
|
||||||
local session_id=""
|
local session_id=""
|
||||||
local browser_version=""
|
local browser_version=""
|
||||||
local windows_version=""
|
local windows_version=""
|
||||||
|
|
@ -112,6 +149,14 @@ download_windows() {
|
||||||
* ) error "Invalid VERSION specified, value \"$id\" is not recognized!" && return 1 ;;
|
* ) error "Invalid VERSION specified, value \"$id\" is not recognized!" && return 1 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
[ -z "$lang" ] && lang="en-US"
|
||||||
|
language=$(getLanguage "$lang")
|
||||||
|
|
||||||
|
if [ -z "$language" ]; then
|
||||||
|
error "Language $lang is not supported for this download method!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
local url="https://www.microsoft.com/en-us/software-download/windows$windows_version"
|
local url="https://www.microsoft.com/en-us/software-download/windows$windows_version"
|
||||||
case "$windows_version" in
|
case "$windows_version" in
|
||||||
8 | 10) url="${url}ISO";;
|
8 | 10) url="${url}ISO";;
|
||||||
|
|
@ -163,10 +208,6 @@ download_windows() {
|
||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
[ -z "$language" ] && language="en-US"
|
|
||||||
language=$(getLanguage "$language")
|
|
||||||
[ -z "$language" ] && language="English (United States)"
|
|
||||||
|
|
||||||
# Limit untrusted size for input validation
|
# Limit untrusted size for input validation
|
||||||
language_skuid_table_html="$(echo "$language_skuid_table_html" | head -c 10240)"
|
language_skuid_table_html="$(echo "$language_skuid_table_html" | head -c 10240)"
|
||||||
|
|
||||||
|
|
@ -174,7 +215,7 @@ download_windows() {
|
||||||
sku_id="$(echo "$language_skuid_table_html" | grep "${language}" | sed 's/"//g' | cut -d ',' -f 1 | cut -d ':' -f 2 | tr -cd '[:alnum:]-' | head -c 16)"
|
sku_id="$(echo "$language_skuid_table_html" | grep "${language}" | sed 's/"//g' | cut -d ',' -f 1 | cut -d ':' -f 2 | tr -cd '[:alnum:]-' | head -c 16)"
|
||||||
|
|
||||||
if [ -z "$sku_id" ]; then
|
if [ -z "$sku_id" ]; then
|
||||||
error "Invalid language: $language"
|
error "Download for language $language not found!"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -215,9 +256,10 @@ download_windows() {
|
||||||
download_windows_eval() {
|
download_windows_eval() {
|
||||||
|
|
||||||
local id="$1"
|
local id="$1"
|
||||||
local language="$2"
|
local lang="$2"
|
||||||
local windows_version=""
|
local windows_version=""
|
||||||
local enterprise_type=""
|
local enterprise_type=""
|
||||||
|
local country culture
|
||||||
|
|
||||||
case "${id,,}" in
|
case "${id,,}" in
|
||||||
"win11${PLATFORM,,}-enterprise-eval" )
|
"win11${PLATFORM,,}-enterprise-eval" )
|
||||||
|
|
@ -252,6 +294,17 @@ download_windows_eval() {
|
||||||
error "Invalid VERSION specified, value \"$id\" is not recognized!" && return 1 ;;
|
error "Invalid VERSION specified, value \"$id\" is not recognized!" && return 1 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
[ -z "$lang" ] && lang="en-US"
|
||||||
|
culture=$(getCulture "$lang")
|
||||||
|
|
||||||
|
if [ -z "$culture" ]; then
|
||||||
|
error "Language $lang is not supported for this download method!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
country="${culture#*-}"
|
||||||
|
country="${country^^}"
|
||||||
|
|
||||||
local iso_download_page_html=""
|
local iso_download_page_html=""
|
||||||
local url="https://www.microsoft.com/en-us/evalcenter/download-$windows_version"
|
local url="https://www.microsoft.com/en-us/evalcenter/download-$windows_version"
|
||||||
|
|
||||||
|
|
@ -267,49 +320,10 @@ download_windows_eval() {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local COUNTRY="US"
|
|
||||||
local CULTURE="en-us"
|
|
||||||
|
|
||||||
case "$language" in
|
|
||||||
"English (Great Britain)" )
|
|
||||||
CULTURE="en-gb"
|
|
||||||
COUNTRY="GB";;
|
|
||||||
"Chinese (Simplified)" )
|
|
||||||
CULTURE="zh-cn"
|
|
||||||
COUNTRY="CN";;
|
|
||||||
"Chinese (Traditional)" )
|
|
||||||
CULTURE="zh-tw"
|
|
||||||
COUNTRY="TW";;
|
|
||||||
"French" )
|
|
||||||
CULTURE="fr-fr"
|
|
||||||
COUNTRY="FR";;
|
|
||||||
"German" )
|
|
||||||
CULTURE="de-de"
|
|
||||||
COUNTRY="DE";;
|
|
||||||
"Italian" )
|
|
||||||
CULTURE="it-it"
|
|
||||||
COUNTRY="IT";;
|
|
||||||
"Japanese" )
|
|
||||||
CULTURE="ja-jp"
|
|
||||||
COUNTRY="JP";;
|
|
||||||
"Korean" )
|
|
||||||
CULTURE="ko-kr"
|
|
||||||
COUNTRY="KR";;
|
|
||||||
"Portuguese (Brazil)" )
|
|
||||||
CULTURE="pt-br"
|
|
||||||
COUNTRY="BR";;
|
|
||||||
"Spanish" )
|
|
||||||
CULTURE="es-es"
|
|
||||||
COUNTRY="ES";;
|
|
||||||
"Russian" )
|
|
||||||
CULTURE="ru-ru"
|
|
||||||
COUNTRY="RU";;
|
|
||||||
esac
|
|
||||||
|
|
||||||
[[ "$DEBUG" == [Yy1]* ]] && echo " - Getting download link.."
|
[[ "$DEBUG" == [Yy1]* ]] && echo " - Getting download link.."
|
||||||
iso_download_links="$(echo "$iso_download_page_html" | grep -o "https://go.microsoft.com/fwlink/p/?LinkID=[0-9]\+&clcid=0x[0-9a-z]\+&culture=${CULTURE}&country=${COUNTRY}")" || {
|
iso_download_links="$(echo "$iso_download_page_html" | grep -o "https://go.microsoft.com/fwlink/p/?LinkID=[0-9]\+&clcid=0x[0-9a-z]\+&culture=${culture}&country=${country}")" || {
|
||||||
# This should only happen if there's been some change to the download endpoint web address
|
# This should only happen if there's been some change to the download endpoint web address
|
||||||
error "Windows server download page gave us no download link"
|
error "Windows server download page gave us no download link (language: $language)"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -333,9 +347,6 @@ download_windows_eval() {
|
||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
# Limit untrusted size for input validation
|
|
||||||
iso_download_link="$(echo "$iso_download_link" | head -c 1024)"
|
|
||||||
|
|
||||||
MIDO_URL="$iso_download_link"
|
MIDO_URL="$iso_download_link"
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue