Skip to content

Commit 1081855

Browse files
authored
feat: Update download links (#996)
1 parent 57193b0 commit 1081855

File tree

1 file changed

+23
-11
lines changed

1 file changed

+23
-11
lines changed

src/mido.sh

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -613,7 +613,7 @@ getMG() {
613613

614614
local body=""
615615

616-
[[ "$DEBUG" == [Yy1]* ]] && echo "Parsing download page: ${url}"
616+
[[ "$DEBUG" == [Yy1]* ]] && echo "Parsing product page: ${url}"
617617
body=$(curl --silent --max-time 30 --user-agent "$user_agent" --location --max-filesize 1M --fail --proto =https --tlsv1.2 --http1.1 -- "$url") || {
618618
handle_curl_error "$?" "Massgrave"
619619
return $?
@@ -625,8 +625,9 @@ getMG() {
625625
local result=""
626626
result=$(echo "$list" | grep -i "${platform}" | grep "${pattern}" | grep -i -m 1 "${locale,,}_")
627627
result=$(echo "$result" | sed -r 's/.*href="([^"]+).*/\1/g')
628+
local page="$result"
628629

629-
if [ -z "$result" ]; then
630+
if [ -z "$page" ]; then
630631
if [[ "${lang,,}" != "en" ]] && [[ "${lang,,}" != "en-"* ]]; then
631632
error "No download in the $language language available for $desc!"
632633
else
@@ -635,22 +636,33 @@ getMG() {
635636
return 1
636637
fi
637638

638-
local domain="buzzheavier.com"
639+
[[ "$DEBUG" == [Yy1]* ]] && echo "Parsing download page: ${page}"
640+
result=$(curl --silent --max-time 30 --request GET --user-agent "$user_agent" --referer "$url" --head --proto =https --tlsv1.2 --http1.1 -- "$page") || {
641+
handle_curl_error "$?" "Massgrave"
642+
return $?
643+
}
639644

640-
if [[ "$result" = *"$domain"* ]]; then
641-
result=$(curl --silent --max-time 30 --request GET --user-agent "$user_agent" --referer "$result" --head --proto =https --tlsv1.2 --http1.1 -- "$result/download") || {
642-
handle_curl_error "$?" "$domain"
645+
if [[ "${result,,}" == *"content-type: text"* ]]; then
646+
body=$(curl --silent --max-time 30 --user-agent "$user_agent" --referer "$url" --location --max-filesize 1M --fail --proto =https --tlsv1.2 --http1.1 -- "$page") || {
647+
handle_curl_error "$?" "Massgrave"
643648
return $?
644649
}
645-
result=$(echo "$result" | grep -i -m 1 "hx-redirect:")
646-
if [ -z "$result" ]; then
647-
error "Failed to extract redirect location! Please report this at $SUPPORT/issues."
650+
651+
list=$(echo "$body" | xmllint --html --nonet --xpath "//a[contains(@href, '.iso')]" - 2>/dev/null)
652+
list=$(echo "$list" | sed -r 's/.*href="([^"]+).*/\1/g')
653+
page=$(echo "$list" | sed 's/&/\&/g;')
654+
655+
if [ -z "$page" ]; then
656+
if [[ "${lang,,}" != "en" ]] && [[ "${lang,,}" != "en-"* ]]; then
657+
error "No download in the $language language available for $desc!"
658+
else
659+
error "Failed to parse download link for $desc! Please report this at $SUPPORT/issues."
660+
fi
648661
return 1
649662
fi
650-
result="https://${domain}${result:13}"
651663
fi
652664

653-
MG_URL="$result"
665+
MG_URL="$page"
654666
return 0
655667
}
656668

0 commit comments

Comments
 (0)