🎨 Use BS4 for uptodown

This commit is contained in:
Nikhil Badyal
2023-08-15 19:25:37 +05:30
parent 5c4cd4dcdc
commit 887466814c
+8 -4
View File
@@ -1,10 +1,11 @@
"""Upto Down Downloader.""" """Upto Down Downloader."""
from typing import Any from typing import Any
import requests
from bs4 import BeautifulSoup from bs4 import BeautifulSoup
from loguru import logger from loguru import logger
from selectolax.lexbor import LexborHTMLParser
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.exceptions import AppNotFound
from src.utils import bs4_parser from src.utils import bs4_parser
@@ -14,9 +15,12 @@ class UptoDown(Downloader):
"""Files downloader.""" """Files downloader."""
def extract_download_link(self, page: str, app: str) -> None: def extract_download_link(self, page: str, app: str) -> None:
parser = LexborHTMLParser(self.config.session.get(page).text) r = requests.get(page, headers=headers, allow_redirects=True)
main_page = parser.css_first("#detail-download-button") soup = BeautifulSoup(r.text, bs4_parser)
download_url = main_page.attributes["data-url"] soup = soup.find(id="detail-download-button")
download_url = soup.get("data-url")
if not download_url:
raise AppNotFound("Unable to download from uptodown.")
self._download(download_url, f"{app}.apk") self._download(download_url, f"{app}.apk")
logger.debug(f"Downloaded {app} apk from upto_down_downloader in rt") logger.debug(f"Downloaded {app} apk from upto_down_downloader in rt")