diff --git a/CONFIG.md b/CONFIG.md
index bc77500..068e365 100755
--- a/CONFIG.md
+++ b/CONFIG.md
@@ -41,5 +41,5 @@ apkmonk-dlurl = "https://www.apkmonk.com/app/com.app.app/"
module-prop-name = "some-app-magisk" # magisk module prop name.
merge-integrations = false # set false to never merge even when needed. default: true
apkmirror-dpi = "360-480dpi" # used to select apk variant from apkmirror. default: nodpi
-apkmirror-arch = "arm64-v8a" # 'arm64-v8a', 'arm-v7a', 'universal', 'both'. 'both' downloads both arm64-v8a and arm-v7a. default: universal
+apkmirror-arch = "arm64-v8a" # 'arm64-v8a', 'arm-v7a', 'all', 'both'. 'both' downloads both arm64-v8a and arm-v7a. default: all
```
diff --git a/build.sh b/build.sh
index cdb6683..da5a9b6 100755
--- a/build.sh
+++ b/build.sh
@@ -146,8 +146,8 @@ for table_name in $(toml_get_table_names); do
app_args[dl_from]=archive
} || app_args[archive_dlurl]=""
if [ -z "${app_args[dl_from]:-}" ]; then abort "ERROR: no 'apkmirror_dlurl', 'uptodown_dlurl' or 'apkmonk_dlurl' option was set for '$table_name'."; fi
- app_args[arch]=$(toml_get "$t" apkmirror-arch) || app_args[arch]="universal"
- if [ "${app_args[arch]}" != "both" ] && [ "${app_args[arch]}" != "universal" ] && [[ "${app_args[arch]}" != "arm64-v8a"* ]] && [[ "${app_args[arch]}" != "arm-v7a"* ]]; then
+ app_args[arch]=$(toml_get "$t" apkmirror-arch) || app_args[arch]="all"
+ if [ "${app_args[arch]}" != "both" ] && [ "${app_args[arch]}" != "all" ] && [[ "${app_args[arch]}" != "arm64-v8a"* ]] && [[ "${app_args[arch]}" != "arm-v7a"* ]]; then
abort "wrong arch '${app_args[arch]}' for '$table_name'"
fi
diff --git a/utils.sh b/utils.sh
index 1b3fdf5..7b531ff 100755
--- a/utils.sh
+++ b/utils.sh
@@ -209,15 +209,16 @@ isoneof() {
# -------------------- apkmirror --------------------
dl_apkmirror() {
- local url=$1 version=${2// /-} output=$3 apkorbundle=$4 arch=$5 dpi=$6
+ local url=$1 version=${2// /-} output=$3 arch=$4 dpi=$5 apkorbundle=APK
+ if [ "$arch" = "arm-v7a" ]; then arch="armeabi-v7a"; fi
[ "${DRYRUN:-}" ] && {
: >"$output"
return 0
}
- local resp node app_table dlurl=""
- if [ "$arch" = universal ]; then
+ local apparch resp node app_table dlurl=""
+ if [ "$arch" = all ]; then
apparch=(universal noarch 'arm64-v8a + armeabi-v7a')
- else apparch=("$arch" universal); fi
+ else apparch=("$arch" universal noarch 'arm64-v8a + armeabi-v7a'); fi
url="${url}/${url##*/}-${version//./-}-release/"
resp=$(req "$url" -) || return 1
for ((n = 1; n < 40; n++)); do
@@ -238,12 +239,10 @@ dl_apkmirror() {
req "$url" "$output"
}
get_apkmirror_vers() {
- local apkmirror_category=$1 allow_alpha_version=$2
local vers apkm_resp
- apkm_resp=$(req "https://www.apkmirror.com/uploads/?appcategory=${apkmirror_category}" -)
- # apkm_name=$(echo "$apkm_resp" | sed -n 's;.*Latest \(.*\) Uploads.*;\1;p')
+ apkm_resp=$(req "https://www.apkmirror.com/uploads/?appcategory=${__APKMIRROR_CAT__}" -)
vers=$(sed -n 's;.*Version:\(.*\) .*;\1;p' <<<"$apkm_resp")
- if [ "$allow_alpha_version" = false ]; then
+ if [ "$__AAV__" = false ]; then
local IFS=$'\n'
vers=$(grep -iv "\(beta\|alpha\)" <<<"$vers")
local v r_vers=()
@@ -255,48 +254,59 @@ get_apkmirror_vers() {
echo "$vers"
fi
}
-get_apkmirror_pkg_name() { req "$1" - | sed -n 's;.*id=\(.*\)" class="accent_color.*;\1;p'; }
+get_apkmirror_pkg_name() { sed -n 's;.*id=\(.*\)" class="accent_color.*;\1;p' <<<"$__APKMIRROR_RESP__"; }
+get_apkmirror_resp() {
+ __APKMIRROR_RESP__=$(req "${1}" -)
+ __APKMIRROR_CAT__="${1##*/}"
+}
# --------------------------------------------------
# -------------------- uptodown --------------------
-get_uptodown_resp() { req "${1}/versions" -; }
-get_uptodown_vers() { $HTMLQ --text ".version" <<<"$1"; }
+get_uptodown_resp() {
+ __UPTODOWN_RESP__=$(req "${1}/versions" -)
+ __UPTODOWN_RESP_PKG__=$(req "${1}/download" -)
+}
+get_uptodown_vers() { $HTMLQ --text ".version" <<<"$__UPTODOWN_RESP__"; }
dl_uptodown() {
- local uptwod_resp=$1 version=$2 output=$3 uptodown_dlurl=$4
+ local uptodown_dlurl=$1 version=$2 output=$3
local url
if [ -n "$version" ]; then
- url=$(grep -F "${version}" -B 2 <<<"$uptwod_resp" | head -1 | sed -n 's;.*data-url=".*download\/\(.*\)".*;\1;p') || return 1
+ url=$(grep -F "${version}" -B 2 <<<"$__UPTODOWN_RESP__" | head -1 | sed -n 's;.*data-url=".*download\/\(.*\)".*;\1;p') || return 1
else url=""; fi
url="https://dw.uptodown.com/dwn/$(req "${uptodown_dlurl}/post-download/${url}" - | sed -n 's;.*class="post-download" data-url="\(.*\)".*;\1;p')" || return 1
req "$url" "$output"
}
-get_uptodown_pkg_name() { $HTMLQ --text "tr.full:nth-child(1) > td:nth-child(3)" <<<"$1"; }
+get_uptodown_pkg_name() { $HTMLQ --text "tr.full:nth-child(1) > td:nth-child(3)" <<<"$__UPTODOWN_RESP_PKG__"; }
# --------------------------------------------------
# -------------------- apkmonk ---------------------
-get_apkmonk_resp() { req "${1}" -; }
-get_apkmonk_vers() { grep -oP 'download_ver.+?>\K([0-9,\.]*)' <<<"$1"; }
+get_apkmonk_resp() {
+ __APKMONK_RESP__=$(req "${1}" -)
+ __APKMONK_PKG_NAME__=$(awk -F/ '{print $NF}' <<<"$1")
+}
+get_apkmonk_vers() { grep -oP 'download_ver.+?>\K([0-9,\.]*)' <<<"$__APKMONK_RESP__"; }
dl_apkmonk() {
- local apkmonk_resp=$1 version=$2 output=$3
- local url
- url="https://www.apkmonk.com/down_file?pkg="$(grep -F "$version" <<<"$apkmonk_resp" | grep -oP 'href=\"/download-app/\K.+?(?=/?\">)' | sed 's;/;\&key=;') || return 1
+ local url=$1 version=$2 output=$3
+ url="https://www.apkmonk.com/down_file?pkg="$(grep -F "$version" <<<"$__APKMONK_RESP__" | grep -oP 'href=\"/download-app/\K.+?(?=/?\">)' | sed 's;/;\&key=;') || return 1
url=$(req "$url" - | grep -oP 'https.+?(?=\",)') || return 1
req "$url" "$output"
}
-get_apkmonk_pkg_name() { grep -oP '.*apkmonk\.com\/app\/\K([,\w,\.]*)' <<<"$1"; }
+get_apkmonk_pkg_name() { echo "$__APKMONK_PKG_NAME__"; }
# --------------------------------------------------
dl_archive() {
- local archive_resp=$1 version=$2 arch=$3 output=$4 url=$5
- local path
- path=$(grep "${version}-${arch}" <<<"$archive_resp") || return 1
+ local url=$1 version=$2 output=$3 arch=$4
+ local path version=${version// /}
+ path=$(grep "${version_f#v}-${arch// /}" <<<"$__ARCHIVE_RESP__") || return 1
req "${url}/${path}" "$output"
}
get_archive_resp() {
+ local r
r=$(req "$1" -)
- if [ -z "$r" ]; then return 1; else sed -n 's;^