Swap 'title' and 'releaseTitle' meaning
- Trasparent change: now it makes more sense. - Updated tests to reflect 'title', 'releaseTitle' meaning swap. - Improved documentation. Signed-off-by: JoeLametta <JoeLametta@users.noreply.github.com>
This commit is contained in:
@@ -96,7 +96,8 @@ Template schemes
|
||||
| - %S: release sort name
|
||||
| - %B: release barcode
|
||||
| - %C: release catalog number
|
||||
| - %d: disc title
|
||||
| - %d: release title (with disambiguation)
|
||||
| - %D: disc title (without disambiguation)
|
||||
| - %y: release year
|
||||
| - %r: release type, lowercase
|
||||
| - %R: release type, normal case
|
||||
|
||||
@@ -56,7 +56,8 @@ disc and track template are:
|
||||
- %S: release sort name
|
||||
- %B: release barcode
|
||||
- %C: release catalog number
|
||||
- %d: disc title
|
||||
- %d: release title (with disambiguation)
|
||||
- %D: disc title (without disambiguation)
|
||||
- %y: release year
|
||||
- %r: release type, lowercase
|
||||
- %R: release type, normal case
|
||||
@@ -187,7 +188,7 @@ class _CD(BaseCommand):
|
||||
and self.program.metadata.artist \
|
||||
or 'Unknown Artist'
|
||||
self.program.result.title = self.program.metadata \
|
||||
and self.program.metadata.title \
|
||||
and self.program.metadata.releaseTitle \
|
||||
or 'Unknown Title'
|
||||
_, self.program.result.vendor, self.program.result.model, \
|
||||
self.program.result.release = \
|
||||
|
||||
@@ -26,7 +26,7 @@ Example Disc ID: KnpGsLhvH.lPrNc1PBL21lb9Bg4-"""
|
||||
:type md: `DiscMetadata`
|
||||
"""
|
||||
print(' Artist: %s' % md.artist.encode('utf-8'))
|
||||
print(' Title: %s' % md.title.encode('utf-8'))
|
||||
print(' Title: %s' % md.releaseTitle.encode('utf-8'))
|
||||
print(' Type: %s' % str(md.releaseType).encode('utf-8'))
|
||||
print(' URL: %s' % md.url)
|
||||
print(' Tracks: %d' % len(md.tracks))
|
||||
|
||||
@@ -66,8 +66,10 @@ class DiscMetadata:
|
||||
:cvar sortName: release artist sort name
|
||||
:cvar release: earliest release date, in YYYY-MM-DD
|
||||
:vartype release: str
|
||||
:cvar title: title of the disc (with disambiguation)
|
||||
:cvar releaseTitle: title of the release (without disambiguation)
|
||||
:cvar title: title of the disc (without disambiguation)
|
||||
:vartype title: str or None
|
||||
:cvar releaseTitle: title of the release (with disambiguation)
|
||||
:vartype releasetitle: str or None
|
||||
:vartype tracks: list of :any:`TrackMetadata`
|
||||
:cvar countries: MusicBrainz release countries
|
||||
:vartype countries: list or None
|
||||
@@ -285,17 +287,17 @@ def _getMetadata(release, discid=None, country=None):
|
||||
for medium in release['medium-list']:
|
||||
for disc in medium['disc-list']:
|
||||
if discid is None or disc['id'] == discid:
|
||||
title = release['title']
|
||||
discMD.releaseTitle = title
|
||||
discMD.title = release['title']
|
||||
discMD.releaseTitle = releaseTitle = discMD.title
|
||||
if 'disambiguation' in release:
|
||||
title += " (%s)" % release['disambiguation']
|
||||
releaseTitle += " (%s)" % release['disambiguation']
|
||||
count = len(release['medium-list'])
|
||||
if count > 1:
|
||||
title += ' (Disc %d of %d)' % (
|
||||
releaseTitle += ' (Disc %d of %d)' % (
|
||||
int(medium['position']), count)
|
||||
if 'title' in medium:
|
||||
title += ": %s" % medium['title']
|
||||
discMD.title = title
|
||||
releaseTitle += ": %s" % medium['title']
|
||||
discMD.releaseTitle = releaseTitle
|
||||
for t in medium['track-list']:
|
||||
track = TrackMetadata()
|
||||
trackCredit = _Credit(
|
||||
|
||||
@@ -178,7 +178,8 @@ class Program:
|
||||
* ``%S``: release artist sort name
|
||||
* ``%B``: release barcode
|
||||
* ``%C``: release catalog number
|
||||
* ``%d``: disc title
|
||||
* ``%d``: release title (with disambiguation)
|
||||
* ``%D``: disc title (without disambiguation)
|
||||
* ``%y``: release year
|
||||
* ``%r``: release type, lowercase
|
||||
* ``%R``: release type, normal case
|
||||
@@ -189,7 +190,7 @@ class Program:
|
||||
assert isinstance(template, str), "%r is not str" % template
|
||||
v = {}
|
||||
v['A'] = 'Unknown Artist'
|
||||
v['d'] = mbdiscid # fallback for title
|
||||
v['d'] = v['D'] = mbdiscid # fallback for title
|
||||
v['r'] = 'unknown'
|
||||
v['R'] = 'Unknown'
|
||||
v['B'] = '' # barcode
|
||||
@@ -210,7 +211,8 @@ class Program:
|
||||
v['y'] = release[:4]
|
||||
v['A'] = metadata.artist
|
||||
v['S'] = metadata.sortName
|
||||
v['d'] = metadata.title
|
||||
v['d'] = metadata.releaseTitle
|
||||
v['D'] = metadata.title
|
||||
v['B'] = metadata.barcode
|
||||
v['C'] = metadata.catalogNumber
|
||||
if metadata.releaseType:
|
||||
@@ -318,7 +320,7 @@ class Program:
|
||||
|
||||
for metadata in metadatas:
|
||||
print('\nArtist : %s' % metadata.artist)
|
||||
print('Title : %s' % metadata.title)
|
||||
print('Title : %s' % metadata.releaseTitle)
|
||||
print('Duration: %s' % common.formatTime(
|
||||
metadata.duration / 1000.0))
|
||||
print('URL : %s' % metadata.url)
|
||||
@@ -358,7 +360,7 @@ class Program:
|
||||
if len(metadatas) == 1:
|
||||
logger.info('picked requested release id %s', release)
|
||||
print('Artist: %s' % metadatas[0].artist)
|
||||
print('Title : %s' % metadatas[0].title)
|
||||
print('Title : %s' % metadatas[0].releaseTitle)
|
||||
elif not metadatas:
|
||||
logger.warning("requested release id '%s', but none of "
|
||||
"the found releases match", release)
|
||||
@@ -370,16 +372,16 @@ class Program:
|
||||
# If we have multiple, make sure they match
|
||||
if len(metadatas) > 1:
|
||||
artist = metadatas[0].artist
|
||||
releaseTitle = metadatas[0].releaseTitle
|
||||
discTitle = metadatas[0].title
|
||||
for i, metadata in enumerate(metadatas):
|
||||
if not artist == metadata.artist:
|
||||
logger.warning("artist 0: %r and artist %d: %r are "
|
||||
"not the same", artist, i,
|
||||
metadata.artist)
|
||||
if not releaseTitle == metadata.releaseTitle:
|
||||
if not discTitle == metadata.title:
|
||||
logger.warning("title 0: %r and title %d: %r are "
|
||||
"not the same", releaseTitle, i,
|
||||
metadata.releaseTitle)
|
||||
"not the same", discTitle, i,
|
||||
metadata.title)
|
||||
|
||||
if not release and len(list(deltas)) > 1:
|
||||
logger.warning('picked closest match in duration. '
|
||||
@@ -409,13 +411,13 @@ class Program:
|
||||
"""
|
||||
trackArtist = 'Unknown Artist'
|
||||
releaseArtist = 'Unknown Artist'
|
||||
disc = 'Unknown Disc'
|
||||
album = 'Unknown Album'
|
||||
title = 'Unknown Track'
|
||||
|
||||
if self.metadata:
|
||||
trackArtist = self.metadata.artist
|
||||
releaseArtist = self.metadata.artist
|
||||
disc = self.metadata.title
|
||||
album = self.metadata.title # No disambiguation is proper here
|
||||
mbidRelease = self.metadata.mbid
|
||||
mbidReleaseGroup = self.metadata.mbidReleaseGroup
|
||||
mbidReleaseArtist = self.metadata.mbidArtist
|
||||
@@ -447,7 +449,7 @@ class Program:
|
||||
tags['ALBUMARTIST'] = releaseArtist
|
||||
tags['ARTIST'] = trackArtist
|
||||
tags['TITLE'] = title
|
||||
tags['ALBUM'] = disc
|
||||
tags['ALBUM'] = album
|
||||
|
||||
tags['TRACKNUMBER'] = '%s' % number
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ class PathTestCase(unittest.TestCase):
|
||||
prog = program.Program(config.Config())
|
||||
md = mbngs.DiscMetadata()
|
||||
md.artist = md.sortName = 'Jeff Buckley'
|
||||
md.title = 'Grace'
|
||||
md.releaseTitle = 'Grace'
|
||||
|
||||
path = prog.getPath('/tmp', DEFAULT_DISC_TEMPLATE,
|
||||
'mbdiscid', md, 0)
|
||||
@@ -36,7 +36,7 @@ class PathTestCase(unittest.TestCase):
|
||||
prog = program.Program(config.Config())
|
||||
md = mbngs.DiscMetadata()
|
||||
md.artist = md.sortName = 'Jeff Buckley'
|
||||
md.title = 'Grace'
|
||||
md.releaseTitle = 'Grace'
|
||||
|
||||
path = prog.getPath('/tmp', '%A/%d', 'mbdiscid', md, 0)
|
||||
self.assertEqual(path,
|
||||
|
||||
Reference in New Issue
Block a user