mirror of
https://github.com/beetbox/beets.git
synced 2025-12-30 20:42:37 +01:00
Added alternate track field when importing from MusicBrains.
Useful when importing multi-sided medias such as vinyls and cassettes.
This commit is contained in:
parent
32dc808f71
commit
0d68a12609
4 changed files with 12 additions and 7 deletions
|
|
@ -34,7 +34,7 @@ log = logging.getLogger('beets')
|
|||
|
||||
def apply_item_metadata(item, track_info):
|
||||
"""Set an item's metadata from its matched TrackInfo object.
|
||||
"""
|
||||
"""
|
||||
item.artist = track_info.artist
|
||||
item.artist_sort = track_info.artist_sort
|
||||
item.artist_credit = track_info.artist_credit
|
||||
|
|
@ -157,3 +157,5 @@ def apply_metadata(album_info, mapping):
|
|||
item.composer = track_info.composer
|
||||
if track_info.arranger is not None:
|
||||
item.arranger = track_info.arranger
|
||||
|
||||
item.alt_track_no = track_info.alt_track_no
|
||||
|
|
@ -154,7 +154,7 @@ class TrackInfo(object):
|
|||
length=None, index=None, medium=None, medium_index=None,
|
||||
medium_total=None, artist_sort=None, disctitle=None,
|
||||
artist_credit=None, data_source=None, data_url=None,
|
||||
media=None, lyricist=None, composer=None, arranger=None):
|
||||
media=None, lyricist=None, composer=None, arranger=None, alt_track_no=None):
|
||||
self.title = title
|
||||
self.track_id = track_id
|
||||
self.artist = artist
|
||||
|
|
@ -173,6 +173,7 @@ class TrackInfo(object):
|
|||
self.lyricist = lyricist
|
||||
self.composer = composer
|
||||
self.arranger = arranger
|
||||
self.alt_track_no = alt_track_no
|
||||
|
||||
# As above, work around a bug in python-musicbrainz-ngs.
|
||||
def decode(self, codec='utf-8'):
|
||||
|
|
|
|||
|
|
@ -252,8 +252,8 @@ def album_info(release):
|
|||
all_tracks = medium['track-list']
|
||||
if 'pregap' in medium:
|
||||
all_tracks.insert(0, medium['pregap'])
|
||||
|
||||
for track in all_tracks:
|
||||
|
||||
for track in all_tracks:
|
||||
# Basic information from the recording.
|
||||
index += 1
|
||||
ti = track_info(
|
||||
|
|
@ -265,6 +265,7 @@ def album_info(release):
|
|||
)
|
||||
ti.disctitle = disctitle
|
||||
ti.media = format
|
||||
ti.alt_track_no = track['number']
|
||||
|
||||
# Prefer track data, where present, over recording data.
|
||||
if track.get('title'):
|
||||
|
|
|
|||
|
|
@ -322,7 +322,7 @@ class LibModel(dbcore.Model):
|
|||
funcs.update(plugins.template_funcs())
|
||||
return funcs
|
||||
|
||||
def store(self, fields=None):
|
||||
def store(self, fields=None):
|
||||
super(LibModel, self).store(fields)
|
||||
plugins.send('database_change', lib=self._db, model=self)
|
||||
|
||||
|
|
@ -423,9 +423,10 @@ class Item(LibModel):
|
|||
'month': types.PaddedInt(2),
|
||||
'day': types.PaddedInt(2),
|
||||
'track': types.PaddedInt(2),
|
||||
'alt_track_no': types.STRING,
|
||||
'tracktotal': types.PaddedInt(2),
|
||||
'disc': types.PaddedInt(2),
|
||||
'disctotal': types.PaddedInt(2),
|
||||
'disctotal': types.PaddedInt(2),
|
||||
'lyrics': types.STRING,
|
||||
'comments': types.STRING,
|
||||
'bpm': types.INTEGER,
|
||||
|
|
@ -456,7 +457,7 @@ class Item(LibModel):
|
|||
'original_year': types.PaddedInt(4),
|
||||
'original_month': types.PaddedInt(2),
|
||||
'original_day': types.PaddedInt(2),
|
||||
'initial_key': MusicalKey(),
|
||||
'initial_key': MusicalKey(),
|
||||
|
||||
'length': DurationType(),
|
||||
'bitrate': types.ScaledInt(1000, u'kbps'),
|
||||
|
|
|
|||
Loading…
Reference in a new issue