Merge pull request #21 from nikhilbadyal/spotify

 Added Spotify Support
This commit is contained in:
Nikhil Badyal
2022-10-01 14:03:27 +05:30
committed by GitHub
2 changed files with 28 additions and 1 deletions
+1
View File
@@ -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
+27 -1
View File
@@ -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)