Skip to content

Commit 21a6456

Browse files
Fix handling of commas and semicolons in artist join
1 parent 5a1cc08 commit 21a6456

File tree

2 files changed

+19
-14
lines changed

2 files changed

+19
-14
lines changed

beetsplug/discogs.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,11 @@ def _join_artist(self, base: str, artist: str, join: str) -> str:
476476
base = artist
477477
else:
478478
if join:
479-
base += f" {join} "
479+
join = join.strip()
480+
if join in ";,":
481+
base += f"{join} "
482+
else:
483+
base += f" {join} "
480484
else:
481485
base += ", "
482486
base += artist

test/plugins/test_discogs.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -464,14 +464,14 @@ def test_strip_disambiguation_false(self):
464464
"track_artist_anv,track_artist,track_artists",
465465
[
466466
(False, "ARTIST Feat. PERFORMER", ["ARTIST", "PERFORMER"]),
467-
(True, "VARIATION Feat. VARIATION", ["VARIATION", "VARIATION"]),
467+
(True, "ART Feat. PERF", ["ART", "PERF"]),
468468
],
469469
)
470470
@pytest.mark.parametrize(
471471
"album_artist_anv,album_artist,album_artists",
472472
[
473-
(False, "ARTIST & SOLOIST", ["ARTIST", "SOLOIST"]),
474-
(True, "VARIATION & VARIATION", ["VARIATION", "VARIATION"]),
473+
(False, "DRUMMER, ARTIST & SOLOIST", ["DRUMMER", "ARTIST", "SOLOIST"]),
474+
(True, "DRUM, ARTY & SOLO", ["DRUM", "ARTY", "SOLO"]),
475475
],
476476
)
477477
@pytest.mark.parametrize(
@@ -484,15 +484,15 @@ def test_strip_disambiguation_false(self):
484484
False,
485485
"ARTIST Feat. PERFORMER",
486486
["ARTIST", "PERFORMER"],
487-
"ARTIST & SOLOIST",
488-
["ARTIST", "SOLOIST"],
487+
"DRUMMER, ARTIST & SOLOIST",
488+
["DRUMMER", "ARTIST", "SOLOIST"],
489489
),
490490
(
491491
True,
492-
"VARIATION Feat. VARIATION",
493-
["VARIATION", "VARIATION"],
494-
"VARIATION & VARIATION",
495-
["VARIATION", "VARIATION"],
492+
"ART Feat. PERF",
493+
["ART", "PERF"],
494+
"DRUM, ARTY & SOLO",
495+
["DRUM", "ARTY", "SOLO"],
496496
),
497497
],
498498
)
@@ -524,23 +524,24 @@ def test_anv(
524524
{
525525
"name": "ARTIST",
526526
"tracks": "",
527-
"anv": "VARIATION",
527+
"anv": "ART",
528528
"id": 11146,
529529
}
530530
],
531531
"extraartists": [
532532
{
533533
"name": "PERFORMER",
534534
"role": "Featuring",
535-
"anv": "VARIATION",
535+
"anv": "PERF",
536536
"id": 787,
537537
}
538538
],
539539
}
540540
],
541541
"artists": [
542-
{"name": "ARTIST (4)", "anv": "VARIATION", "id": 321, "join": "&"},
543-
{"name": "SOLOIST", "anv": "VARIATION", "id": 445, "join": ""},
542+
{"name": "DRUMMER", "anv": "DRUM", "id": 445, "join": ", "},
543+
{"name": "ARTIST (4)", "anv": "ARTY", "id": 321, "join": "&"},
544+
{"name": "SOLOIST", "anv": "SOLO", "id": 445, "join": ""},
544545
],
545546
"title": "title",
546547
}

0 commit comments

Comments
 (0)