|
|
@@ -215,7 +215,7 @@ _req() {
|
|
|
|
local ip="$1" op="$2"
|
|
|
|
local ip="$1" op="$2"
|
|
|
|
shift 2
|
|
|
|
shift 2
|
|
|
|
if [ "$op" = - ]; then
|
|
|
|
if [ "$op" = - ]; then
|
|
|
|
if ! curl -L -c "$TEMP_DIR/cookie.txt" -b "$TEMP_DIR/cookie.txt" --connect-timeout 5 --retry 0 --fail -s -S "$@" "$ip"; then
|
|
|
|
if ! curl -L -c "$TEMP_DIR/cookie.txt" -b "$TEMP_DIR/cookie.txt" --connect-timeout 10 --retry 3 --retry-delay 2 --fail -s -S "$@" "$ip"; then
|
|
|
|
epr "Request failed: $ip"
|
|
|
|
epr "Request failed: $ip"
|
|
|
|
return 1
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
@@ -227,14 +227,19 @@ _req() {
|
|
|
|
while [ -f "$dlp" ]; do sleep 1; done
|
|
|
|
while [ -f "$dlp" ]; do sleep 1; done
|
|
|
|
return
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if ! curl -L -c "$TEMP_DIR/cookie.txt" -b "$TEMP_DIR/cookie.txt" --connect-timeout 5 --retry 0 --fail -s -S "$@" "$ip" -o "$dlp"; then
|
|
|
|
if ! curl -L -c "$TEMP_DIR/cookie.txt" -b "$TEMP_DIR/cookie.txt" --connect-timeout 10 --retry 3 --retry-delay 2 --fail -s -S "$@" "$ip" -o "$dlp"; then
|
|
|
|
epr "Request failed: $ip"
|
|
|
|
epr "Request failed: $ip"
|
|
|
|
return 1
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
mv -f "$dlp" "$op"
|
|
|
|
mv -f "$dlp" "$op"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
}
|
|
|
|
req() { _req "$1" "$2" -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:108.0) Gecko/20100101 Firefox/108.0"; }
|
|
|
|
req() {
|
|
|
|
|
|
|
|
_req "$1" "$2" \
|
|
|
|
|
|
|
|
-H "User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0" \
|
|
|
|
|
|
|
|
-H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8" \
|
|
|
|
|
|
|
|
-H "Accept-Language: en-US,en;q=0.5"
|
|
|
|
|
|
|
|
}
|
|
|
|
gh_req() { _req "$1" "$2" -H "$GH_HEADER"; }
|
|
|
|
gh_req() { _req "$1" "$2" -H "$GH_HEADER"; }
|
|
|
|
gh_dl() {
|
|
|
|
gh_dl() {
|
|
|
|
if [ ! -f "$1" ]; then
|
|
|
|
if [ ! -f "$1" ]; then
|
|
|
@@ -275,16 +280,36 @@ get_patch_last_supported_ver() {
|
|
|
|
return
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if ! op=$(java -jar "$rv_cli_jar" list-versions "$rv_patches_jar" -f "$pkg_name" 2>&1 | tail -n +3 | awk '{$1=$1}1'); then
|
|
|
|
op=$(patches_list_versions "$rv_cli_jar" "$rv_patches_jar" "$pkg_name") || return 1
|
|
|
|
epr "list-versions: '$op'"
|
|
|
|
op=$(tail -n +3 <<<"$op" | awk '{$1=$1}1')
|
|
|
|
return 1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$op" = "Any" ]; then return; fi
|
|
|
|
if [ "$op" = "Any" ]; then return; fi
|
|
|
|
pcount=$(head -1 <<<"$op") pcount=${pcount#*(} pcount=${pcount% *}
|
|
|
|
pcount=$(head -1 <<<"$op") pcount=${pcount#*(} pcount=${pcount% *}
|
|
|
|
if [ -z "$pcount" ]; then abort "unreachable: '$pcount'"; fi
|
|
|
|
if [ -z "$pcount" ]; then abort "No patches found for '$pkg_name' in patches '$rv_patches_jar'"; fi
|
|
|
|
grep -F "($pcount patch" <<<"$op" | sed 's/ (.* patch.*//' | get_highest_ver || return 1
|
|
|
|
grep -F "($pcount patch" <<<"$op" | sed 's/ (.* patch.*//' | get_highest_ver || return 1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
patches_list_versions() {
|
|
|
|
|
|
|
|
local cli_jar=$1 patches_jar=$2 pkg_name=$3 op
|
|
|
|
|
|
|
|
if ! op=$(java -jar "$cli_jar" list-versions -p "$patches_jar" -f "$pkg_name" -b 2>&1); then
|
|
|
|
|
|
|
|
if ! op=$(java -jar "$cli_jar" list-versions "$patches_jar" -f "$pkg_name" 2>&1); then
|
|
|
|
|
|
|
|
epr "Could not list versions $cli_jar: '$op'"
|
|
|
|
|
|
|
|
return 1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$op"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
patches_list() {
|
|
|
|
|
|
|
|
local cli_jar=$1 patches_jar=$2 pkg_name=$3 op
|
|
|
|
|
|
|
|
if ! op=$(java -jar "$cli_jar" list-patches -p "$patches_jar" --filter-package-name "$pkg_name" --versions --packages -b 2>&1); then
|
|
|
|
|
|
|
|
if ! op=$(java -jar "$cli_jar" list-patches --patches "$patches_jar" -f "$pkg_name" --with-versions --with-packages 2>&1); then
|
|
|
|
|
|
|
|
epr "Could not get patches list $cli_jar: '$op'"
|
|
|
|
|
|
|
|
return 1
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$op"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
isoneof() {
|
|
|
|
isoneof() {
|
|
|
|
local i=$1 v
|
|
|
|
local i=$1 v
|
|
|
|
shift
|
|
|
|
shift
|
|
|
@@ -476,7 +501,7 @@ dl_archive() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
get_archive_resp() {
|
|
|
|
get_archive_resp() {
|
|
|
|
local r
|
|
|
|
local r
|
|
|
|
r=$(req "$1" -)
|
|
|
|
r=$(req "$1" -) || return 1
|
|
|
|
if [ -z "$r" ]; then return 1; else __ARCHIVE_RESP__=$(sed -n 's;^<a href="\(.*\)"[^"]*;\1;p' <<<"$r"); fi
|
|
|
|
if [ -z "$r" ]; then return 1; else __ARCHIVE_RESP__=$(sed -n 's;^<a href="\(.*\)"[^"]*;\1;p' <<<"$r"); fi
|
|
|
|
__ARCHIVE_PKG_NAME__=$(awk -F/ '{print $NF}' <<<"$1")
|
|
|
|
__ARCHIVE_PKG_NAME__=$(awk -F/ '{print $NF}' <<<"$1")
|
|
|
|
}
|
|
|
|
}
|
|
|
@@ -536,7 +561,7 @@ build_rv() {
|
|
|
|
local tried_dl=()
|
|
|
|
local tried_dl=()
|
|
|
|
for dl_p in archive apkmirror uptodown; do
|
|
|
|
for dl_p in archive apkmirror uptodown; do
|
|
|
|
if [ -z "${args[${dl_p}_dlurl]}" ]; then continue; fi
|
|
|
|
if [ -z "${args[${dl_p}_dlurl]}" ]; then continue; fi
|
|
|
|
if ! get_${dl_p}_resp "${args[${dl_p}_dlurl]}" || ! pkg_name=$(get_"${dl_p}"_pkg_name); then
|
|
|
|
if ! get_${dl_p}_resp "${args[${dl_p}_dlurl]}" || ! pkg_name=$(get_"${dl_p}"_pkg_name) || [ -z "$pkg_name" ]; then
|
|
|
|
args[${dl_p}_dlurl]=""
|
|
|
|
args[${dl_p}_dlurl]=""
|
|
|
|
epr "ERROR: Could not find ${table} in ${dl_p}"
|
|
|
|
epr "ERROR: Could not find ${table} in ${dl_p}"
|
|
|
|
continue
|
|
|
|
continue
|
|
|
@@ -550,7 +575,7 @@ build_rv() {
|
|
|
|
return 0
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
local list_patches
|
|
|
|
local list_patches
|
|
|
|
list_patches=$(java -jar "$rv_cli_jar" list-patches "$rv_patches_jar" -f "$pkg_name" -v -p 2>&1)
|
|
|
|
list_patches=$(patches_list "$rv_cli_jar" "$rv_patches_jar" "$pkg_name") || return 1
|
|
|
|
|
|
|
|
|
|
|
|
local get_latest_ver=false
|
|
|
|
local get_latest_ver=false
|
|
|
|
if [ "$version_mode" = auto ]; then
|
|
|
|
if [ "$version_mode" = auto ]; then
|
|
|
@@ -591,7 +616,7 @@ build_rv() {
|
|
|
|
for dl_p in archive apkmirror uptodown; do
|
|
|
|
for dl_p in archive apkmirror uptodown; do
|
|
|
|
if [ -z "${args[${dl_p}_dlurl]}" ]; then continue; fi
|
|
|
|
if [ -z "${args[${dl_p}_dlurl]}" ]; then continue; fi
|
|
|
|
pr "Downloading '${table}' from ${dl_p}"
|
|
|
|
pr "Downloading '${table}' from ${dl_p}"
|
|
|
|
if ! isoneof $dl_p "${tried_dl[@]}"; then get_${dl_p}_resp "${args[${dl_p}_dlurl]}"; fi
|
|
|
|
if ! isoneof $dl_p "${tried_dl[@]}"; then get_${dl_p}_resp "${args[${dl_p}_dlurl]}" || true; fi
|
|
|
|
if ! dl_${dl_p} "${args[${dl_p}_dlurl]}" "$version" "$stock_apk" "$arch" "${args[dpi]}" "$get_latest_ver"; then
|
|
|
|
if ! dl_${dl_p} "${args[${dl_p}_dlurl]}" "$version" "$stock_apk" "$arch" "${args[dpi]}" "$get_latest_ver"; then
|
|
|
|
epr "ERROR: Could not download '${table}' from ${dl_p} with version '${version}', arch '${arch}', dpi '${args[dpi]}'"
|
|
|
|
epr "ERROR: Could not download '${table}' from ${dl_p} with version '${version}', arch '${arch}', dpi '${args[dpi]}'"
|
|
|
|
continue
|
|
|
|
continue
|
|
|
|