mirror of
https://github.com/sotam0316/docker-py-revanced.git
synced 2026-04-25 03:48:37 +09:00
✨ New app pflotsh-ecmwf
This commit is contained in:
@@ -17,7 +17,7 @@ def main() -> None:
|
|||||||
config = RevancedConfig(env)
|
config = RevancedConfig(env)
|
||||||
|
|
||||||
patcher = Patches(config)
|
patcher = Patches(config)
|
||||||
downloader = Downloader(config)
|
downloader = Downloader(patcher, config)
|
||||||
parser = Parser(patcher, config)
|
parser = Parser(patcher, config)
|
||||||
|
|
||||||
logger.info(f"Will Patch only {patcher.config.apps}")
|
logger.info(f"Will Patch only {patcher.config.apps}")
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ class RevancedConfig:
|
|||||||
self.build_extended = env.bool("BUILD_EXTENDED", False)
|
self.build_extended = env.bool("BUILD_EXTENDED", False)
|
||||||
self.apk_mirror = "https://www.apkmirror.com"
|
self.apk_mirror = "https://www.apkmirror.com"
|
||||||
self.upto_down = ["spotify", "nyx-music-player", "icon-pack-studio", "twitch"]
|
self.upto_down = ["spotify", "nyx-music-player", "icon-pack-studio", "twitch"]
|
||||||
|
self.apk_pure = ["pflotsh-ecmwf"]
|
||||||
self.keystore_name = env.str("KEYSTORE_FILE_NAME", "revanced.keystore")
|
self.keystore_name = env.str("KEYSTORE_FILE_NAME", "revanced.keystore")
|
||||||
self.apps = env.list("PATCH_APPS", default_build)
|
self.apps = env.list("PATCH_APPS", default_build)
|
||||||
self.extended_apps: List[str] = ["youtube", "youtube_music"]
|
self.extended_apps: List[str] = ["youtube", "youtube_music"]
|
||||||
|
|||||||
+27
-2
@@ -13,18 +13,20 @@ from selectolax.lexbor import LexborHTMLParser
|
|||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
from src.config import RevancedConfig
|
from src.config import RevancedConfig
|
||||||
from src.utils import update_changelog
|
from src.patches import Patches
|
||||||
|
from src.utils import AppNotFound, update_changelog
|
||||||
|
|
||||||
|
|
||||||
class Downloader(object):
|
class Downloader(object):
|
||||||
"""Files downloader."""
|
"""Files downloader."""
|
||||||
|
|
||||||
def __init__(self, config: RevancedConfig):
|
def __init__(self, patcher: Patches, config: RevancedConfig):
|
||||||
self._CHUNK_SIZE = 10485760
|
self._CHUNK_SIZE = 10485760
|
||||||
self._QUEUE: PriorityQueue[Tuple[float, str]] = PriorityQueue()
|
self._QUEUE: PriorityQueue[Tuple[float, str]] = PriorityQueue()
|
||||||
self._QUEUE_LENGTH = 0
|
self._QUEUE_LENGTH = 0
|
||||||
self.config = config
|
self.config = config
|
||||||
self.download_revanced()
|
self.download_revanced()
|
||||||
|
self.patcher = patcher
|
||||||
|
|
||||||
def _download(self, url: str, file_name: str) -> None:
|
def _download(self, url: str, file_name: str) -> None:
|
||||||
logger.debug(f"Trying to download {file_name} from {url}")
|
logger.debug(f"Trying to download {file_name} from {url}")
|
||||||
@@ -99,6 +101,19 @@ class Downloader(object):
|
|||||||
logger.debug(f"Downloaded {app} apk from upto_down_downloader in rt")
|
logger.debug(f"Downloaded {app} apk from upto_down_downloader in rt")
|
||||||
return app_version
|
return app_version
|
||||||
|
|
||||||
|
def __apk_pure_downloader(self, app: str) -> str:
|
||||||
|
package_name = None
|
||||||
|
for package, app_tuple in self.patcher.revanced_app_ids.items():
|
||||||
|
if app_tuple[0] == app:
|
||||||
|
package_name = package
|
||||||
|
if not package_name:
|
||||||
|
logger.info("Unable to download from apkpure")
|
||||||
|
raise AppNotFound()
|
||||||
|
download_url = f"https://d.apkpure.com/b/APK/{package_name}?version=latest"
|
||||||
|
self._download(download_url, f"{app}.apk")
|
||||||
|
logger.debug(f"Downloaded {app} apk from apk_pure_downloader in rt")
|
||||||
|
return "latest"
|
||||||
|
|
||||||
def apkmirror_specific_version(self, app: str, version: str) -> str:
|
def apkmirror_specific_version(self, app: str, version: str) -> str:
|
||||||
"""Function to download the specified version of app from apkmirror.
|
"""Function to download the specified version of app from apkmirror.
|
||||||
|
|
||||||
@@ -197,6 +212,14 @@ class Downloader(object):
|
|||||||
"""
|
"""
|
||||||
return self.__upto_down_downloader(app)
|
return self.__upto_down_downloader(app)
|
||||||
|
|
||||||
|
def apk_pure_downloader(self, app: str) -> str:
|
||||||
|
"""Function to download from Apk Pure.
|
||||||
|
|
||||||
|
:param app: Name of the application
|
||||||
|
:return: Version of downloaded APK
|
||||||
|
"""
|
||||||
|
return self.__apk_pure_downloader(app)
|
||||||
|
|
||||||
def download_from_apkmirror(self, version: str, app: str) -> str:
|
def download_from_apkmirror(self, version: str, app: str) -> str:
|
||||||
"""Function to download from apkmirror.
|
"""Function to download from apkmirror.
|
||||||
|
|
||||||
@@ -218,5 +241,7 @@ class Downloader(object):
|
|||||||
"""
|
"""
|
||||||
if app in self.config.upto_down:
|
if app in self.config.upto_down:
|
||||||
return self.upto_down_downloader(app)
|
return self.upto_down_downloader(app)
|
||||||
|
elif app in self.config.apk_pure:
|
||||||
|
return self.apk_pure_downloader(app)
|
||||||
else:
|
else:
|
||||||
return self.download_from_apkmirror(version, app)
|
return self.download_from_apkmirror(version, app)
|
||||||
|
|||||||
+26
-24
@@ -12,6 +12,23 @@ from src.utils import AppNotFound
|
|||||||
class Patches(object):
|
class Patches(object):
|
||||||
"""Revanced Patches."""
|
"""Revanced Patches."""
|
||||||
|
|
||||||
|
revanced_app_ids = {
|
||||||
|
"com.reddit.frontpage": ("reddit", "_reddit"),
|
||||||
|
"com.ss.android.ugc.trill": ("tiktok", "_tiktok"),
|
||||||
|
"com.twitter.android": ("twitter", "_twitter"),
|
||||||
|
"de.dwd.warnapp": ("warnwetter", "_warnwetter"),
|
||||||
|
"com.spotify.music": ("spotify", "_spotify"),
|
||||||
|
"com.awedea.nyx": ("nyx-music-player", "_nyx"),
|
||||||
|
"ginlemon.iconpackstudio": ("icon-pack-studio", "_iconpackstudio"),
|
||||||
|
"com.ticktick.task": ("ticktick", "_ticktick"),
|
||||||
|
"tv.twitch.android.app": ("twitch", "_twitch"),
|
||||||
|
"com.garzotto.pflotsh.ecmwf_a": ("pflotsh-ecmwf", "_pflotsh"),
|
||||||
|
}
|
||||||
|
revanced_extended_app_ids = {
|
||||||
|
"com.google.android.youtube": ("youtube", "_yt"),
|
||||||
|
"com.google.android.apps.youtube.music": ("youtube-music", "_ytm"),
|
||||||
|
}
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def check_java() -> None:
|
def check_java() -> None:
|
||||||
"""Check if Java17 is installed."""
|
"""Check if Java17 is installed."""
|
||||||
@@ -43,27 +60,15 @@ class Patches(object):
|
|||||||
)
|
)
|
||||||
patches = resp.json()
|
patches = resp.json()
|
||||||
|
|
||||||
revanced_app_ids = {
|
for app_name in (self.revanced_app_ids[x][1] for x in self.revanced_app_ids):
|
||||||
"com.reddit.frontpage": ("reddit", "_reddit"),
|
|
||||||
"com.ss.android.ugc.trill": ("tiktok", "_tiktok"),
|
|
||||||
"com.twitter.android": ("twitter", "_twitter"),
|
|
||||||
"de.dwd.warnapp": ("warnwetter", "_warnwetter"),
|
|
||||||
"com.spotify.music": ("spotify", "_spotify"),
|
|
||||||
"com.awedea.nyx": ("nyx-music-player", "_nyx"),
|
|
||||||
"ginlemon.iconpackstudio": ("icon-pack-studio", "_iconpackstudio"),
|
|
||||||
"com.ticktick.task": ("ticktick", "_ticktick"),
|
|
||||||
"tv.twitch.android.app": ("twitch", "_twitch"),
|
|
||||||
}
|
|
||||||
|
|
||||||
for app_name in (revanced_app_ids[x][1] for x in revanced_app_ids):
|
|
||||||
setattr(self, app_name, [])
|
setattr(self, app_name, [])
|
||||||
|
|
||||||
for patch in patches:
|
for patch in patches:
|
||||||
for compatible_package, version in [
|
for compatible_package, version in [
|
||||||
(x["name"], x["versions"]) for x in patch["compatiblePackages"]
|
(x["name"], x["versions"]) for x in patch["compatiblePackages"]
|
||||||
]:
|
]:
|
||||||
if compatible_package in revanced_app_ids:
|
if compatible_package in self.revanced_app_ids:
|
||||||
app_name = revanced_app_ids[compatible_package][1]
|
app_name = self.revanced_app_ids[compatible_package][1]
|
||||||
p = {x: patch[x] for x in ["name", "description"]}
|
p = {x: patch[x] for x in ["name", "description"]}
|
||||||
p["app"] = compatible_package
|
p["app"] = compatible_package
|
||||||
p["version"] = version[-1] if version else "all"
|
p["version"] = version[-1] if version else "all"
|
||||||
@@ -75,12 +80,8 @@ class Patches(object):
|
|||||||
|
|
||||||
resp_extended = session.get(url)
|
resp_extended = session.get(url)
|
||||||
extended_patches = resp_extended.json()
|
extended_patches = resp_extended.json()
|
||||||
revanced_extended_app_ids = {
|
|
||||||
"com.google.android.youtube": ("youtube", "_yt"),
|
|
||||||
"com.google.android.apps.youtube.music": ("youtube-music", "_ytm"),
|
|
||||||
}
|
|
||||||
for app_name in (
|
for app_name in (
|
||||||
revanced_extended_app_ids[x][1] for x in revanced_extended_app_ids
|
self.revanced_extended_app_ids[x][1] for x in self.revanced_extended_app_ids
|
||||||
):
|
):
|
||||||
setattr(self, app_name, [])
|
setattr(self, app_name, [])
|
||||||
|
|
||||||
@@ -88,17 +89,17 @@ class Patches(object):
|
|||||||
for compatible_package, version in [
|
for compatible_package, version in [
|
||||||
(x["name"], x["versions"]) for x in patch["compatiblePackages"]
|
(x["name"], x["versions"]) for x in patch["compatiblePackages"]
|
||||||
]:
|
]:
|
||||||
if compatible_package in revanced_extended_app_ids:
|
if compatible_package in self.revanced_extended_app_ids:
|
||||||
app_name = revanced_extended_app_ids[compatible_package][1]
|
app_name = self.revanced_extended_app_ids[compatible_package][1]
|
||||||
p = {x: patch[x] for x in ["name", "description"]}
|
p = {x: patch[x] for x in ["name", "description"]}
|
||||||
p["app"] = compatible_package
|
p["app"] = compatible_package
|
||||||
p["version"] = version[-1] if version else "all"
|
p["version"] = version[-1] if version else "all"
|
||||||
getattr(self, app_name).append(p)
|
getattr(self, app_name).append(p)
|
||||||
|
|
||||||
for app_name, app_id in revanced_extended_app_ids.values():
|
for app_name, app_id in self.revanced_extended_app_ids.values():
|
||||||
n_patches = len(getattr(self, app_id))
|
n_patches = len(getattr(self, app_id))
|
||||||
logger.debug(f"Total patches in {app_name} are {n_patches}")
|
logger.debug(f"Total patches in {app_name} are {n_patches}")
|
||||||
for app_name, app_id in revanced_app_ids.values():
|
for app_name, app_id in self.revanced_app_ids.values():
|
||||||
n_patches = len(getattr(self, app_id))
|
n_patches = len(getattr(self, app_id))
|
||||||
logger.debug(f"Total patches in {app_name} are {n_patches}")
|
logger.debug(f"Total patches in {app_name} are {n_patches}")
|
||||||
|
|
||||||
@@ -126,6 +127,7 @@ class Patches(object):
|
|||||||
"icon-pack-studio": "_iconpackstudio",
|
"icon-pack-studio": "_iconpackstudio",
|
||||||
"ticktick": "_ticktick",
|
"ticktick": "_ticktick",
|
||||||
"twitch": "_twitch",
|
"twitch": "_twitch",
|
||||||
|
"pflotsh-ecmwf": "_pflotsh",
|
||||||
}
|
}
|
||||||
if not (app_name := app_names.get(app)):
|
if not (app_name := app_names.get(app)):
|
||||||
raise AppNotFound(app)
|
raise AppNotFound(app)
|
||||||
|
|||||||
Reference in New Issue
Block a user