From 419283db0566c98e644612cf5a7f4cc75b42b916 Mon Sep 17 00:00:00 2001 From: JuniorJPDJ Date: Tue, 11 May 2021 00:43:20 +0200 Subject: [PATCH] New tags: Copyright, ISRC, Artists, AlbumArtists Also adds additional barcode tags to read from --- mediafile.py | 27 +++++++++++++++++++++++++++ test/test_mediafile.py | 9 ++++++--- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/mediafile.py b/mediafile.py index 4cffe07..8e8b105 100644 --- a/mediafile.py +++ b/mediafile.py @@ -1666,6 +1666,12 @@ def update(self, dict): StorageStyle('ARTIST'), ASFStorageStyle('Author'), ) + artists = ListMediaField( + MP3ListDescStorageStyle(desc=u'ARTISTS'), + MP4ListStorageStyle('----:com.apple.iTunes:ARTISTS'), + ListStorageStyle('ARTISTS'), + ASFStorageStyle('WM/ARTISTS'), + ) album = MediaField( MP3StorageStyle('TALB'), MP4StorageStyle('\xa9alb'), @@ -1759,6 +1765,12 @@ def update(self, dict): ASFStorageStyle('WM/Comments'), ASFStorageStyle('Description') ) + copyright = MediaField( + MP3StorageStyle('TCOP'), + MP4StorageStyle('cprt'), + StorageStyle('COPYRIGHT'), + ASFStorageStyle('Copyright'), + ) bpm = MediaField( MP3StorageStyle('TBPM'), MP4StorageStyle('tmpo', as_type=int), @@ -1780,6 +1792,12 @@ def update(self, dict): StorageStyle('ALBUMARTIST'), ASFStorageStyle('WM/AlbumArtist'), ) + albumartists = ListMediaField( + MP3ListDescStorageStyle(desc=u'ALBUMARTISTS'), + MP4ListStorageStyle('----:com.apple.iTunes:ALBUMARTISTS'), + ListStorageStyle('ALBUMARTISTS'), + ASFStorageStyle('WM/AlbumArtists'), + ) albumtype = MediaField( MP3DescStorageStyle(u'MusicBrainz Album Type'), MP4StorageStyle('----:com.apple.iTunes:MusicBrainz Album Type'), @@ -1824,8 +1842,17 @@ def update(self, dict): MP3DescStorageStyle(u'BARCODE'), MP4StorageStyle('----:com.apple.iTunes:BARCODE'), StorageStyle('BARCODE'), + StorageStyle('UPC', read_only=True), + StorageStyle('EAN', read_only=True), + StorageStyle('UPN', read_only=True), ASFStorageStyle('WM/Barcode'), ) + isrc = MediaField( + MP3StorageStyle(u'TSRC'), + MP4StorageStyle('----:com.apple.iTunes:ISRC'), + StorageStyle('ISRC'), + ASFStorageStyle('WM/ISRC'), + ) disctitle = MediaField( MP3StorageStyle('TSST'), MP4StorageStyle('----:com.apple.iTunes:DISCSUBTITLE'), diff --git a/test/test_mediafile.py b/test/test_mediafile.py index fca849c..2dd4bdf 100644 --- a/test/test_mediafile.py +++ b/test/test_mediafile.py @@ -365,6 +365,7 @@ class ReadWriteTestBase(ArtTestMixin, GenreListTestMixin, 'disctotal', 'lyrics', 'comments', + 'copyright', 'bpm', 'comp', 'mb_trackid', @@ -388,6 +389,7 @@ class ReadWriteTestBase(ArtTestMixin, GenreListTestMixin, 'asin', 'catalognum', 'barcode', + 'isrc', 'disctitle', 'script', 'language', @@ -711,7 +713,8 @@ def _generate_tags(self, base=None): for key in ['disc', 'disctotal', 'track', 'tracktotal', 'bpm']: tags[key] = 1 - for key in ['mb_artistid', 'mb_albumartistid']: + for key in ['artists', 'albumartists', 'mb_artistid', + 'mb_albumartistid']: tags[key] = ['multival', 'test'] tags['art'] = self.jpg_data @@ -985,8 +988,8 @@ def test_properties_from_readable_fields(self): def test_known_fields(self): fields = list(ReadWriteTestBase.tag_fields) - fields.extend(('encoder', 'images', 'genres', 'albumtype', - 'mb_artistid', 'mb_albumartistid')) + fields.extend(('encoder', 'images', 'genres', 'albumtype', 'artists', + 'albumartists', 'mb_artistid', 'mb_albumartistid')) assertCountEqual(self, MediaFile.fields(), fields) def test_fields_in_readable_fields(self):