mirror of
https://github.com/sotam0316/docker-py-revanced.git
synced 2026-04-25 03:48:37 +09:00
🎨 Use BS4 for apksos
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user