Dedupe genres parsing in beatport

This commit is contained in:
Šarūnas Nejus 2026-02-23 04:51:41 +00:00
parent 2c63fe77ce
commit 10d13992e6
No known key found for this signature in database
2 changed files with 6 additions and 10 deletions

View file

@ -234,9 +234,11 @@ class BeatportObject:
)
if "artists" in data:
self.artists = [(x["id"], str(x["name"])) for x in data["artists"]]
if "genres" in data:
genre_list = [str(x["name"]) for x in data["genres"]]
self.genres = unique_list(genre_list)
self.genres = unique_list(
x["name"]
for x in (*data.get("subGenres", []), *data.get("genres", []))
)
def artists_str(self) -> str | None:
if self.artists is not None:
@ -305,12 +307,6 @@ class BeatportTrack(BeatportObject):
self.bpm = data.get("bpm")
self.initial_key = str((data.get("key") or {}).get("shortName"))
# Extract genres list from subGenres or genres
self.genres = unique_list(
str(x.get("name"))
for x in data.get("subGenres") or data.get("genres") or []
)
class BeatportPlugin(MetadataSourcePlugin):
_client: BeatportClient | None = None

View file

@ -474,7 +474,7 @@ class BeatportTest(BeetsTestCase):
item.year = 2016
item.comp = False
item.label_name = "Gravitas Recordings"
item.genres = ["Glitch Hop"]
item.genres = ["Glitch Hop", "Breaks"]
item.year = 2016
item.month = 4
item.day = 11