mirror of
https://github.com/sotam0316/docker-py-revanced.git
synced 2026-04-25 11:58:37 +09:00
37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
"""Downloader Factory."""
|
|
from src.config import RevancedConfig
|
|
from src.downloader.apkmirror import ApkMirror
|
|
from src.downloader.apkpure import ApkPure
|
|
from src.downloader.apksos import ApkSos
|
|
from src.downloader.download import Downloader
|
|
from src.downloader.github import Github
|
|
from src.downloader.sources import APK_MIRROR_BASE_URL, APK_PURE_BASE_URL, APKS_SOS_BASE_URL, GITHUB_BASE_URL
|
|
from src.downloader.uptodown import UptoDown
|
|
from src.exceptions import DownloadError
|
|
|
|
|
|
class DownloaderFactory(object):
|
|
"""Downloader Factory."""
|
|
|
|
@staticmethod
|
|
def create_downloader(config: RevancedConfig, apk_source: str) -> Downloader:
|
|
"""Returns appropriate downloader.
|
|
|
|
Args:
|
|
----
|
|
config : Config
|
|
apk_source : Source URL for APK
|
|
"""
|
|
if apk_source.startswith(GITHUB_BASE_URL):
|
|
return Github(config)
|
|
if apk_source.startswith(APK_PURE_BASE_URL):
|
|
return ApkPure(config)
|
|
if apk_source.startswith(APKS_SOS_BASE_URL):
|
|
return ApkSos(config)
|
|
if apk_source.endswith("en.uptodown.com/android"):
|
|
return UptoDown(config)
|
|
if apk_source.startswith(APK_MIRROR_BASE_URL):
|
|
return ApkMirror(config)
|
|
msg = "No download factory found."
|
|
raise DownloadError(msg)
|