🎨 Use BS4 for apksos

This commit is contained in:
Nikhil Badyal
2023-08-15 19:00:50 +05:30
parent 9571861cd0
commit 5c4cd4dcdc
+13 -9
View File
@@ -1,10 +1,13 @@
"""APK SOS Downloader Class.""" """APK SOS Downloader Class."""
from typing import Any from typing import Any
from loguru import logger import requests
from selectolax.lexbor import LexborHTMLParser from bs4 import BeautifulSoup
from scripts.status_check import headers
from src.downloader.download import Downloader from src.downloader.download import Downloader
from src.exceptions import AppNotFound
from src.utils import bs4_parser
class ApkSos(Downloader): class ApkSos(Downloader):
@@ -16,13 +19,14 @@ class ApkSos(Downloader):
:param page: Url of the page :param page: Url of the page
:param app: Name of the app :param app: Name of the app
""" """
parser = LexborHTMLParser(self.config.session.get(page).text) r = requests.get(page, headers=headers, allow_redirects=True)
download_url = parser.css_first( soup = BeautifulSoup(r.text, bs4_parser)
r"body > div > div > div > div > div.col-sm-12.col-md-8 > div.card.fluid.\.idma > " download_button = soup.find(class_="col-sm-12 col-md-8 text-center")
"div.section.row > div.col-sm-12.col-md-8.text-center > p > a" possible_links = download_button.find_all("a")
).attributes["href"] for possible_link in possible_links:
self._download(download_url, f"{app}.apk") if possible_link.get("href"):
logger.debug(f"Downloaded {app} apk from apk_combo_downloader in rt") return self._download(possible_link["href"], f"{app}.apk")
raise AppNotFound("Unable to download apk from apk_combo")
def latest_version(self, app: str, **kwargs: Any) -> None: def latest_version(self, app: str, **kwargs: Any) -> None:
"""Function to download whatever the latest version of app from """Function to download whatever the latest version of app from