Merge pull request #218 from Sophist-UK/sophist_add_work_tag

Add Work Tag ...
This commit is contained in:
Michael Wiencek
2014-02-22 22:23:04 -06:00
7 changed files with 9 additions and 0 deletions

View File

@@ -25,6 +25,7 @@
* New setup.py command `get_po_files` (Retrieve po files from transifex)
* New setup.py command `update_countries` (Regenerate countries.py)
* New setup.py command `regen_pot_file` (Regenerate po/picard.pot)
* New Work tag (which for Classical music is often different from the track title)
Version 1.2 - 2013-03-30
* Picard now requires at least Python 2.6

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'])