🎨 Moved apk sources out of config. (#294)

This commit is contained in:
Nikhil Badyal
2023-08-21 13:30:36 +05:30
committed by GitHub
parent e316a1a184
commit 85c68547d6
8 changed files with 93 additions and 77 deletions
+17 -11
View File
@@ -7,6 +7,7 @@ from loguru import logger
from scripts.status_check import headers
from src.downloader.download import Downloader
from src.downloader.sources import APK_MIRROR_BASE_URL, apk_sources
from src.exceptions import APKMirrorAPKDownloadFailure
from src.utils import bs4_parser
@@ -23,7 +24,7 @@ class ApkMirror(Downloader):
"href"
):
return self._download(
self.config.apk_mirror + possible_link["href"], f"{app}.apk"
APK_MIRROR_BASE_URL + possible_link["href"], f"{app}.apk"
)
raise APKMirrorAPKDownloadFailure(
f"Unable to extract force download for {app}", url=link
@@ -48,7 +49,7 @@ class ApkMirror(Downloader):
None,
):
self._extract_force_download_link(
self.config.apk_mirror + final_download_link, app
APK_MIRROR_BASE_URL + final_download_link, app
)
else:
raise APKMirrorAPKDownloadFailure(
@@ -68,7 +69,9 @@ class ApkMirror(Downloader):
if row.find(class_="accent_color"):
apk_type = row.find(class_="apkm-badge").get_text()
if apk_type == "APK" and (
"arm64-v8a" in row.text.strip() or "universal" in row.text.strip()
"arm64-v8a" in row.text.strip()
or "universal" in row.text.strip()
or "noarch" in row.text.strip()
):
sub_url = row.find(class_="accent_color")["href"]
break
@@ -76,12 +79,12 @@ class ApkMirror(Downloader):
raise APKMirrorAPKDownloadFailure(
"Unable to extract download page", url=main_page
)
return f"{self.config.apk_mirror}{sub_url}"
return f"{APK_MIRROR_BASE_URL}{sub_url}"
@staticmethod
def _extracted_search_div(url: str, search_class: str) -> Tag:
"""Extract search div."""
r = requests.get(url, headers=headers)
r = requests.get(url, headers=headers, timeout=10)
if r.status_code != 200:
raise APKMirrorAPKDownloadFailure(
f"Unable to connect with {url} on ApkMirror. Are you blocked by APKMirror or abused apkmirror "
@@ -101,9 +104,9 @@ class ApkMirror(Downloader):
"""
if not main_page:
version = version.replace(".", "-")
main_page = (
f"{self.config.apk_mirror_version_urls.get(app)}-{version}-release/"
)
apk_main_page = apk_sources[app]
version_page = apk_main_page + apk_main_page.split("/")[-2]
main_page = f"{version_page}-{version}-release/"
download_page = self.get_download_page(main_page)
self.extract_download_link(download_page, app)
@@ -115,14 +118,17 @@ class ApkMirror(Downloader):
:return: Version of downloaded apk
"""
app_main_page = self.config.apk_mirror_urls[app]
app_main_page = apk_sources[app]
versions_div = self._extracted_search_div(
app_main_page, "listWidget p-relative"
)
app_rows = versions_div.find_all(class_="appRow")
version_urls = [
app_row.find(class_="downloadLink")["href"] for app_row in app_rows
app_row.find(class_="downloadLink")["href"]
for app_row in app_rows
if "beta" not in app_row.find(class_="appRowTitle").get_text().lower()
and "alpha" not in app_row.find(class_="appRowTitle").get_text().lower()
]
return self.specific_version(
app, "latest", self.config.apk_mirror + max(version_urls)
app, "latest", APK_MIRROR_BASE_URL + max(version_urls)
)