Add Work Tag ...

See http://forums.musicbrainz.org/viewtopic.php?pid=24929 for
requirements discussion.
This commit is contained in:
Sophist
2014-02-11 18:18:44 +00:00
parent b020cac612
commit af3e4d6288
6 changed files with 8 additions and 0 deletions

View File

@@ -128,6 +128,7 @@ class ASFFile(File):
'djmixer': 'WM/DJMixer',
'mixer': 'WM/Mixer',
'artists': 'WM/ARTISTS',
'work': 'WM/Work',
}
__RTRANS = dict([(b, a) for a, b in __TRANS.items()])

View File

@@ -157,6 +157,7 @@ class ID3File(File):
'ASIN': 'asin',
'MusicMagic Fingerprint': 'musicip_fingerprint',
'Artists': 'artists',
'Work': 'work',
}
__rtranslate_freetext = dict([(v, k) for k, v in __translate_freetext.iteritems()])

View File

@@ -100,6 +100,7 @@ class MP4File(File):
"----:com.apple.iTunes:SCRIPT": "script",
"----:com.apple.iTunes:LANGUAGE": "language",
"----:com.apple.iTunes:ARTISTS": "artists",
"----:com.apple.iTunes:WORK": "work",
}
__r_freeform_tags = dict([(v, k) for k, v in __freeform_tags.iteritems()])

View File

@@ -260,6 +260,8 @@ def work_to_metadata(work, m):
m.add("musicbrainz_workid", work.attribs['id'])
if 'language' in work.children:
m.add_unique("language", work.language[0].text)
if 'title' in work.children:
m.add("work", work.title[0].text)
if 'relation_list' in work.children:
_relations_to_metadata(work.relation_list, m)

View File

@@ -87,6 +87,7 @@ TAG_NAMES = {
'~length': N_('Length'),
'~rating': N_('Rating'),
'artists': N_('Artists'),
'work': N_('Work'),
}

View File

@@ -54,6 +54,7 @@ class TrackTest(unittest.TestCase):
'relation_list': [XmlNode(attribs={'target_type': 'work'}, children={
'relation': [XmlNode(attribs={'type': 'performance'}, children={
'work': [XmlNode(attribs={'id': 'workid123'}, children={
'title': [XmlNode(text='Bar')]
'language': [XmlNode(text='eng')]
})]
})]
@@ -83,6 +84,7 @@ class TrackTest(unittest.TestCase):
self.assertEqual('Foo Bar & Baz', m['artist'])
self.assertEqual('Bar, Foo & Baz', m['artistsort'])
self.assertEqual('workid123', m['musicbrainz_workid'])
self.assertEqual('Bar', m['work'])
self.assertEqual('eng', m['language'])