@@ -1561,11 +1561,27 @@ def display_item(self, item: Optional[Dict], media_type: str) -> None:
1561
1561
runtime_str = f"{ int (runtime ) // 60 } min" if str (runtime ).isdigit () else runtime
1562
1562
year_runtime = ' | ' .join (filter (None , [str (year ), runtime_str ]))
1563
1563
widgets ['year_runtime_label' ].setText (year_runtime )
1564
-
1565
- genres = item .get ('genres' , [] )
1564
+
1565
+ genres = item .get ('genres' , '' )
1566
1566
if isinstance (genres , str ):
1567
- genres = json .loads (genres ) if genres .startswith ('[' ) else genres .split (',' )
1568
- genres_str = ", " .join (str (genre ).strip () for genre in genres if genre )
1567
+ try :
1568
+ genres = json .loads (genres )
1569
+ except json .JSONDecodeError :
1570
+ genres = [genres ]
1571
+
1572
+ if isinstance (genres , list ):
1573
+ genre_names = []
1574
+ for genre in genres :
1575
+ if isinstance (genre , dict ):
1576
+ name = genre .get ('name' , '' )
1577
+ if name :
1578
+ genre_names .append (name )
1579
+ else :
1580
+ genre_names .append (str (genre ))
1581
+ genres_str = ", " .join (genre_names )
1582
+ else :
1583
+ genres_str = str (genres )
1584
+
1569
1585
widgets ['genres_label' ].setText (genres_str )
1570
1586
1571
1587
summary = item .get ('summary' , 'No summary available' )
@@ -1584,7 +1600,7 @@ def display_item(self, item: Optional[Dict], media_type: str) -> None:
1584
1600
widgets ['genres_label' ].setText ("" )
1585
1601
widgets ['summary_text' ].setPlainText (f"Error loading item: { str (e )} " )
1586
1602
self .poster_downloader ._set_default_poster (widgets ['poster_label' ])
1587
-
1603
+
1588
1604
def show_next_recommendation (self , media_type ):
1589
1605
print (f"\n Fetching next recommendation for { media_type } " )
1590
1606
try :
0 commit comments