From 16de2448428c50437e6850077d2afa97da3d4c4a Mon Sep 17 00:00:00 2001 From: Samuel Scherrer Date: Tue, 20 Jul 2021 23:09:24 +0200 Subject: [PATCH] fixes for bad tags --- bin/mpdevil | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/bin/mpdevil b/bin/mpdevil index 18480a7..e605fe8 100755 --- a/bin/mpdevil +++ b/bin/mpdevil @@ -795,7 +795,7 @@ class Client(MPDClient): genre_filter=("genre", genre) album_candidates=self.comp_list("album", artist_type, artist, *genre_filter) for album in album_candidates: - years=self.comp_list("date", "album", album, artist_type, artist) + years=self.comp_list("date", "album", album, artist_type, artist, *genre_filter) for year in years: songs=self.find("album", album, "date", year, artist_type, artist, *genre_filter) cover_path=self.get_cover_path(songs[0]) @@ -2359,10 +2359,18 @@ class AlbumWindow(FocusFrame): duration=ClientHelper.calc_display_duration(album["songs"]) length=len(album["songs"]) discs=album["songs"][-1].get("disc", 1) - if type(discs) == list: - discs=int(discs[0]) - else: - discs=int(discs) + if not isinstance(discs, int): + if isinstance(discs, list): + discs=int(discs[0]) + elif isinstance(discs, str): + if discs.isdigit(): + discs=int(discs) + elif "/" in discs: + # disc fields sometimes are "/" + discs=int(discs.split("/")[1]) + else: + # choose the default value if we can not convert to int + discs=1 if discs > 1: tooltip=_("{number} songs on {discs} discs ({duration})").format( number=length, discs=discs, duration=duration)