diff --git a/packages/tourmaline/src/lib/analysis/aggregator.ts b/packages/tourmaline/src/lib/analysis/aggregator.ts index 792b8f2..3d1801e 100644 --- a/packages/tourmaline/src/lib/analysis/aggregator.ts +++ b/packages/tourmaline/src/lib/analysis/aggregator.ts @@ -11,6 +11,7 @@ export interface AggregatedData { topTracks: Array<{ name: string; artist: string; count: number }>; topAlbums: Array<{ name: string; artist: string; count: number }>; artistPlayCounts: Map; + /** trackKey ("name|||artist1,artist2") → play count — same key as trackFirstListen. */ trackPlayCounts: Map; albumPlayCounts: Map; scrobblesByHour: number[]; @@ -380,7 +381,7 @@ export class Aggregator { topAlbums, artistPlayCounts: this.artistCounts, trackPlayCounts: new Map( - [...this.trackCounts.values()].map((t) => [t.name, t.count]), + [...this.trackCounts.entries()].map(([key, t]) => [key, t.count]), ), albumPlayCounts: this.albumCounts, scrobblesByHour: [...this.byHour], diff --git a/packages/tourmaline/src/lib/analysis/discovery.ts b/packages/tourmaline/src/lib/analysis/discovery.ts index 083e212..27304eb 100644 --- a/packages/tourmaline/src/lib/analysis/discovery.ts +++ b/packages/tourmaline/src/lib/analysis/discovery.ts @@ -40,7 +40,7 @@ export function buildDiscoveredTracks( name, artist, firstListen, - count: data.trackPlayCounts.get(name) ?? 0, + count: data.trackPlayCounts.get(key) ?? 0, }; }) .sort((a, b) => b.firstListen.localeCompare(a.firstListen))