mirror of
https://github.com/sotam0316/docker-py-revanced.git
synced 2026-04-25 03:48:37 +09:00
✨ Added Spotify Support
This commit is contained in:
@@ -111,6 +111,7 @@ By default, script build the version as recommended by Revanced team.
|
|||||||
4. reddit
|
4. reddit
|
||||||
5. tiktok
|
5. tiktok
|
||||||
6. warnwetter
|
6. warnwetter
|
||||||
|
7. Spotify
|
||||||
2. If you want to build a specific version . Add `version` in `environment` in the
|
2. If you want to build a specific version . Add `version` in `environment` in the
|
||||||
format
|
format
|
||||||
```ini
|
```ini
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ supported_apps = [
|
|||||||
"reddit",
|
"reddit",
|
||||||
"tiktok",
|
"tiktok",
|
||||||
"warnwetter",
|
"warnwetter",
|
||||||
|
"spotify",
|
||||||
]
|
]
|
||||||
apps = env.list("PATCH_APPS", supported_apps)
|
apps = env.list("PATCH_APPS", supported_apps)
|
||||||
build_extended = env.bool("BUILD_EXTENDED", False)
|
build_extended = env.bool("BUILD_EXTENDED", False)
|
||||||
@@ -59,6 +60,7 @@ apk_mirror_version_urls = {
|
|||||||
"youtube": f"{apk_mirror_urls.get('youtube')}youtube",
|
"youtube": f"{apk_mirror_urls.get('youtube')}youtube",
|
||||||
"youtube_music": f"{apk_mirror_urls.get('youtube_music')}youtube-music",
|
"youtube_music": f"{apk_mirror_urls.get('youtube_music')}youtube-music",
|
||||||
}
|
}
|
||||||
|
upto_down = ["spotify"]
|
||||||
|
|
||||||
|
|
||||||
class Downloader(object):
|
class Downloader(object):
|
||||||
@@ -121,6 +123,17 @@ class Downloader(object):
|
|||||||
download_url = apk_mirror + sub_url
|
download_url = apk_mirror + sub_url
|
||||||
return download_url
|
return download_url
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def upto_down_downloader(cls, app: str) -> str:
|
||||||
|
page = "https://spotify.en.uptodown.com/android/download"
|
||||||
|
parser = LexborHTMLParser(session.get(page).text)
|
||||||
|
main_page = parser.css_first("#detail-download-button")
|
||||||
|
download_url = main_page.attributes["data-url"]
|
||||||
|
app_version = parser.css_first(".version").text()
|
||||||
|
cls._download(download_url, "spotify.apk")
|
||||||
|
logger.debug(f"Downloaded {app} apk from apkmirror_specific_version in rt")
|
||||||
|
return app_version
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def apkmirror_specific_version(cls, app: str, version: str) -> str:
|
def apkmirror_specific_version(cls, app: str, version: str) -> str:
|
||||||
logger.debug(f"Trying to download {app},specific version {version}")
|
logger.debug(f"Trying to download {app},specific version {version}")
|
||||||
@@ -195,6 +208,7 @@ class Patches(object):
|
|||||||
"com.ss.android.ugc.trill": ("tiktok", "_tiktok"),
|
"com.ss.android.ugc.trill": ("tiktok", "_tiktok"),
|
||||||
"com.twitter.android": ("twitter", "_twitter"),
|
"com.twitter.android": ("twitter", "_twitter"),
|
||||||
"de.dwd.warnapp": ("warnwetter", "_warnwetter"),
|
"de.dwd.warnapp": ("warnwetter", "_warnwetter"),
|
||||||
|
"com.spotify.music": ("spotify", "_spotify"),
|
||||||
}
|
}
|
||||||
|
|
||||||
for app_name in (revanced_app_ids[x][1] for x in revanced_app_ids):
|
for app_name in (revanced_app_ids[x][1] for x in revanced_app_ids):
|
||||||
@@ -254,6 +268,7 @@ class Patches(object):
|
|||||||
"warnwetter": "_warnwetter",
|
"warnwetter": "_warnwetter",
|
||||||
"youtube": "_yt",
|
"youtube": "_yt",
|
||||||
"youtube_music": "_ytm",
|
"youtube_music": "_ytm",
|
||||||
|
"spotify": "_spotify",
|
||||||
}
|
}
|
||||||
if not (app_name := app_names.get(app)):
|
if not (app_name := app_names.get(app)):
|
||||||
logger.debug("Invalid app name")
|
logger.debug("Invalid app name")
|
||||||
@@ -370,6 +385,10 @@ def download_revanced(downloader: Type[Downloader]) -> None:
|
|||||||
logger.info("Downloaded revanced microG ,cli, integrations and patches.")
|
logger.info("Downloaded revanced microG ,cli, integrations and patches.")
|
||||||
|
|
||||||
|
|
||||||
|
def upto_down_downloader(app: str, downloader: Type[Downloader]) -> str:
|
||||||
|
return downloader.upto_down_downloader(app)
|
||||||
|
|
||||||
|
|
||||||
def download_from_apkmirror(
|
def download_from_apkmirror(
|
||||||
version: str, app: str, downloader: Type[Downloader]
|
version: str, app: str, downloader: Type[Downloader]
|
||||||
) -> str:
|
) -> str:
|
||||||
@@ -379,6 +398,13 @@ def download_from_apkmirror(
|
|||||||
return downloader.apkmirror_latest_version(app)
|
return downloader.apkmirror_latest_version(app)
|
||||||
|
|
||||||
|
|
||||||
|
def download_apk_to_patch(version: str, app: str, downloader: Type[Downloader]) -> str:
|
||||||
|
if app in upto_down:
|
||||||
|
return upto_down_downloader(app, downloader)
|
||||||
|
else:
|
||||||
|
return download_from_apkmirror(version, app, downloader)
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def main() -> None:
|
||||||
patches = pre_requisite()
|
patches = pre_requisite()
|
||||||
downloader = Downloader
|
downloader = Downloader
|
||||||
@@ -417,7 +443,7 @@ def main() -> None:
|
|||||||
arg_parser = ArgParser()
|
arg_parser = ArgParser()
|
||||||
logger.debug("Trying to build %s" % app)
|
logger.debug("Trying to build %s" % app)
|
||||||
app_patches, version, is_experimental = get_patches_version()
|
app_patches, version, is_experimental = get_patches_version()
|
||||||
version = download_from_apkmirror(version, app, downloader)
|
version = download_apk_to_patch(version, app, downloader)
|
||||||
get_patches()
|
get_patches()
|
||||||
logger.debug(f"Downloaded {app}, version {version}")
|
logger.debug(f"Downloaded {app}, version {version}")
|
||||||
arg_parser.run(app=app, version=version, is_experimental=is_experimental)
|
arg_parser.run(app=app, version=version, is_experimental=is_experimental)
|
||||||
|
|||||||
Reference in New Issue
Block a user