@@ -222,26 +222,30 @@ def convert_and_sort_track_list(self, db, track_list, sort_mode):
222222 else :
223223 col2_name = sort_mode
224224 for track in track_list :
225- if col2_name in ["title" , "artist" ]:
226- col2_item = db .get_artist (track .artist_id ).name if track .artist_id > 0 else ""
227- elif col2_name == "album" :
228- col2_item = db .get_album (track .album_id ).name if track .album_id > 0 else ""
229- elif col2_name == "genre" :
230- col2_item = db .get_genre (track .genre_id ).name if track .genre_id > 0 else ""
231- elif col2_name == "label" :
232- col2_item = db .get_label (track .label_id ).name if track .label_id > 0 else ""
233- elif col2_name == "original_artist" :
234- col2_item = db .get_artist (track .original_artist_id ).name if track .original_artist_id > 0 else ""
235- elif col2_name == "remixer" :
236- col2_item = db .get_artist (track .remixer_id ).name if track .remixer_id > 0 else ""
237- elif col2_name == "key" :
238- col2_item = db .get_key (track .key_id ).name if track .key_id > 0 else ""
239- elif col2_name == "bpm" :
240- col2_item = track .bpm_100 / 100
241- elif col2_name in ["rating" , "comment" , "duration" , "bitrate" , "play_count" ]: # 1:1 mappings
242- col2_item = track [col2_name ]
243- else :
244- raise dataprovider .FatalQueryError ("unknown sort mode {}" .format (sort_mode ))
225+ try :
226+ if col2_name in ["title" , "artist" ]:
227+ col2_item = db .get_artist (track .artist_id ).name if track .artist_id > 0 else ""
228+ elif col2_name == "album" :
229+ col2_item = db .get_album (track .album_id ).name if track .album_id > 0 else ""
230+ elif col2_name == "genre" :
231+ col2_item = db .get_genre (track .genre_id ).name if track .genre_id > 0 else ""
232+ elif col2_name == "label" :
233+ col2_item = db .get_label (track .label_id ).name if track .label_id > 0 else ""
234+ elif col2_name == "original_artist" :
235+ col2_item = db .get_artist (track .original_artist_id ).name if track .original_artist_id > 0 else ""
236+ elif col2_name == "remixer" :
237+ col2_item = db .get_artist (track .remixer_id ).name if track .remixer_id > 0 else ""
238+ elif col2_name == "key" :
239+ col2_item = db .get_key (track .key_id ).name if track .key_id > 0 else ""
240+ elif col2_name == "bpm" :
241+ col2_item = track .bpm_100 / 100
242+ elif col2_name in ["rating" , "comment" , "duration" , "bitrate" , "play_count" ]: # 1:1 mappings
243+ col2_item = track [col2_name ]
244+ else :
245+ raise dataprovider .FatalQueryError ("unknown sort mode {}" .format (sort_mode ))
246+ except KeyError as e :
247+ logging .warning (f'Broken database: { e } ' )
248+ col2_item = "?"
245249 converted += [{
246250 "title" : track .title ,
247251 col2_name : col2_item ,
0 commit comments