mirror of
https://github.com/sotam0316/docker-py-revanced.git
synced 2026-04-25 11:58:37 +09:00
📝 Updated docs [skip ci]
This commit is contained in:
+64
-5
@@ -43,11 +43,28 @@ class APP(object):
|
|||||||
self.download_patch_resources(config)
|
self.download_patch_resources(config)
|
||||||
|
|
||||||
def get_output_file_name(self) -> str:
|
def get_output_file_name(self) -> str:
|
||||||
"""Get output file appended with version."""
|
"""The function returns a string representing the output file name for
|
||||||
|
an APK file appended with version.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
a string that represents the output file name for an APK file.
|
||||||
|
"""
|
||||||
return f"Re-{self.app_name}-{slugify(self.app_version)}-output.apk"
|
return f"Re-{self.app_name}-{slugify(self.app_version)}-output.apk"
|
||||||
|
|
||||||
def set_recommended_version(self, version: str, exp: bool = False) -> None:
|
def set_recommended_version(self, version: str, exp: bool = False) -> None:
|
||||||
"""Update if cooking non-recommended."""
|
"""The function sets the recommended version and experiment flag for an
|
||||||
|
app.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
version : str
|
||||||
|
The version parameter is a string that represents the recommended version of the app.
|
||||||
|
exp : bool, optional
|
||||||
|
The "exp" parameter is a boolean flag that indicates whether the specified version is for an
|
||||||
|
experimental or regular release. If "exp" is set to True, it means the version is for an
|
||||||
|
experimental release. If "exp" is set to False or not provided, it means the version is for
|
||||||
|
"""
|
||||||
self.app_version = version
|
self.app_version = version
|
||||||
self.experiment = exp
|
self.experiment = exp
|
||||||
|
|
||||||
@@ -59,7 +76,30 @@ class APP(object):
|
|||||||
def download(
|
def download(
|
||||||
url: str, config: RevancedConfig, assets_filter: str, file_name: str = ""
|
url: str, config: RevancedConfig, assets_filter: str, file_name: str = ""
|
||||||
) -> str:
|
) -> str:
|
||||||
"""Downloader."""
|
"""The `download` function downloads a file from a given URL using a
|
||||||
|
specified configuration and filters the assets based on a given filter.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
url : str
|
||||||
|
The `url` parameter is a string that represents the URL of the resource you want to download.
|
||||||
|
It can be a URL from GitHub or a local file URL.
|
||||||
|
config : RevancedConfig
|
||||||
|
The `config` parameter is an instance of the `RevancedConfig` class. It is used to provide
|
||||||
|
configuration settings for the download process.
|
||||||
|
assets_filter : str
|
||||||
|
The `assets_filter` parameter is a string that is used to filter the assets to be downloaded
|
||||||
|
from a GitHub repository. It is used when the `url` parameter starts with "https://github". The
|
||||||
|
`assets_filter` string is matched against the names of the assets in the repository, and only
|
||||||
|
file_name : str
|
||||||
|
The `file_name` parameter is a string that represents the name of the file that will be
|
||||||
|
downloaded. If no value is provided for `file_name`, the function will generate a filename based
|
||||||
|
on the URL of the file being downloaded.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
a string, which is the file name of the downloaded file.
|
||||||
|
"""
|
||||||
from src.downloader.download import Downloader
|
from src.downloader.download import Downloader
|
||||||
|
|
||||||
url = url.strip()
|
url = url.strip()
|
||||||
@@ -76,7 +116,15 @@ class APP(object):
|
|||||||
return file_name
|
return file_name
|
||||||
|
|
||||||
def download_patch_resources(self, config: RevancedConfig) -> None:
|
def download_patch_resources(self, config: RevancedConfig) -> None:
|
||||||
"""Download resource for patching."""
|
"""The function `download_patch_resources` downloads various resources
|
||||||
|
for patching in parallel using a ThreadPoolExecutor.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
config : RevancedConfig
|
||||||
|
The `config` parameter is an instance of the `RevancedConfig` class. It is used to provide
|
||||||
|
configuration settings for the resource download tasks.
|
||||||
|
"""
|
||||||
logger.info("Downloading resources for patching.")
|
logger.info("Downloading resources for patching.")
|
||||||
# Create a list of resource download tasks
|
# Create a list of resource download tasks
|
||||||
download_tasks = [
|
download_tasks = [
|
||||||
@@ -105,6 +153,17 @@ class APP(object):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def generate_filename(url: str) -> str:
|
def generate_filename(url: str) -> str:
|
||||||
"""Get file name from url."""
|
"""The function `generate_filename` takes a URL as input and returns a
|
||||||
|
hashed version of the URL as the filename.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
url : str
|
||||||
|
The `url` parameter is a string that represents a URL.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
the encoded URL as a string.
|
||||||
|
"""
|
||||||
encoded_url: str = hashlib.sha256(url.encode()).hexdigest()
|
encoded_url: str = hashlib.sha256(url.encode()).hexdigest()
|
||||||
return encoded_url
|
return encoded_url
|
||||||
|
|||||||
+50
-13
@@ -30,33 +30,61 @@ class Parser(object):
|
|||||||
self.config = config
|
self.config = config
|
||||||
|
|
||||||
def include(self, name: str) -> None:
|
def include(self, name: str) -> None:
|
||||||
"""Include a given patch.
|
"""The function `include` adds a given patch to a list of patches.
|
||||||
|
|
||||||
:param name: Name of the patch
|
Parameters
|
||||||
|
----------
|
||||||
|
name : str
|
||||||
|
The `name` parameter is a string that represents the name of the patch to be included.
|
||||||
"""
|
"""
|
||||||
self._PATCHES.extend(["-i", name])
|
self._PATCHES.extend(["-i", name])
|
||||||
|
|
||||||
def exclude(self, name: str) -> None:
|
def exclude(self, name: str) -> None:
|
||||||
"""Exclude a given patch.
|
"""The `exclude` function adds a given patch to the list of excluded
|
||||||
|
patches.
|
||||||
|
|
||||||
:param name: Name of the patch to exclude
|
Parameters
|
||||||
|
----------
|
||||||
|
name : str
|
||||||
|
The `name` parameter is a string that represents the name of the patch to be excluded.
|
||||||
"""
|
"""
|
||||||
self._PATCHES.extend(["-e", name])
|
self._PATCHES.extend(["-e", name])
|
||||||
self._EXCLUDED.append(name)
|
self._EXCLUDED.append(name)
|
||||||
|
|
||||||
def get_excluded_patches(self) -> List[str]:
|
def get_excluded_patches(self) -> List[str]:
|
||||||
"""Getter to get all excluded patches :return: List of excluded
|
"""The function `get_excluded_patches` is a getter method that returns
|
||||||
patches."""
|
a list of excluded patches.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
The method is returning a list of excluded patches.
|
||||||
|
"""
|
||||||
return self._EXCLUDED
|
return self._EXCLUDED
|
||||||
|
|
||||||
def get_all_patches(self) -> List[str]:
|
def get_all_patches(self) -> List[str]:
|
||||||
"""Getter to get all excluded patches :return: List of excluded
|
"""The function "get_all_patches" is a getter method that returns a
|
||||||
patches."""
|
list of all patches.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
The method is returning a list of all patches.
|
||||||
|
"""
|
||||||
return self._PATCHES
|
return self._PATCHES
|
||||||
|
|
||||||
def invert_patch(self, name: str) -> bool:
|
def invert_patch(self, name: str) -> bool:
|
||||||
"""Getter to get all excluded patches :return: List of excluded
|
"""The function `invert_patch` takes a name as input, it toggles the
|
||||||
patches."""
|
status of the patch and returns True, otherwise it returns False.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
name : str
|
||||||
|
The `name` parameter is a string that represents the name of a patch.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
a boolean value. It returns True if the patch name is found in the list of patches and
|
||||||
|
successfully inverted, and False if the patch name is not found in the list.
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
name = name.lower().replace(" ", "-")
|
name = name.lower().replace(" ", "-")
|
||||||
patch_index = self._PATCHES.index(name)
|
patch_index = self._PATCHES.index(name)
|
||||||
@@ -71,7 +99,11 @@ class Parser(object):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def exclude_all_patches(self) -> None:
|
def exclude_all_patches(self) -> None:
|
||||||
"""Exclude all patches to Speed up CI."""
|
"""The function `exclude_all_patches` replaces all occurrences of "-i"
|
||||||
|
with "-e" in the list `self._PATCHES`.
|
||||||
|
|
||||||
|
Hence exclude all patches
|
||||||
|
"""
|
||||||
for idx, item in enumerate(self._PATCHES):
|
for idx, item in enumerate(self._PATCHES):
|
||||||
if item == "-i":
|
if item == "-i":
|
||||||
self._PATCHES[idx] = "-e"
|
self._PATCHES[idx] = "-e"
|
||||||
@@ -81,9 +113,14 @@ class Parser(object):
|
|||||||
self,
|
self,
|
||||||
app: APP,
|
app: APP,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Revanced APP Patcher.
|
"""The function `patch_app` is used to patch an app using the Revanced
|
||||||
|
CLI tool.
|
||||||
|
|
||||||
:param app: Name of the app
|
Parameters
|
||||||
|
----------
|
||||||
|
app : APP
|
||||||
|
The `app` parameter is an instance of the `APP` class. It represents an application that needs
|
||||||
|
to be patched.
|
||||||
"""
|
"""
|
||||||
args = [
|
args = [
|
||||||
self.CLI_JAR,
|
self.CLI_JAR,
|
||||||
|
|||||||
+84
-15
@@ -62,7 +62,19 @@ class Patches(object):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_package_name(app: str) -> str:
|
def get_package_name(app: str) -> str:
|
||||||
"""Get Package name from app name."""
|
"""The function `get_package_name` takes an app name as input and
|
||||||
|
returns the corresponding package name, or raises an exception if the
|
||||||
|
app is not supported.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
app : str
|
||||||
|
The `app` parameter is a string that represents the name of an app.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
a string, which is the package name corresponding to the given app name.
|
||||||
|
"""
|
||||||
for package, app_tuple in Patches.revanced_app_ids.items():
|
for package, app_tuple in Patches.revanced_app_ids.items():
|
||||||
if app_tuple[0] == app:
|
if app_tuple[0] == app:
|
||||||
return package
|
return package
|
||||||
@@ -70,11 +82,27 @@ class Patches(object):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def support_app() -> Dict[str, str]:
|
def support_app() -> Dict[str, str]:
|
||||||
"""Return supported apps."""
|
"""The function `support_app()` returns a dictionary of supported app
|
||||||
|
IDs.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
a dictionary of supported apps.
|
||||||
|
"""
|
||||||
return Patches._revanced_app_ids
|
return Patches._revanced_app_ids
|
||||||
|
|
||||||
def fetch_patches(self, config: RevancedConfig, app: APP) -> None:
|
def fetch_patches(self, config: RevancedConfig, app: APP) -> None:
|
||||||
"""Function to fetch all patches."""
|
"""The function fetches patches from a JSON file and organizes them
|
||||||
|
based on compatibility with different applications.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
config : RevancedConfig
|
||||||
|
The `config` parameter is of type `RevancedConfig` and represents the configuration for the
|
||||||
|
application.
|
||||||
|
app : APP
|
||||||
|
The `app` parameter is of type `APP`. It represents an instance of the `APP` class.
|
||||||
|
"""
|
||||||
patch_loader = PatchLoader()
|
patch_loader = PatchLoader()
|
||||||
patches = patch_loader.load_patches(
|
patches = patch_loader.load_patches(
|
||||||
f'{config.temp_folder}/{app.resource["patches_json"]}'
|
f'{config.temp_folder}/{app.resource["patches_json"]}'
|
||||||
@@ -105,10 +133,20 @@ class Patches(object):
|
|||||||
self.fetch_patches(config, app)
|
self.fetch_patches(config, app)
|
||||||
|
|
||||||
def get(self, app: str) -> Tuple[List[Dict[str, str]], str]:
|
def get(self, app: str) -> Tuple[List[Dict[str, str]], str]:
|
||||||
"""Get all patches for the given app.
|
"""The function `get` retrieves all patches for a given application and
|
||||||
|
returns them along with the latest version.
|
||||||
|
|
||||||
:param app: Name of the application
|
Parameters
|
||||||
:return: Patches
|
----------
|
||||||
|
app : str
|
||||||
|
The `app` parameter is a string that represents the name of the application for which you want
|
||||||
|
to retrieve patches.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
a tuple containing two elements. The first element is a list of dictionaries representing
|
||||||
|
patches for the given app. The second element is a string representing the version of the
|
||||||
|
patches.
|
||||||
"""
|
"""
|
||||||
app_names = {value[0]: value[1] for value in self.revanced_app_ids.values()}
|
app_names = {value[0]: value[1] for value in self.revanced_app_ids.values()}
|
||||||
|
|
||||||
@@ -124,11 +162,20 @@ class Patches(object):
|
|||||||
def include_exclude_patch(
|
def include_exclude_patch(
|
||||||
self, app: APP, parser: Any, patches: List[Dict[str, str]]
|
self, app: APP, parser: Any, patches: List[Dict[str, str]]
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Include and exclude patches for a given app.
|
"""The function `include_exclude_patch` includes and excludes patches
|
||||||
|
for a given app based on certain conditions.
|
||||||
|
|
||||||
:param app: Name of the app
|
Parameters
|
||||||
:param parser: Parser Obj
|
----------
|
||||||
:param patches: All the patches of a given app
|
app : APP
|
||||||
|
The "app" parameter is the name of the app for which the patches are being included or
|
||||||
|
excluded.
|
||||||
|
parser : Any
|
||||||
|
The `parser` parameter is an object of type `Any`, which means it can be any type of object. It
|
||||||
|
is used to perform parsing operations.
|
||||||
|
patches : List[Dict[str, str]]
|
||||||
|
A list of dictionaries, where each dictionary represents a patch and contains the following
|
||||||
|
keys:
|
||||||
"""
|
"""
|
||||||
for patch in patches:
|
for patch in patches:
|
||||||
normalized_patch = patch["name"].lower().replace(" ", "-")
|
normalized_patch = patch["name"].lower().replace(" ", "-")
|
||||||
@@ -144,11 +191,21 @@ class Patches(object):
|
|||||||
logger.info(app)
|
logger.info(app)
|
||||||
|
|
||||||
def get_app_configs(self, app: "APP") -> List[Dict[str, str]]:
|
def get_app_configs(self, app: "APP") -> List[Dict[str, str]]:
|
||||||
"""Get Configurations for a given app.
|
"""The function `get_app_configs` retrieves configurations for a given
|
||||||
|
app, including patches, version information, and whether it is
|
||||||
|
experimental.
|
||||||
|
|
||||||
:param app: Name of the application
|
Parameters
|
||||||
:return: All Patches , Its version and whether it is
|
----------
|
||||||
experimental
|
app : "APP"
|
||||||
|
The "app" parameter is the name of the application for which you want to get the
|
||||||
|
configurations.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
the total_patches, which is a list of dictionaries containing information about the patches for
|
||||||
|
the given app. Each dictionary in the list contains the keys "Patches", "Version", and
|
||||||
|
"Experimental".
|
||||||
"""
|
"""
|
||||||
experiment = False
|
experiment = False
|
||||||
total_patches, recommended_version = self.get(app=app.app_name)
|
total_patches, recommended_version = self.get(app=app.app_name)
|
||||||
@@ -170,7 +227,19 @@ class PatchLoader:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def load_patches(file_name: str) -> Any:
|
def load_patches(file_name: str) -> Any:
|
||||||
"""Load patches from a file."""
|
"""The function `load_patches` loads patches from a file and returns
|
||||||
|
them.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
file_name : str
|
||||||
|
The `file_name` parameter is a string that represents the name or path of the file from which
|
||||||
|
the patches will be loaded.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
the patches loaded from the file.
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
with open(file_name) as f:
|
with open(file_name) as f:
|
||||||
patches = json.load(f)
|
patches = json.load(f)
|
||||||
|
|||||||
+105
-13
@@ -26,14 +26,44 @@ bs4_parser = "html.parser"
|
|||||||
|
|
||||||
|
|
||||||
def update_changelog(name: str, response: Dict[str, str]) -> None:
|
def update_changelog(name: str, response: Dict[str, str]) -> None:
|
||||||
"""Updated Changelog."""
|
"""The function `update_changelog` updates the changelog file with the
|
||||||
|
provided name and response.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
name : str
|
||||||
|
A string representing the name of the change or update.
|
||||||
|
response : Dict[str, str]
|
||||||
|
The `response` parameter is a dictionary that contains information about the changes made. The keys
|
||||||
|
in the dictionary represent the type of change (e.g., "bug fix", "feature", "documentation"), and
|
||||||
|
the values represent the specific changes made for each type.
|
||||||
|
"""
|
||||||
parent_repo = get_parent_repo()
|
parent_repo = get_parent_repo()
|
||||||
change_log = format_changelog(name, response, parent_repo)
|
change_log = format_changelog(name, response, parent_repo)
|
||||||
write_to_file(change_log)
|
write_to_file(change_log)
|
||||||
|
|
||||||
|
|
||||||
def format_changelog(name: str, response: Dict[str, str], parent_repo: str) -> str:
|
def format_changelog(name: str, response: Dict[str, str], parent_repo: str) -> str:
|
||||||
"""Format changelog."""
|
"""The `format_changelog` function takes in a name, a response dictionary,
|
||||||
|
and a parent repository, and returns a formatted changelog string.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
name : str
|
||||||
|
The `name` parameter is a string that represents the name of the changelog. It is used to create a
|
||||||
|
collapsible section in the formatted changelog.
|
||||||
|
response : Dict[str, str]
|
||||||
|
The `response` parameter is a dictionary that contains information about a release. It has the
|
||||||
|
following keys:
|
||||||
|
parent_repo : str
|
||||||
|
The `parent_repo` parameter is a string that represents the URL or name of the parent repository.
|
||||||
|
It is used to generate a footer in the formatted changelog, indicating that the changelogs were
|
||||||
|
generated by a specific tool or script.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
a formatted changelog as a string.
|
||||||
|
"""
|
||||||
collapse_start = f"\n<details> <summary>👀 {name} </summary>\n\n"
|
collapse_start = f"\n<details> <summary>👀 {name} </summary>\n\n"
|
||||||
release_version = (
|
release_version = (
|
||||||
f"**Release Version** - [{response['tag_name']}]({response['html_url']})<br>"
|
f"**Release Version** - [{response['tag_name']}]({response['html_url']})<br>"
|
||||||
@@ -57,25 +87,59 @@ def format_changelog(name: str, response: Dict[str, str], parent_repo: str) -> s
|
|||||||
|
|
||||||
|
|
||||||
def write_to_file(change_log: str) -> None:
|
def write_to_file(change_log: str) -> None:
|
||||||
"""Write changelog to file."""
|
"""The function `write_to_file` writes a given changelog string to a file
|
||||||
|
named "changelog.md".
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
change_log : str
|
||||||
|
A string representing the changelog that you want to write to the file.
|
||||||
|
"""
|
||||||
with open("changelog.md", "w", encoding="utf_8") as file1:
|
with open("changelog.md", "w", encoding="utf_8") as file1:
|
||||||
file1.write(change_log)
|
file1.write(change_log)
|
||||||
|
|
||||||
|
|
||||||
def get_parent_repo() -> str:
|
def get_parent_repo() -> str:
|
||||||
"""Get parent repository URL from configuration file."""
|
"""The function `get_parent_repo()` returns the URL of the parent
|
||||||
|
repository.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
the URL of the parent repository, which is "https://github.com/nikhilbadyal/docker-py-revanced".
|
||||||
|
"""
|
||||||
return "https://github.com/nikhilbadyal/docker-py-revanced"
|
return "https://github.com/nikhilbadyal/docker-py-revanced"
|
||||||
|
|
||||||
|
|
||||||
def handle_request_response(response: Response) -> None:
|
def handle_request_response(response: Response) -> None:
|
||||||
"""Handle Get Request Response."""
|
"""The function handles the response of a GET request and raises an
|
||||||
|
exception if the response code is not 200.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
response : Response
|
||||||
|
The parameter `response` is of type `Response`, which is likely referring to a response object from
|
||||||
|
an HTTP request. This object typically contains information about the response received from the
|
||||||
|
server, such as the status code, headers, and response body.
|
||||||
|
"""
|
||||||
response_code = response.status_code
|
response_code = response.status_code
|
||||||
if response_code != 200:
|
if response_code != 200:
|
||||||
raise DownloadFailure(f"Unable to downloaded assets. Reason - {response.text}")
|
raise DownloadFailure(f"Unable to downloaded assets. Reason - {response.text}")
|
||||||
|
|
||||||
|
|
||||||
def slugify(string: str) -> str:
|
def slugify(string: str) -> str:
|
||||||
"""Converts a string to a slug format."""
|
"""The `slugify` function converts a string to a slug format by converting
|
||||||
|
it to lowercase, removing special characters, replacing spaces with dashes,
|
||||||
|
removing consecutive dashes, and removing leading and trailing dashes.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
string : str
|
||||||
|
The `string` parameter is a string that you want to convert to a slug format.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
The function `slugify` returns a modified version of the input string in slug format.
|
||||||
|
"""
|
||||||
# Convert to lowercase
|
# Convert to lowercase
|
||||||
modified_string = string.lower()
|
modified_string = string.lower()
|
||||||
|
|
||||||
@@ -95,7 +159,21 @@ def slugify(string: str) -> str:
|
|||||||
|
|
||||||
|
|
||||||
def check_java(dry_run: bool) -> None:
|
def check_java(dry_run: bool) -> None:
|
||||||
"""Check if Java>=17 is installed."""
|
"""The function `check_java` checks if Java version 17 or higher is
|
||||||
|
installed and logs an error message if it is not.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
dry_run : bool
|
||||||
|
The `dry_run` parameter is a boolean flag that determines whether the function should actually
|
||||||
|
check if Java is installed or just simulate the check. If `dry_run` is `True`, the function will
|
||||||
|
return without performing the check. If `dry_run` is `False`, the function will execute the
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
The function `check_java` does not return any value. It has a return type annotation of `None`,
|
||||||
|
indicating that it does not return anything.
|
||||||
|
"""
|
||||||
try:
|
try:
|
||||||
if dry_run:
|
if dry_run:
|
||||||
return
|
return
|
||||||
@@ -114,7 +192,15 @@ def check_java(dry_run: bool) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def extra_downloads(config: RevancedConfig) -> None:
|
def extra_downloads(config: RevancedConfig) -> None:
|
||||||
"""Download extra files."""
|
"""The function `extra_downloads` downloads extra files specified in the
|
||||||
|
`config` object using the `APP.download` method.
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
config : RevancedConfig
|
||||||
|
The `config` parameter is an instance of the `RevancedConfig` class. It is used to provide
|
||||||
|
configuration settings for the download process.
|
||||||
|
"""
|
||||||
from src.app import APP
|
from src.app import APP
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -135,13 +221,19 @@ def extra_downloads(config: RevancedConfig) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def apkmirror_status_check(package_name: str) -> Any:
|
def apkmirror_status_check(package_name: str) -> Any:
|
||||||
"""Check if app exists on APKMirror.
|
"""The `apkmirror_status_check` function checks if an app exists on
|
||||||
|
APKMirror by making a POST request to the APKMirror API with the package
|
||||||
|
name as a parameter.
|
||||||
|
|
||||||
Args:
|
Parameters
|
||||||
package_name (str): The name of the package to check.
|
----------
|
||||||
|
package_name : str
|
||||||
|
The `package_name` parameter is a string that represents the name of the app package to check on
|
||||||
|
APKMirror.
|
||||||
|
|
||||||
Returns:
|
Returns
|
||||||
dict: The response from APKMirror API as a JSON object.
|
-------
|
||||||
|
the response from the APKMirror API as a JSON object.
|
||||||
"""
|
"""
|
||||||
api_url = f"{apk_mirror_base_url}/wp-json/apkm/v1/app_exists/"
|
api_url = f"{apk_mirror_base_url}/wp-json/apkm/v1/app_exists/"
|
||||||
body = {"pnames": [package_name]}
|
body = {"pnames": [package_name]}
|
||||||
|
|||||||
Reference in New Issue
Block a user