mirror of
https://github.com/sotam0316/docker-py-revanced.git
synced 2026-04-25 03:48:37 +09:00
✨ Added support for building latest version
This commit is contained in:
@@ -1,4 +1,3 @@
|
|||||||
import os
|
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
@@ -36,6 +35,7 @@ apk_mirror_urls = {
|
|||||||
"twitter": f"{apk_mirror}/apk/twitter-inc/twitter/",
|
"twitter": f"{apk_mirror}/apk/twitter-inc/twitter/",
|
||||||
"tiktok": f"{apk_mirror}/apk/tiktok-pte-ltd/tik-tok-including-musical-ly/",
|
"tiktok": f"{apk_mirror}/apk/tiktok-pte-ltd/tik-tok-including-musical-ly/",
|
||||||
"warnwetter": f"{apk_mirror}/apk/deutscher-wetterdienst/warnwetter/",
|
"warnwetter": f"{apk_mirror}/apk/deutscher-wetterdienst/warnwetter/",
|
||||||
|
"youtube": f"{apk_mirror}/apk/google-inc/youtube/",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -92,26 +92,28 @@ class Downloader:
|
|||||||
sub_url = parser.css_first(".accent_color").attributes["href"]
|
sub_url = parser.css_first(".accent_color").attributes["href"]
|
||||||
break
|
break
|
||||||
if sub_url == "":
|
if sub_url == "":
|
||||||
logger.exception(f"Unable to find any apk on apkmirror on {main_page}")
|
logger.exception(
|
||||||
|
f"Unable to find any apk on apkmirror_specific_version on {main_page}"
|
||||||
|
)
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
download_url = apk_mirror + sub_url
|
download_url = apk_mirror + sub_url
|
||||||
return download_url
|
return download_url
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def apkmirror(cls, app: str, version: str) -> None:
|
def apkmirror_specific_version(cls, app: str, version: str) -> None:
|
||||||
version = "-".join(
|
version = "-".join(
|
||||||
v.zfill(2 if i else 0) for i, v in enumerate(version.split("."))
|
v.zfill(2 if i else 0) for i, v in enumerate(version.split("."))
|
||||||
)
|
)
|
||||||
logger.debug(f"Trying to download {app} version {version} apk from apkmirror")
|
logger.debug(f"Trying to download {app},version {version}")
|
||||||
main_page = f"{apk_mirror}/apk/google-inc/{app}/{app}-{version}-release/"
|
main_page = f"{apk_mirror}/apk/google-inc/{app}/{app}-{version}-release/"
|
||||||
parser = LexborHTMLParser(session.get(main_page).text)
|
parser = LexborHTMLParser(session.get(main_page).text)
|
||||||
download_page = cls.get_download_page(parser, main_page)
|
download_page = cls.get_download_page(parser, main_page)
|
||||||
cls.extract_download_link(download_page, app)
|
cls.extract_download_link(download_page, app)
|
||||||
logger.debug(f"Downloaded {app} apk from apkmirror")
|
logger.debug(f"Downloaded {app} apk from apkmirror_specific_version")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def apkmirror_reddit_twitter(cls, app: str) -> str:
|
def apkmirror_latest_version(cls, app: str) -> str:
|
||||||
logger.debug(f"Trying to download {app} apk from apkmirror in rt")
|
logger.debug(f"Trying to download {app}'s latest version from apkmirror")
|
||||||
page = apk_mirror_urls.get(app)
|
page = apk_mirror_urls.get(app)
|
||||||
if not page:
|
if not page:
|
||||||
logger.debug("Invalid app")
|
logger.debug("Invalid app")
|
||||||
@@ -128,7 +130,7 @@ class Downloader:
|
|||||||
parser = LexborHTMLParser(session.get(main_page).text)
|
parser = LexborHTMLParser(session.get(main_page).text)
|
||||||
download_page = cls.get_download_page(parser, main_page)
|
download_page = cls.get_download_page(parser, main_page)
|
||||||
cls.extract_download_link(download_page, app)
|
cls.extract_download_link(download_page, app)
|
||||||
logger.debug(f"Downloaded {app} apk from apkmirror in rt")
|
logger.debug(f"Downloaded {app} apk from apkmirror_specific_version in rt")
|
||||||
return version
|
return version
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -337,17 +339,17 @@ 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 = patches.get(app=app)
|
app_patches, version = patches.get(app=app)
|
||||||
if os.getenv(f"{app}_VERSION".upper()):
|
env_version = env.str(f"{app}_VERSION".upper(), None)
|
||||||
env_version = os.getenv(f"{app}_VERSION".upper())
|
if env_version:
|
||||||
logger.debug(f"Picked {app} version {version} from env.")
|
logger.debug(f"Picked {app} version {env_version} from env.")
|
||||||
if env_version > version:
|
if env_version == "latest" or env_version > version:
|
||||||
is_experimental = True
|
is_experimental = True
|
||||||
version = env_version
|
version = env_version
|
||||||
|
|
||||||
if "youtube" in app:
|
if "youtube" in app and version != "latest":
|
||||||
downloader.apkmirror(app, version)
|
downloader.apkmirror_specific_version(app, version)
|
||||||
else:
|
else:
|
||||||
version = downloader.apkmirror_reddit_twitter(app)
|
version = downloader.apkmirror_latest_version(app)
|
||||||
get_patches()
|
get_patches()
|
||||||
# downloader.report()
|
# downloader.report()
|
||||||
logger.debug(f"Download completed {app}")
|
logger.debug(f"Download completed {app}")
|
||||||
|
|||||||
Reference in New Issue
Block a user