🎨 Updated error message (#345)

This commit is contained in:
Nikhil Badyal
2023-08-28 18:13:18 +05:30
committed by GitHub
parent 10d91cc0f2
commit dc14703b64
4 changed files with 35 additions and 20 deletions
+3 -3
View File
@@ -5,7 +5,7 @@ from environs import Env
from loguru import logger from loguru import logger
from src.config import RevancedConfig from src.config import RevancedConfig
from src.exceptions import AppNotFoundError, PatchesJsonLoadError, PatchingFailedError, UnknownError from src.exceptions import AppNotFoundError, BuilderError, PatchesJsonLoadError, PatchingFailedError
from src.parser import Parser from src.parser import Parser
from src.patches import Patches from src.patches import Patches
from src.utils import check_java, extra_downloads from src.utils import check_java, extra_downloads
@@ -40,8 +40,8 @@ def main() -> None:
logger.exception("Patches.json not found") logger.exception("Patches.json not found")
except PatchingFailedError as e: except PatchingFailedError as e:
logger.exception(e) logger.exception(e)
except UnknownError as e: except BuilderError as e:
logger.exception(f"Failed to build {app} because of {e}") logger.exception(f"Failed to build {possible_app} because of {e}")
if __name__ == "__main__": if __name__ == "__main__":
+5 -6
View File
@@ -24,7 +24,7 @@ from src.exceptions import (
APKMirrorIconScrapError, APKMirrorIconScrapError,
APKMonkIconScrapError, APKMonkIconScrapError,
APKPureIconScrapError, APKPureIconScrapError,
UnknownError, BuilderError,
) )
from src.patches import Patches from src.patches import Patches
from src.utils import apkmirror_status_check, bs4_parser, handle_request_response, request_header from src.utils import apkmirror_status_check, bs4_parser, handle_request_response, request_header
@@ -47,7 +47,7 @@ def apkcombo_scrapper(package_name: str) -> str:
raise APKComboIconScrapError(url=apkcombo_url) raise APKComboIconScrapError(url=apkcombo_url)
url = icon_element.get("data-src") url = icon_element.get("data-src")
return re.sub(r"=.*$", "", url) # type: ignore[arg-type] return re.sub(r"=.*$", "", url) # type: ignore[arg-type]
except UnknownError as e: except BuilderError as e:
raise APKComboIconScrapError(url=apkcombo_url) from e raise APKComboIconScrapError(url=apkcombo_url) from e
@@ -123,7 +123,7 @@ def gplay_icon_scrapper(package_name: str) -> str:
package_name, package_name,
)["icon"] )["icon"]
) )
except UnknownError as e: except BuilderError as e:
raise GooglePlayScraperException from e raise GooglePlayScraperException from e
@@ -135,11 +135,10 @@ def apkpure_scrapper(package_name: str) -> str:
soup = BeautifulSoup(r.text, bs4_parser) soup = BeautifulSoup(r.text, bs4_parser)
search_result = soup.find_all(class_="brand-info-top") search_result = soup.find_all(class_="brand-info-top")
for brand_info in search_result: for brand_info in search_result:
icon_element = brand_info.find(class_="icon") if icon_element := brand_info.find(class_="icon"):
if icon_element:
return str(icon_element.get("src")) return str(icon_element.get("src"))
raise APKPureIconScrapError(url=apkpure_url) raise APKPureIconScrapError(url=apkpure_url)
except UnknownError as e: except BuilderError as e:
raise APKPureIconScrapError(url=apkpure_url) from e raise APKPureIconScrapError(url=apkpure_url) from e
+2 -2
View File
@@ -9,7 +9,7 @@ from loguru import logger
from src.config import RevancedConfig from src.config import RevancedConfig
from src.downloader.sources import apk_sources from src.downloader.sources import apk_sources
from src.exceptions import DownloadError, PatchingFailedError, UnknownError from src.exceptions import BuilderError, DownloadError, PatchingFailedError
from src.utils import slugify from src.utils import slugify
@@ -151,7 +151,7 @@ class APP(object):
for resource_name, future in futures.items(): for resource_name, future in futures.items():
try: try:
self.resource[resource_name] = future.result() self.resource[resource_name] = future.result()
except UnknownError as e: except BuilderError as e:
raise PatchingFailedError(e) from e raise PatchingFailedError(e) from e
@staticmethod @staticmethod
+25 -9
View File
@@ -2,7 +2,17 @@
from typing import Any, Self from typing import Any, Self
class APKMirrorIconScrapError(Exception): class BuilderError(Exception):
"""Base class for all the project errors."""
message = "Default Error message."
def __str__(self: Self) -> str:
"""Return error message."""
return self.message
class APKMirrorIconScrapError(BuilderError):
"""Exception raised when the icon cannot be scraped from apkmirror.""" """Exception raised when the icon cannot be scraped from apkmirror."""
def __init__(self: Self, *args: Any, **kwargs: Any) -> None: def __init__(self: Self, *args: Any, **kwargs: Any) -> None:
@@ -30,11 +40,11 @@ class APKMonkIconScrapError(APKMirrorIconScrapError):
"""Exception raised when the icon cannot be scraped from apkmonk.""" """Exception raised when the icon cannot be scraped from apkmonk."""
class DownloadError(Exception): class DownloadError(BuilderError):
"""Generic Download failure.""" """Generic Download failure."""
def __init__(self: Self, *args: Any, **kwargs: Any) -> None: def __init__(self: Self, *args: Any, **kwargs: Any) -> None:
"""Initialize the APKMirrorAPKDownloadFailure exception. """Initialize the DownloadFailure exception.
Args: Args:
---- ----
@@ -45,6 +55,11 @@ class DownloadError(Exception):
super().__init__(*args) super().__init__(*args)
self.url = kwargs.get("url", None) self.url = kwargs.get("url", None)
def __str__(self: Self) -> str:
"""Exception message."""
base_message = super().__str__()
return f"Message - {base_message} Url - {self.url}"
class APKDownloadError(DownloadError): class APKDownloadError(DownloadError):
"""Exception raised when the apk cannot be scraped.""" """Exception raised when the apk cannot be scraped."""
@@ -74,15 +89,15 @@ class APKSosAPKDownloadError(APKDownloadError):
"""Exception raised when downloading an APK from apksos failed.""" """Exception raised when downloading an APK from apksos failed."""
class PatchingFailedError(Exception): class PatchingFailedError(BuilderError):
"""Patching Failed.""" """Patching Failed."""
class AppNotFoundError(ValueError): class AppNotFoundError(BuilderError):
"""Not a valid Revanced App.""" """Not a valid Revanced App."""
class PatchesJsonLoadError(ValueError): class PatchesJsonLoadError(BuilderError):
"""Failed to load patches json.""" """Failed to load patches json."""
def __init__(self: Self, *args: Any, **kwargs: Any) -> None: def __init__(self: Self, *args: Any, **kwargs: Any) -> None:
@@ -97,6 +112,7 @@ class PatchesJsonLoadError(ValueError):
super().__init__(*args) super().__init__(*args)
self.file_name = kwargs.get("file_name", None) self.file_name = kwargs.get("file_name", None)
def __str__(self: Self) -> str:
class UnknownError(Exception): """Exception message."""
"""Some unknown error.""" base_message = super().__str__()
return f"Message - {base_message} Url - {self.file_name}"