feat(now-playing): redesign page as info dashboard (#266)

Replace the flat Now Playing page with a two-column dashboard: hero
(cover, metadata, badges, Last.fm stats + love button, release-age
tagline), and a grid of themed cards (Album tracklist with sliding
window, most-played-by-artist, credits, about-the-artist with Last.fm
bio fallback, compact discography contact-sheet with expand, upcoming
tours via Bandsintown). Adds lastfmGetTrackInfo + lastfmGetArtistStats
for global listener counts + userplaycount, plus Last.fm love/unlove
wired to the new hero button. Module-level TTL caches per entity keep
same-artist track switches instant. Artist-image guard filters the
well-known Last.fm no-image placeholder so the card collapses cleanly
when no real image exists.

Co-authored-by: Psychotoxical <dev@psysonic.app>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Frank Stellmacher
2026-04-22 20:30:09 +02:00
committed by GitHub
parent f0e5b2542b
commit b4f31e0954
11 changed files with 1671 additions and 325 deletions
+28
View File
@@ -94,6 +94,34 @@ export const ruTranslation = {
showLess: 'Свернуть',
genreInfo: 'Жанр',
trackInfo: 'О треке',
topSongs: 'Самое популярное у этого исполнителя',
topSongsCredit: 'Топ-треки исполнителя {{name}}',
trackPosition: 'Трек {{pos}}',
playsCount_one: '{{count}} прослушивание',
playsCount_few: '{{count}} прослушивания',
playsCount_many: '{{count}} прослушиваний',
playsCount_other: '{{count}} прослушиваний',
releasedYearsAgo_one: '{{count}} год назад',
releasedYearsAgo_few: '{{count}} года назад',
releasedYearsAgo_many: '{{count}} лет назад',
releasedYearsAgo_other: '{{count}} лет назад',
discography: 'Дискография',
lastfmStats: 'Статистика Last.fm',
thisTrack: 'Этот трек',
thisArtist: 'Этот исполнитель',
listeners: 'слушателей',
scrobbles: 'прослушиваний',
yourScrobbles: 'вами',
listenersN: '{{n}} слушателей',
scrobblesN: '{{n}} прослушиваний',
playsByYouN: 'прослушано вами {{n}}×',
openTrackOnLastfm: 'Трек на Last.fm',
openArtistOnLastfm: 'Исполнитель на Last.fm',
rgTrackTooltip: 'ReplayGain (трек)',
rgAlbumTooltip: 'ReplayGain (альбом)',
rgAutoTooltip: 'ReplayGain (авто)',
showMoreTracks: 'Показать ещё {{count}}',
showLessTracks: 'Свернуть',
},
contextMenu: {
playNow: 'Играть сейчас',