diff --git a/cli.py b/cli.py index 62c16f6..e4d2948 100644 --- a/cli.py +++ b/cli.py @@ -93,11 +93,6 @@ def parse_args(args): "products/bundle download page. Can set multiple" ), ) - parser.add_argument( - "--rebuild-cache", - action="store_true", - help="Rebuild cache by checking all existing files in library", - ) return parser.parse_args(args) @@ -118,5 +113,4 @@ def cli(): purchase_keys=cli_args.keys, trove=cli_args.trove, update=cli_args.update, - rebuild_cache=cli_args.rebuild_cache, ).start() diff --git a/download_library.py b/download_library.py index 458dd6b..fe55cc9 100644 --- a/download_library.py +++ b/download_library.py @@ -34,7 +34,6 @@ class DownloadLibrary: purchase_keys=None, trove=False, update=False, - rebuild_cache=False, ): self.library_path = library_path self.progress_bar = progress_bar @@ -53,7 +52,6 @@ class DownloadLibrary: self.purchase_keys = purchase_keys self.trove = trove self.update = update - self.rebuild_cache = rebuild_cache self.session = requests.Session() if cookie_path: @@ -73,12 +71,6 @@ class DownloadLibrary: def start(self): self.cache_file = os.path.join(self.library_path, ".cache.json") self.cache_data = self._load_cache_data(self.cache_file) - - # If rebuild_cache is requested, clear the cache - if self.rebuild_cache: - logger.warning("Rebuilding cache from existing files...") - self.cache_data = {} - self.purchase_keys = ( self.purchase_keys if self.purchase_keys else self._get_purchase_keys() ) @@ -150,31 +142,19 @@ class DownloadLibrary: # Do not care about checking for updates at this time continue - # Determine file paths - product_folder = os.path.join(self.library_path, "Humble Trove", title) - local_filename = os.path.join(product_folder, web_name) - - # If no cache entry exists, check if file physically exists - if cache_file_info == {}: - existing_file_mtime = self._file_exists_in_library(local_filename) - if existing_file_mtime is not None and self.update is not True: - logger.info( - "Trove file exists but not in cache, adding to cache: {filename}".format( - filename=web_name - ) - ) - # Add to cache with current file info - self._update_cache_data(cache_file_key, file_info) - continue - if file_info["uploaded_at"] != cache_file_info.get( "uploaded_at" ) and file_info["md5"] != cache_file_info.get("md5"): + product_folder = os.path.join(self.library_path, "Humble Trove", title) # Create directory to save the files to try: os.makedirs(product_folder) except OSError: pass + local_filename = os.path.join( + product_folder, + web_name, + ) signed_url = self._get_trove_download_url( download["machine_name"], web_name, @@ -472,21 +452,6 @@ class DownloadLibrary: # Do not care about checking for updates at this time raise FileExistsError - # If no cache entry exists, check if file physically exists - local_file = os.path.join(local_folder, local_filename) - if cache_file_info == {}: - existing_file_mtime = self._file_exists_in_library(local_file) - if existing_file_mtime is not None and self.update is not True: - logger.info( - "File exists but not in cache, adding to cache: {filename}".format( - filename=local_filename - ) - ) - # Add to cache with file modification time - file_info = {"url_last_modified": existing_file_mtime} - self._update_cache_data(cache_file_key, file_info) - raise FileExistsError - try: remote_file_r = self.session.get(remote_file, stream=True) except Exception: @@ -635,16 +600,6 @@ class DownloadLibrary: return cache_data - def _file_exists_in_library(self, local_file): - """ - Check if a file exists in the library and return its modification time - formatted as HTTP Last-Modified header if it does. - """ - if os.path.isfile(local_file): - mtime = os.path.getmtime(local_file) - return time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(mtime)) - return None - def _get_purchase_keys(self): try: library_r = self.session.get("https://www.humblebundle.com/home/library") diff --git a/humblebundle-download.py b/humblebundle-download.py index 1d59dac..bc603bc 100644 --- a/humblebundle-download.py +++ b/humblebundle-download.py @@ -102,11 +102,6 @@ def parse_args(args): "products/bundle download page. Can set multiple" ), ) - parser.add_argument( - "--rebuild-cache", - action="store_true", - help="Rebuild cache by checking all existing files in library", - ) return parser.parse_args(args) @@ -127,7 +122,6 @@ def main(): purchase_keys=cli_args.keys, trove=cli_args.trove, update=cli_args.update, - rebuild_cache=cli_args.rebuild_cache, ).start()