|
|
@@ -157,13 +157,14 @@ class AudioDisc(FSObject, MusicAlbum): |
|
|
|
self.cuesheet = kwargs.pop('cuesheet') |
|
|
|
self.cdtoc = kwargs.pop('toc', {}) |
|
|
|
self.kwargs = kwargs.copy() |
|
|
|
# XXX - need to convert to cdtoc? |
|
|
|
self.tags = tags = kwargs.pop('tags', {}) |
|
|
|
|
|
|
|
self.file = kwargs.pop('file') |
|
|
|
nchan = kwargs.pop('channels') |
|
|
|
samprate = kwargs.pop('samplerate') |
|
|
|
bitsps = kwargs.pop('bitspersample') |
|
|
|
samples = kwargs.pop('samples') |
|
|
|
tags = kwargs.pop('tags', {}) |
|
|
|
picts = kwargs.pop('pictures', {}) |
|
|
|
totalbytes = nchan * samples * bitsps / 8 |
|
|
|
|
|
|
@@ -248,27 +249,46 @@ class AudioDisc(FSObject, MusicAlbum): |
|
|
|
trkarray = self.cuesheet['tracks_array'] |
|
|
|
kwargs = self.kwargs.copy() |
|
|
|
start = self.gettrackstart(i) |
|
|
|
tags = self.tags |
|
|
|
#print 'tags:', `tags` |
|
|
|
kwargs['start'] = start |
|
|
|
kwargs['samples'] = trkarray[trkidx + 1]['offset'] - start |
|
|
|
#print 'track: %d, kwargs: %s' % (i, `kwargs`) |
|
|
|
kwargs['originalTrackNumber'] = i |
|
|
|
try: |
|
|
|
tinfo = self.cdtoc['tracks'][i] |
|
|
|
#print 'tinfo:', `tinfo` |
|
|
|
except KeyError: |
|
|
|
tinfo = {} |
|
|
|
|
|
|
|
if 'TITLE' in self.cdtoc: |
|
|
|
kwargs['album'] = self.cdtoc['TITLE'] |
|
|
|
|
|
|
|
if 'TITLE' in tinfo: |
|
|
|
oi = tinfo['TITLE'] |
|
|
|
|
|
|
|
if 'PERFORMER' in tinfo: |
|
|
|
kwargs['artist'] = tinfo['PERFORMER'] |
|
|
|
|
|
|
|
print 'kwargs:', `kwargs` |
|
|
|
import traceback |
|
|
|
traceback.print_stack() |
|
|
|
if 'dtitle' in tags and ' / ' in tags['dtitle'][0]: |
|
|
|
kwargs['artist'], kwargs['album'] = tags['dtitle'][0].split(' / ') |
|
|
|
else: |
|
|
|
if 'TITLE' in self.cdtoc: |
|
|
|
kwargs['album'] = self.cdtoc['TITLE'] |
|
|
|
if 'PERFORMER' in tinfo: |
|
|
|
kwargs['artist'] = tinfo['PERFORMER'] |
|
|
|
|
|
|
|
tt = 'ttitle%d' % (i - 1) |
|
|
|
if tt in tags: |
|
|
|
if len(tags[tt]) != 1: |
|
|
|
# XXX - track this? |
|
|
|
print 'hun? ttitle:', `tags[tt]` |
|
|
|
|
|
|
|
ttitle = tags[tt][0] |
|
|
|
if ' / ' in ttitle: |
|
|
|
kwargs['artist'], oi = ttitle.split(' / ') |
|
|
|
else: |
|
|
|
oi = ttitle |
|
|
|
else: |
|
|
|
if 'TITLE' in tinfo: |
|
|
|
oi = tinfo['TITLE'] |
|
|
|
|
|
|
|
#print 'title:', `oi` |
|
|
|
#print 'kwargs:', `kwargs` |
|
|
|
#print 'artist:', `kwargs['artist']` |
|
|
|
#import traceback |
|
|
|
#traceback.print_stack() |
|
|
|
return AudioRawTrack, oi, (), kwargs |
|
|
|
|
|
|
|
# XXX - figure out how to make custom mix-ins w/ other than AudioItem |
|
|
@@ -297,8 +317,8 @@ class AudioRawBase(FSObject): |
|
|
|
self.year = tags['DYEAR'][0] |
|
|
|
if 'DGENRE' in tags: |
|
|
|
self.genre = tags['DGENRE'][0] |
|
|
|
#if 'DTITLE' in tags: |
|
|
|
# self.artist, self.album = tags['DTITLE'][0].split(' / ', 1) |
|
|
|
if 'DTITLE' in tags and ' / ' in tags['DTITLE'][0]: |
|
|
|
self.artist, self.album = tags['DTITLE'][0].split(' / ', 1) |
|
|
|
self.url = '%s/%s/audio' % (self.cd.urlbase, self.id) |
|
|
|
if 'cover' in picts: |
|
|
|
pict = picts['cover'][0] |
|
|
@@ -320,8 +340,8 @@ class AudioRawBase(FSObject): |
|
|
|
def doUpdate(self): |
|
|
|
print 'dU:', `self`, self.baseObject.doUpdate |
|
|
|
print self.__class__.__bases__ |
|
|
|
import traceback |
|
|
|
traceback.print_stack() |
|
|
|
#import traceback |
|
|
|
#traceback.print_stack() |
|
|
|
self.baseObject.doUpdate(self) |
|
|
|
|
|
|
|
class AudioRaw(AudioRawBase, AudioItem): |
|
|
|