From eddba584f1d0f5d02e77aaa47dd12ffe6e639bb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0ar=C5=ABnas=20Nejus?= Date: Thu, 2 Apr 2026 19:27:31 +0100 Subject: [PATCH] Handle single lyricist in TrackInfo --- beets/autotag/hooks.py | 8 ++++++-- beets/test/_common.py | 2 +- test/autotag/test_hooks.py | 3 +++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/beets/autotag/hooks.py b/beets/autotag/hooks.py index 4288997c0..92efbe989 100644 --- a/beets/autotag/hooks.py +++ b/beets/autotag/hooks.py @@ -394,6 +394,10 @@ class TrackInfo(Info): self["remixers"] = self._get_list_from_string_value( "remixer", "remixers", value, self["remixers"] ) + if key == "lyricist": + self["lyricists"] = self._get_list_from_string_value( + "lyricist", "lyricists", value, self["lyricists"] + ) else: super().__setitem__(key, value) @@ -438,7 +442,7 @@ class TrackInfo(Info): index: int | None = None, initial_key: str | None = None, length: float | None = None, - lyricist: str | None = None, + lyricists: list[str] | None = None, mb_workid: str | None = None, medium: int | None = None, medium_index: int | None = None, @@ -460,7 +464,7 @@ class TrackInfo(Info): self.index = index self.initial_key = initial_key self.length = length - self.lyricist = lyricist + self.lyricists = lyricists self.mb_workid = mb_workid self.medium = medium self.medium_index = medium_index diff --git a/beets/test/_common.py b/beets/test/_common.py index b3c21aaa5..936b70214 100644 --- a/beets/test/_common.py +++ b/beets/test/_common.py @@ -76,7 +76,7 @@ def item(lib=None, **kwargs): albumartist="the album artist", album="the album", genres=["the genre"], - lyricist="the lyricist", + lyricists=["the lyricist"], composer="the composer", arranger="the arranger", grouping="the grouping", diff --git a/test/autotag/test_hooks.py b/test/autotag/test_hooks.py index 301dd7356..039622326 100644 --- a/test/autotag/test_hooks.py +++ b/test/autotag/test_hooks.py @@ -131,6 +131,7 @@ class ApplyTest(BeetsTestCase): "sortLast2, sortFirst2", ], genres=["Rock"], + lyricist="trackLyricist1, trackLyricist2", remixer="trackRemixer1, trackRemixer2", ), TrackInfo( @@ -140,6 +141,7 @@ class ApplyTest(BeetsTestCase): medium_index=1, index=2, medium_total=1, + lyricists=["trackLyricist1", "trackLyricist2"], remixers=["trackRemixer1", "trackRemixer2"], ), ], @@ -185,6 +187,7 @@ class ApplyTest(BeetsTestCase): "mb_artistid": "a6623d39-2d8e-4f70-8242-0a9553b91e50", "mb_artistids": ["a6623d39-2d8e-4f70-8242-0a9553b91e50"], "remixers": ["trackRemixer1", "trackRemixer2"], + "lyricists": ["trackLyricist1", "trackLyricist2"], "tracktotal": 2, "year": 2013, "month": 12,