correct download function

This commit is contained in:
Fioren
2024-03-13 12:18:07 +07:00
committed by GitHub
parent 2e54dbeff4
commit a13aaefd2b

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
mkdir ./release mkdir ./release ./download
################################################# #################################################
@@ -106,20 +106,14 @@ get_ver() {
# Download apks files from APKMirror: # Download apks files from APKMirror:
_req() { _req() {
if [ "$2" = - ]; then if [ "$2" = "-" ]; then
wget -nv -O "$2" --header="$3" "$1" wget -nv -O "$2" --header="$3" "$1" || rm -f "$2"
else else
local dlp wget -nv -O "./download/$2" --header="$3" "$1" || rm -f "./download/$2"
dlp="$(dirname "$2")/$(basename "$2")" fi
if [ -f "$dlp" ]; then
while [ -f "$dlp" ]; do sleep 1; done
return
fi
wget -nv -O "$dlp" --header="$3" "$1" || return 1
fi
} }
req() { req() {
_req "$1" "$2" "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/119.0" _req "$1" "$2" "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/119.0"
} }
dl_apk() { dl_apk() {
@@ -132,7 +126,6 @@ dl_apk() {
sleep 5 sleep 5
req "$url" "$output" req "$url" "$output"
} }
get_apk() { get_apk() {
if [[ -z $4 ]]; then if [[ -z $4 ]]; then
url_regexp='APK</span>[^@]*@\([^#]*\)' url_regexp='APK</span>[^@]*@\([^#]*\)'
@@ -146,24 +139,35 @@ get_apk() {
esac esac
fi fi
export version="$version" export version="$version"
if [[ -z $version ]]; then local attempt=0
local list_vers v versions=() while [ $attempt -lt 10 ]; do
list_vers=$(req "https://www.apkmirror.com/uploads/?appcategory=$2" -) if [[ -z $version ]] || [ $attempt -ne 0 ]; then
version=$(sed -n 's;.*Version:</span><span class="infoSlide-value">\(.*\) </span>.*;\1;p' <<<"$list_vers") local list_vers v versions=()
version=$(grep -iv "\(beta\|alpha\)" <<<"$version") list_vers=$(req "https://www.apkmirror.com/uploads/?appcategory=$2" -)
for v in $version; do version=$(sed -n 's;.*Version:</span><span class="infoSlide-value">\(.*\) </span>.*;\1;p' <<<"$list_vers")
grep -iq "${v} \(beta\|alpha\)" <<<"$list_vers" || versions+=("$v") version=$(grep -iv "\(beta\|alpha\)" <<<"$version")
done for v in $version; do
version=$(head -1 <<<"$versions") grep -iq "${v} \(beta\|alpha\)" <<<"$list_vers" || versions+=("$v")
fi done
green_log "[+] Downloading $2 version: $version $4 $5 $6" version=$(echo -e "$version" | sed -n "$((attempt + 1))p")
local base_apk="$1.apk" fi
local dl_url=$(dl_apk "https://www.apkmirror.com/apk/$3-${version//./-}-release/" \ green_log "[+] Downloading $2 version: $version $4 $5 $6"
"$url_regexp" \ local base_apk="$1.apk"
"$base_apk") local dl_url=$(dl_apk "https://www.apkmirror.com/apk/$3-${version//./-}-release/" \
if [ -z "$1.apk" ]; then "$url_regexp" \
red_log "[-] Failed to download $1" "$base_apk")
exit 1 if [[ -f "./download/$1.apk" ]]; then
green_log "[+] Successfully downloaded $1"
break
else
((attempt++))
red_log "[-] Failed to download $1, trying another version"
unset version list_vers v versions
fi
done
if [ $attempt -eq 10 ]; then
red_log "[-] No more versions to try. Failed download"
return 1
fi fi
} }
@@ -172,7 +176,7 @@ get_apk() {
# Patching apps with Revanced CLI: # Patching apps with Revanced CLI:
patch() { patch() {
green_log "[+] Patching $1:" green_log "[+] Patching $1:"
if [ -f "$1.apk" ]; then if [ -f "./download/$1.apk" ]; then
local p b m ks a pu local p b m ks a pu
if [ "$3" = inotia ]; then if [ "$3" = inotia ]; then
p="patch " b="--patch-bundle" m="--merge" a="" ks="_ks" p="patch " b="--patch-bundle" m="--merge" a="" ks="_ks"
@@ -201,7 +205,7 @@ patch() {
--out=./release/$1-$2.apk \ --out=./release/$1-$2.apk \
--keystore=./src/$ks.keystore \ --keystore=./src/$ks.keystore \
$pu \ $pu \
$a$1.apk ./download/$a$1.apk
unset version unset version
unset excludePatches unset excludePatches
unset includePatches unset includePatches
@@ -223,7 +227,7 @@ gen_rip_libs() {
} }
split_arch() { split_arch() {
green_log "[+] Splitting $1 to ${archs[i]}:" green_log "[+] Splitting $1 to ${archs[i]}:"
if [ -f "$1.apk" ]; then if [ -f "./download/$1.apk" ]; then
eval java -jar revanced-cli*.jar patch \ eval java -jar revanced-cli*.jar patch \
--patch-bundle revanced-patches*.jar \ --patch-bundle revanced-patches*.jar \
--merge revanced-integrations*.apk\ --merge revanced-integrations*.apk\
@@ -235,7 +239,7 @@ split_arch() {
--options=./src/options/$2.json \ --options=./src/options/$2.json \
--keystore=./src/_ks.keystore \ --keystore=./src/_ks.keystore \
--out=./release/$2.apk\ --out=./release/$2.apk\
$1.apk ./download/$1.apk
else else
red_log "[-] Not found $1.apk" red_log "[-] Not found $1.apk"
exit 1 exit 1