beatport: BeatportTrack dataclass con display + spotify_query

This commit is contained in:
luciano committed 2026-07-14 16:18:38 +02:00
1 parent 70cdfe8983
commit 4221a5992b
2 files changed
+64

No files matched your search

+25
View File
@@ -7,6 +7,31 @@ Vedi docs/superpowers/specs/2026-07-14-beatport-charts-design.md.
from __future__ import annotations
from dataclasses import dataclass
@dataclass(frozen=True)
class BeatportTrack:
position: int
title: str
mix: str # es. "Extended Mix", "Original Mix", ""
artists: str # es. "A, B & C" già formattato
duration_sec: int
beatport_id: int
@property
def display(self) -> str:
"""Formato testo compatibile coi file .txt curati a mano:
'Artista – Titolo (Mix) (M:SS)'."""
m, s = divmod(self.duration_sec, 60)
return f"{self.artists} – {self.title} ({self.mix}) ({m}:{s:02d})"
@property
def spotify_query(self) -> str:
"""Query pura per la search Spotify (senza mix name, che disturba
il matching su titoli tipo 'Extended Mix')."""
return f"{self.artists} {self.title}"
# Mappa slug URL Beatport -> (numeric_id, display_name)
# Enumerata via scripts/refresh_beatport_genres.py (Task 1).