diff --git a/src/components/MusicPlayer.astro b/src/components/MusicPlayer.astro index 15cdd7e..0dcf0f1 100644 --- a/src/components/MusicPlayer.astro +++ b/src/components/MusicPlayer.astro @@ -7,7 +7,6 @@ interface Props { const { lb } = Astro.props; const profileUrl = `https://listenbrainz.org/user/${lb.username}`; -const embedUrl = `https://listenbrainz.org/user/${lb.username}/embed/playing-now`; function timeAgo(ts?: number): string { if (!ts) return ""; @@ -17,137 +16,202 @@ function timeAgo(ts?: number): string { if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`; return `${Math.floor(diff / 86400)}d ago`; } + +const isLive = !!lb.nowPlaying; +const hero = lb.nowPlaying ?? lb.recentTracks[0] ?? null; --- -
-
+
+ - {lb.available ? ( -
-
- +
+ {hero ? ( + <> +
+
+ +
+ +
+
+
+ + {isLive ? (<>playing) : "last played"} + +
+ {hero.trackName} — {hero.artistName} +
+
+
+ +
    + {lb.recentTracks.slice(0, 4).map((t) => ( +
  • + +
    + {t.trackName} + {t.artistName} +
    + {timeAgo(t.listenedAt)} +
  • + ))} +
+ + ) : ( +
+ No listening data yet
+ )} +
- {lb.recentTracks.length > 0 && ( -
- Recent -
    - {lb.recentTracks.slice(0, 4).map((t) => ( -
  • - {t.coverArtUrl && ( - - )} -
    - - {t.listenUrl ? ( - {t.trackName} - ) : t.trackName} - - {t.artistName} -
    - {timeAgo(t.listenedAt)} -
  • - ))} -
-
- )} - - {lb.recentTracks.length === 0 && ( -
- No recent listens yet -
- )} -
- ) : ( -
- - Connect ListenBrainz to see listening activity -
- )} + powered by ListenBrainz
- + +