diff --git a/app/lib/playlistlib.py b/app/lib/playlistlib.py index d609496..f6a5a50 100644 --- a/app/lib/playlistlib.py +++ b/app/lib/playlistlib.py @@ -145,7 +145,11 @@ def get_recently_added_playlist(cutoff: int = 14): ) tracks = get_recent_tracks(cutoff) - date = datetime.fromtimestamp(tracks[0].created_date) + try: + date = datetime.fromtimestamp(tracks[0].created_date) + except IndexError: + return playlist, [] + playlist.last_updated = date_string_to_time_passed(create_new_date(date)) images = get_first_4_images(tracks=tracks) diff --git a/app/lib/populate.py b/app/lib/populate.py index 95d6109..ade38c7 100644 --- a/app/lib/populate.py +++ b/app/lib/populate.py @@ -92,6 +92,10 @@ class Populate: tried_to_download_new_images = False + ArtistStore.load_artists(instance_key) + AlbumStore.load_albums(instance_key) + TrackStore.load_all_tracks(instance_key) + if has_connection(): tried_to_download_new_images = True try: @@ -114,8 +118,6 @@ class Populate: log.warn(e) return - ArtistStore.load_artists(instance_key) - @staticmethod def remove_modified(tracks: Generator[Track, None, None]): """ diff --git a/app/models/track.py b/app/models/track.py index 0cc9ef5..ee84f18 100644 --- a/app/models/track.py +++ b/app/models/track.py @@ -50,7 +50,10 @@ class Track: created_date: float = 0.0 def set_created_date(self): - self.created_date = Path(self.filepath).stat().st_ctime + try: + self.created_date = Path(self.filepath).stat().st_ctime + except FileNotFoundError: + pass def __post_init__(self): self.og_title = self.title diff --git a/app/plugins/lyrics.py b/app/plugins/lyrics.py index 76024dd..3f5f494 100644 --- a/app/plugins/lyrics.py +++ b/app/plugins/lyrics.py @@ -76,7 +76,7 @@ class LyricsProvider(LRCProvider): try: response = self.session.get(url, params=query, timeout=10) - except requests.exceptions.ConnectionError: + except: return None if response is not None and response.ok: diff --git a/app/store/albums.py b/app/store/albums.py index 693a6de..c2b5b5d 100644 --- a/app/store/albums.py +++ b/app/store/albums.py @@ -37,6 +37,7 @@ class AlbumStore: cls.albums = [] + print("Loading albums... ", end="") tracks = remove_duplicates(TrackStore.tracks) tracks = sorted(tracks, key=lambda t: t.albumhash) grouped = groupby(tracks, lambda t: t.albumhash) @@ -72,6 +73,8 @@ class AlbumStore: _al.set_colors(colors) break + print("Done!") + @classmethod def add_album(cls, album: Album): """ diff --git a/app/store/artists.py b/app/store/artists.py index 85a82cc..c23271b 100644 --- a/app/store/artists.py +++ b/app/store/artists.py @@ -23,7 +23,7 @@ class ArtistStore: global ARTIST_LOAD_KEY ARTIST_LOAD_KEY = instance_key - print("Loading artists... ", end=" ") + print("Loading artists... ", end="") cls.artists = get_all_artists(TrackStore.tracks, AlbumStore.albums) print("Done!") for artist in ardb.get_all_artists(): diff --git a/app/store/tracks.py b/app/store/tracks.py index ca7e3cb..034a901 100644 --- a/app/store/tracks.py +++ b/app/store/tracks.py @@ -18,6 +18,8 @@ class TrackStore: """ Loads all tracks from the database into the store. """ + + print("Loading tracks... ", end="") global TRACKS_LOAD_KEY TRACKS_LOAD_KEY = instance_key @@ -26,14 +28,15 @@ class TrackStore: fav_hashes = favdb.get_fav_tracks() fav_hashes = " ".join([t[1] for t in fav_hashes]) - print("\n") # adds space between progress bars and startup info - for track in tqdm(cls.tracks, desc="Loading tracks"): + for track in cls.tracks: if instance_key != TRACKS_LOAD_KEY: return if track.trackhash in fav_hashes: track.is_favorite = True + print("Done!") + @classmethod def add_track(cls, track: Track): """