removed automatic loading of emf definitions

This commit is contained in:
Rudi Grinberg 2012-10-09 12:36:52 -04:00
parent cad6a7e7b0
commit a88b7255ff
2 changed files with 97 additions and 86 deletions

View File

@ -3,109 +3,116 @@ import media.monitor.process as md
from os.path import normpath from os.path import normpath
from media.monitor.pure import format_length, file_md5 from media.monitor.pure import format_length, file_md5
with md.metadata('MDATA_KEY_DURATION') as t: defs_loaded = False
t.default(u'0.0')
t.depends('length')
t.translate(lambda k: format_length(k['length']))
with md.metadata('MDATA_KEY_MIME') as t: def is_defs_loaded():
t.default(u'') global defs_loaded
t.depends('mime') return defs_loaded
t.translate(lambda k: k['mime'].replace('-','/'))
with md.metadata('MDATA_KEY_BITRATE') as t: def load_definitions():
t.default(u'') with md.metadata('MDATA_KEY_DURATION') as t:
t.depends('bitrate') t.default(u'0.0')
t.translate(lambda k: k['bitrate']) t.depends('length')
t.translate(lambda k: format_length(k['length']))
with md.metadata('MDATA_KEY_SAMPLERATE') as t: with md.metadata('MDATA_KEY_MIME') as t:
t.default(u'0') t.default(u'')
t.depends('sample_rate') t.depends('mime')
t.translate(lambda k: k['sample_rate']) t.translate(lambda k: k['mime'].replace('-','/'))
with md.metadata('MDATA_KEY_FTYPE'): with md.metadata('MDATA_KEY_BITRATE') as t:
t.depends('ftype') # i don't think this field even exists t.default(u'')
t.default(u'audioclip') t.depends('bitrate')
t.translate(lambda k: k['ftype']) # but just in case t.translate(lambda k: k['bitrate'])
with md.metadata("MDATA_KEY_CREATOR") as t: with md.metadata('MDATA_KEY_SAMPLERATE') as t:
t.depends("artist") t.default(u'0')
# A little kludge to make sure that we have some value for when we parse t.depends('sample_rate')
# MDATA_KEY_TITLE t.translate(lambda k: k['sample_rate'])
t.default(u"")
t.max_length(512)
with md.metadata("MDATA_KEY_SOURCE") as t: with md.metadata('MDATA_KEY_FTYPE'):
t.depends("album") t.depends('ftype') # i don't think this field even exists
t.max_length(512) t.default(u'audioclip')
t.translate(lambda k: k['ftype']) # but just in case
with md.metadata("MDATA_KEY_GENRE") as t: with md.metadata("MDATA_KEY_CREATOR") as t:
t.depends("genre") t.depends("artist")
t.max_length(64) # A little kludge to make sure that we have some value for when we parse
# MDATA_KEY_TITLE
t.default(u"")
t.max_length(512)
with md.metadata("MDATA_KEY_MOOD") as t: with md.metadata("MDATA_KEY_SOURCE") as t:
t.depends("mood") t.depends("album")
t.max_length(64) t.max_length(512)
with md.metadata("MDATA_KEY_TRACKNUMBER") as t: with md.metadata("MDATA_KEY_GENRE") as t:
t.depends("tracknumber") t.depends("genre")
t.max_length(64)
with md.metadata("MDATA_KEY_BPM") as t: with md.metadata("MDATA_KEY_MOOD") as t:
t.depends("bpm") t.depends("mood")
t.max_length(8) t.max_length(64)
with md.metadata("MDATA_KEY_LABEL") as t: with md.metadata("MDATA_KEY_TRACKNUMBER") as t:
t.depends("organization") t.depends("tracknumber")
t.max_length(512)
with md.metadata("MDATA_KEY_COMPOSER") as t: with md.metadata("MDATA_KEY_BPM") as t:
t.depends("composer") t.depends("bpm")
t.max_length(512) t.max_length(8)
with md.metadata("MDATA_KEY_ENCODER") as t: with md.metadata("MDATA_KEY_LABEL") as t:
t.depends("encodedby") t.depends("organization")
t.max_length(512) t.max_length(512)
with md.metadata("MDATA_KEY_CONDUCTOR") as t: with md.metadata("MDATA_KEY_COMPOSER") as t:
t.depends("conductor") t.depends("composer")
t.max_length(512) t.max_length(512)
with md.metadata("MDATA_KEY_YEAR") as t: with md.metadata("MDATA_KEY_ENCODER") as t:
t.depends("date") t.depends("encodedby")
t.max_length(16) t.max_length(512)
with md.metadata("MDATA_KEY_URL") as t: with md.metadata("MDATA_KEY_CONDUCTOR") as t:
t.depends("website") t.depends("conductor")
t.max_length(512)
with md.metadata("MDATA_KEY_ISRC") as t: with md.metadata("MDATA_KEY_YEAR") as t:
t.depends("isrc") t.depends("date")
t.max_length(512) t.max_length(16)
with md.metadata("MDATA_KEY_COPYRIGHT") as t: with md.metadata("MDATA_KEY_URL") as t:
t.depends("copyright") t.depends("website")
t.max_length(512)
with md.metadata("MDATA_KEY_FILEPATH") as t: with md.metadata("MDATA_KEY_ISRC") as t:
t.depends('path') t.depends("isrc")
t.translate(lambda k: normpath(k['path'])) t.max_length(512)
with md.metadata("MDATA_KEY_MD5") as t: with md.metadata("MDATA_KEY_COPYRIGHT") as t:
t.depends('path') t.depends("copyright")
t.optional(False) t.max_length(512)
t.translate(lambda k: file_md5(k['path'], max_length=100))
# owner is handled differently by (by events.py) with md.metadata("MDATA_KEY_FILEPATH") as t:
t.depends('path')
t.translate(lambda k: normpath(k['path']))
with md.metadata('MDATA_KEY_ORIGINAL_PATH') as t: with md.metadata("MDATA_KEY_MD5") as t:
t.depends('original_path') t.depends('path')
t.optional(False)
t.translate(lambda k: file_md5(k['path'], max_length=100))
# MDATA_KEY_TITLE is the annoying special case # owner is handled differently by (by events.py)
with md.metadata('MDATA_KEY_TITLE') as t:
# Need to know MDATA_KEY_CREATOR to know if show was recorded. Value is
# defaulted to "" from definitions above
t.depends('title','MDATA_KEY_CREATOR')
t.max_length(512)
with md.metadata('MDATA_KEY_LABEL') as t: with md.metadata('MDATA_KEY_ORIGINAL_PATH') as t:
t.depends('label') t.depends('original_path')
t.max_length(512)
# MDATA_KEY_TITLE is the annoying special case
with md.metadata('MDATA_KEY_TITLE') as t:
# Need to know MDATA_KEY_CREATOR to know if show was recorded. Value is
# defaulted to "" from definitions above
t.depends('title','MDATA_KEY_CREATOR')
t.max_length(512)
with md.metadata('MDATA_KEY_LABEL') as t:
t.depends('label')
t.max_length(512)

View File

@ -11,6 +11,12 @@ from media.monitor.log import Loggable
from media.monitor.pure import format_length, truncate_to_length from media.monitor.pure import format_length, truncate_to_length
import media.monitor.pure as mmp import media.monitor.pure as mmp
# emf related stuff
from media.metadata.process import global_reader
import media.metadata.definitions as defs
from pprint import pformat
defs.load_definitions()
""" """
list of supported easy tags in mutagen version 1.20 list of supported easy tags in mutagen version 1.20
['albumartistsort', 'musicbrainz_albumstatus', 'lyricist', 'releasecountry', ['albumartistsort', 'musicbrainz_albumstatus', 'lyricist', 'releasecountry',
@ -186,11 +192,9 @@ class Metadata(Loggable):
# extremely unclear and needs to be refactored. # extremely unclear and needs to be refactored.
#if full_mutagen is None: raise BadSongFile(fpath) #if full_mutagen is None: raise BadSongFile(fpath)
try: # emf stuff for testing: try: # emf stuff for testing:
import media.metadata.process as md
import pprint.pformat as pf
if full_mutagen: if full_mutagen:
normalized = md.global_reader.read('fpath', full_mutagen) normalized = global_reader.read('fpath', full_mutagen)
self.logger.info(pf(normalized)) self.logger.info(pformat(normalized))
except Exception as e: except Exception as e:
self.logger.unexpected_exception(e) self.logger.unexpected_exception(e)