Skip to content

Commit

Permalink
fix: use composer from works if available
Browse files Browse the repository at this point in the history
  • Loading branch information
hairmare committed May 21, 2023
1 parent 32c2a7d commit 9bee5ec
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 4 deletions.
18 changes: 16 additions & 2 deletions suisa_sendemeldung/suisa_sendemeldung.py
Original file line number Diff line number Diff line change
Expand Up @@ -505,8 +505,22 @@ def get_csv(data, station_name=""):
artist = get_artist(music)

composer = ", ".join(music.get("contributors", {}).get("composers", ""))
if not composer:
composer = artist
works_composer = ", ".join(
[
c["name"]
for c in [
item
for sublist in [w["creators"] for w in music.get("works", [])]
for item in sublist
]
if c.get("role", "") in ["C", "Composer", "W", "Writer"]
]
)
if works_composer:
if not composer:
composer = works_composer
elif composer == artist:
composer = works_composer

isrc = get_isrc(music)
label = music.get("label")
Expand Down
38 changes: 36 additions & 2 deletions tests/test_suisa_sendemeldung.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,16 +291,50 @@ def test_get_csv(mock_cridlib_get):
"music": [{"title": "Long Playing", "acrid": "a5"}],
}
},
{
"metadata": {
"timestamp_local": "1993-03-01 18:18:18",
"timestamp_utc": "1993-03-01 18:18:18",
"played_duration": 71337,
"music": [
{
"title": "composer in works",
"acrid": "a6",
"works": [{"creators": [{"name": "Worker", "role": "W"}]}],
}
],
}
},
{
"metadata": {
"timestamp_local": "1993-03-01 18:18:18",
"timestamp_utc": "1993-03-01 18:18:18",
"played_duration": 71337,
"music": [
{
"title": "composer better in works",
"artists": [{"name": "same"}],
"contributors": {
"composers": ["same"],
},
"acrid": "a6",
"works": [{"creators": [{"name": "composer", "role": "C"}]}],
}
],
}
},
]
csv = suisa_sendemeldung.get_csv(data, station_name="Station Name")
# pylint: disable=line-too-long
assert csv == (
"Titel,Komponist,Interpret,Interpreten-Info,Sender,Sendedatum,Sendedauer,Sendezeit,Werkverzeichnisangaben,ISRC,Label,CD ID / Katalog-Nummer,Aufnahmedatum,Aufnahmeland,Erstveröffentlichungsdatum,Titel des Tonträgers (Albumtitel),Autor Text,Track Nummer,Genre,Programm,Bestellnummer,Marke,Label Code,EAN/GTIN,Identifikationsnummer\r\n"
"Uhrenvergleich,,,,Station Name,19930301,00:01:00,13:12:00,,,,,,,,,,,,,,,,,crid://rabe.ch/v1/test\r\n"
'Meme Dub,Da Composah,Da Gang,,Station Name,19930301,00:01:00,13:37:00,,DEZ650710376,,,,,,"album, but string",,,,,,,,,crid://rabe.ch/v1/test\r\n'
'Bubbles,"Mary\'s Surprise Act, Climmy Jiff","Mary\'s Surprise Act, Climmy Jiff",,Station Name,19930301,00:01:00,16:20:00,,DEZ650710376,Jane Records,,,,20221213,Da Alboom,,,,,,,,greedy-capitalist-number,crid://rabe.ch/v1/test\r\n'
",Artists as string not list,Artists as string not list,,Station Name,19930301,00:01:00,17:17:17,,,,,,,,,,,,,,,,,crid://rabe.ch/v1/test\r\n"
'Bubbles,,"Mary\'s Surprise Act, Climmy Jiff",,Station Name,19930301,00:01:00,16:20:00,,DEZ650710376,Jane Records,,,,20221213,Da Alboom,,,,,,,,greedy-capitalist-number,crid://rabe.ch/v1/test\r\n'
",,Artists as string not list,,Station Name,19930301,00:01:00,17:17:17,,,,,,,,,,,,,,,,,crid://rabe.ch/v1/test\r\n"
"Long Playing,,,,Station Name,19930301,19:48:57,18:18:18,,,,,,,,,,,,,,,,,crid://rabe.ch/v1/test\r\n"
"composer in works,Worker,,,Station Name,19930301,19:48:57,18:18:18,,,,,,,,,,,,,,,,,crid://rabe.ch/v1/test\r\n"
"composer better in works,composer,same,,Station Name,19930301,19:48:57,18:18:18,,,,,,,,,,,,,,,,,crid://rabe.ch/v1/test\r\n"
)
# pylint: enable=line-too-long
mock_cridlib_get.assert_has_calls(
Expand Down

0 comments on commit 9bee5ec

Please sign in to comment.