@@ -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