From 3dd9dfc1345c475d78d42d6a1d8a00ec61847582 Mon Sep 17 00:00:00 2001 From: Nikhil Badyal Date: Fri, 14 Jul 2023 22:42:39 +0530 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Included=20patches?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 23 +++++++++++++++++++++-- src/patches.py | 16 ++++++++++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7dbe646..3a5b90d 100644 --- a/README.md +++ b/README.md @@ -180,8 +180,7 @@ By default, script build the version as recommended by Revanced team. PATCH_APPS=youtube,twitter,reddit ``` 4. If you want to exclude any patch. Set comma separated patch in `.env` file or in `ENVS` in `GitHub secrets` - (Recommended) in - the format + (Recommended) in the format ```ini EXCLUDE_PATCH_= ``` @@ -196,6 +195,26 @@ By default, script build the version as recommended by Revanced team. EXCLUDE_PATCH_YOUTUBE_EXTENDED=custom-branding-red,custom-branding-blue,materialyou EXCLUDE_PATCH_YOUTUBE_MUSIC_EXTENDED=custom-branding-music ``` + **_All the patches for an app are included by default._**.

If you want to apply a universal patch. You can + include it + manually. See below for more information.
+ If you want to include any universal patch. Set comma separated patch in `.env` file or in `ENVS` in `GitHub + secrets` + (Recommended) in the format + ```ini + INCLUDE_PATCH_= + ``` + Example: + ```dotenv + INCLUDE_PATCH_YOUTUBE=remove-screenshot-restriction + ``` + If you are using `Revanced Extended.` Add `_EXTENDED` in exclude options. + Example: + ```dotenv + INCLUDE_PATCH_YOUTUBE_EXTENDED=remove-screenshot-restriction + ``` + **_Remember_** - Revanced patches are provided space separated, make sure you type those **-** separated here. It means a + patch named _**Hey There**_ will be entered as **_hey-there_** in the above example. 5. If you want to build a specific version . Add `version` in `.env` file or in `ENVS` in `GitHub secrets` (Recommended) in the format ```ini diff --git a/src/patches.py b/src/patches.py index 0626d22..d109690 100644 --- a/src/patches.py +++ b/src/patches.py @@ -98,8 +98,14 @@ class Patches(object): for app_name in (self.revanced_app_ids[x][1] for x in self.revanced_app_ids): setattr(self, app_name, []) + setattr(self, "universal_patch", []) for patch in patches: + if not patch["compatiblePackages"]: + p = {x: patch[x] for x in ["name", "description"]} + p["app"] = "universal" + p["version"] = "all" + getattr(self, "universal_patch").append(p) for compatible_package, version in [ (x["name"], x["versions"]) for x in patch["compatiblePackages"] ]: @@ -141,6 +147,8 @@ class Patches(object): for app_name, app_id in self.revanced_app_ids.values(): n_patches = len(getattr(self, app_id)) logger.debug(f"Total patches in {app_name} are {n_patches}") + n_patches = len(getattr(self, "universal_patch")) + logger.debug(f"Total universal patches are {n_patches}") def __init__(self, config: RevancedConfig) -> None: self.config = config @@ -186,8 +194,12 @@ class Patches(object): excluded_patches = self.config.env.list( f"EXCLUDE_PATCH_{app}_EXTENDED".upper(), [] ) + included_patches = self.config.env.list( + f"INCLUDE_PATCH_{app}_EXTENDED".upper(), [] + ) else: excluded_patches = self.config.env.list(f"EXCLUDE_PATCH_{app}".upper(), []) + included_patches = self.config.env.list(f"INCLUDE_PATCH_{app}".upper(), []) for patch in patches: normalized_patch = patch["name"].lower().replace(" ", "-") parser.include( @@ -195,6 +207,10 @@ class Patches(object): ) if normalized_patch not in excluded_patches else parser.exclude( normalized_patch ) + for normalized_patch in included_patches: + parser.include(normalized_patch) if normalized_patch not in getattr( + self, "universal_patch", [] + ) else () excluded = parser.get_excluded_patches() if excluded: logger.debug(f"Excluded patches {excluded} for {app}")