diff --git a/src/music_kraken/audio_source/fetch_source.py b/src/music_kraken/audio_source/fetch_source.py index 4e3d5d2..e28479c 100644 --- a/src/music_kraken/audio_source/fetch_source.py +++ b/src/music_kraken/audio_source/fetch_source.py @@ -26,34 +26,32 @@ class Download: logger.info(f"skipping the fetching of the download links, cuz {song.target.file} already exists.") continue - sucess = False + success = False for src in AUDIO_SOURCES: res = Download.fetch_from_src(song, src) if res is not None: - sucess = True + success = True Download.add_url(res, src, id_) - if not sucess: + if not success: logger.warning(f"Didn't find any sources for {song}") @classmethod def fetch_sources(cls, songs: List[song_object], skip_existing_files: bool = False): for song in songs: - if song.target.is_set(): - if os.path.exists(song.target.file) and skip_existing_files: - logger.info(f"skipping the fetching of the download links, cuz {song.target.file} already exists.") - continue + if song.target.exists_on_disc and skip_existing_files: + logger.info(f"skipping the fetching of the download links, cuz {song.target.file} already exists.") + continue - sucess = False + success = False for src in AUDIO_SOURCES: res = cls.fetch_from_src(song, src) if res is not None: - sucess = True + success = True cls.add_url(res, src, song.id) - if not sucess: + if not success: logger.warning(f"Didn't find any sources for {song}") - @classmethod def fetch_from_src(cls, song, src): diff --git a/src/music_kraken/database/target.py b/src/music_kraken/database/target.py index 35b5a81..ae47f0f 100644 --- a/src/music_kraken/database/target.py +++ b/src/music_kraken/database/target.py @@ -25,9 +25,21 @@ class Target: if self._path is None: return None return os.path.join(MUSIC_DIR, self._path) + + def get_exists_on_disc(self) -> bool: + """ + returns True when file can be found on disc + returns False when file can't be found on disc or no filepath is set + """ + if not self.is_set(): + return False + + return os.path.exists(self.file) def is_set(self) -> bool: return not (self._file is None or self._path is None) file = property(fget=get_file, fset=set_file) path = property(fget=get_path, fset=set_path) + + exists_on_disc = property(fget=get_exists_on_disc)