🎨 Added version to cache key

This commit is contained in:
Nikhil Badyal
2025-04-19 17:56:45 +05:30
parent d48e263493
commit 2968a032cd
2 changed files with 10 additions and 9 deletions
+1 -1
View File
@@ -36,7 +36,7 @@ def main() -> None:
logger.info(f"Will Patch only {config.apps}") logger.info(f"Will Patch only {config.apps}")
# Caches for reuse # Caches for reuse
download_cache: dict[str, tuple[str, str]] = {} download_cache: dict[tuple[str, str], tuple[str, str]] = {}
resource_cache: dict[str, tuple[str, str]] = {} resource_cache: dict[str, tuple[str, str]] = {}
for possible_app in config.apps: for possible_app in config.apps:
+9 -8
View File
@@ -53,9 +53,9 @@ class APP(object):
def download_apk_for_patching( def download_apk_for_patching(
self: Self, self: Self,
config: RevancedConfig, config: RevancedConfig,
download_cache: dict[str, tuple[str, str]], download_cache: dict[tuple[str, str], tuple[str, str]],
) -> None: ) -> None:
"""Download apk to be patched, skipping if already downloaded.""" """Download apk to be patched, skipping if already downloaded (matching source and version)."""
from src.downloader.download import Downloader from src.downloader.download import Downloader
from src.downloader.factory import DownloaderFactory from src.downloader.factory import DownloaderFactory
@@ -72,17 +72,18 @@ class APP(object):
msg = f"App {self.app_name} not supported officially yet. Please provide download source in env." msg = f"App {self.app_name} not supported officially yet. Please provide download source in env."
raise DownloadError(msg) from key raise DownloadError(msg) from key
# Skip if already downloaded cache_key = (self.download_source, self.app_version)
if self.download_source in download_cache:
logger.info(f"Skipping download. Reusing APK from cache for {self.app_name}") if cache_key in download_cache:
self.download_file_name, self.download_dl = download_cache[self.download_source] logger.info(f"Skipping download. Reusing APK from cache for {self.app_name} ({self.app_version})")
self.download_file_name, self.download_dl = download_cache[cache_key]
return return
downloader = DownloaderFactory.create_downloader(config=config, apk_source=self.download_source) downloader = DownloaderFactory.create_downloader(config=config, apk_source=self.download_source)
self.download_file_name, self.download_dl = downloader.download(self.app_version, self) self.download_file_name, self.download_dl = downloader.download(self.app_version, self)
# Save to cache # Save to cache using (source, version) tuple
download_cache[self.download_source] = (self.download_file_name, self.download_dl) download_cache[cache_key] = (self.download_file_name, self.download_dl)
def get_output_file_name(self: Self) -> str: def get_output_file_name(self: Self) -> str:
"""The function returns a string representing the output file name. """The function returns a string representing the output file name.