diff --git a/ui.ts b/ui.ts index 6228ccb..693ba91 100644 --- a/ui.ts +++ b/ui.ts @@ -293,14 +293,29 @@ function render(f,append){ var type=s.resultType||'song'; var playable=s.videoId&&(type==='song'||type==='video'); var click=''; - if(playable){click='play('+i+')';} - else if(type==='artist'&&s.browseId){click='viewArtist("'+s.browseId+'")';} - else if(type==='album'&&s.browseId){click='viewAlbum("'+s.browseId+'")';} - else if(type==='playlist'&&(s.browseId||s.playlistId)){click='viewPlaylist("'+(s.playlistId||s.browseId)+'")';} - else if(s.browseId){click='viewArtist("'+s.browseId+'")';} + // Check browseId prefix to determine actual type + var bid=s.browseId||''; + var isPlaylist=bid.startsWith('VL')||bid.startsWith('RDCLAK')||type==='playlist'; + var isAlbum=bid.startsWith('MPRE')&&!isPlaylist; + var isArtist=bid.startsWith('UC')||type==='artist'; + + if(playable){ + click='play('+i+')'; + }else if(isPlaylist&&bid){ + click="viewPlaylist('"+bid+"')"; + type='playlist'; + }else if(isAlbum&&bid){ + click="viewAlbum('"+bid+"')"; + type='album'; + }else if(isArtist&&bid){ + click="viewArtist('"+bid+"')"; + type='artist'; + }else if(bid){ + click="viewArtist('"+bid+"')"; + } var img=s.thumbnails?.[0]?.url||(s.videoId?'https://img.youtube.com/vi/'+s.videoId+'/mqdefault.jpg':''); var badge=type!=='song'&&type!=='video'?''+type+'':''; - return '