Merge branch '2.2.x' of dev.sourcefabric.org:airtime into 2.2.x
This commit is contained in:
commit
a2e596f16e
|
@ -9,6 +9,7 @@ class EventDrainer(Loggable):
|
||||||
"""
|
"""
|
||||||
def __init__(self, connection, interval=1):
|
def __init__(self, connection, interval=1):
|
||||||
def cb():
|
def cb():
|
||||||
|
# TODO : make 0.3 parameter configurable
|
||||||
try : connection.drain_events(timeout=0.3)
|
try : connection.drain_events(timeout=0.3)
|
||||||
except socket.timeout : pass
|
except socket.timeout : pass
|
||||||
except Exception as e :
|
except Exception as e :
|
||||||
|
|
|
@ -8,7 +8,7 @@ from mutagen.easyid3 import EasyID3KeyError
|
||||||
|
|
||||||
from media.monitor.exceptions import BadSongFile, InvalidMetadataElement
|
from media.monitor.exceptions import BadSongFile, InvalidMetadataElement
|
||||||
from media.monitor.log import Loggable
|
from media.monitor.log import Loggable
|
||||||
from media.monitor.pure import format_length
|
from media.monitor.pure import format_length, truncate_to_length
|
||||||
import media.monitor.pure as mmp
|
import media.monitor.pure as mmp
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
@ -95,12 +95,6 @@ truncate_table = {
|
||||||
'MDATA_KEY_COPYRIGHT' : 512,
|
'MDATA_KEY_COPYRIGHT' : 512,
|
||||||
}
|
}
|
||||||
|
|
||||||
def truncate_to_length(item, length):
|
|
||||||
if isinstance(item, int): item = str(item)
|
|
||||||
if isinstance(item, basestring):
|
|
||||||
if len(item) > length: return item[0:length]
|
|
||||||
else: return item
|
|
||||||
|
|
||||||
class Metadata(Loggable):
|
class Metadata(Loggable):
|
||||||
# TODO : refactor the way metadata is being handled. Right now things are a
|
# TODO : refactor the way metadata is being handled. Right now things are a
|
||||||
# little bit messy. Some of the handling is in m.m.pure while the rest is
|
# little bit messy. Some of the handling is in m.m.pure while the rest is
|
||||||
|
@ -126,7 +120,14 @@ class Metadata(Loggable):
|
||||||
# TODO : some files have multiple fields for the same metadata.
|
# TODO : some files have multiple fields for the same metadata.
|
||||||
# genre is one example. In that case mutagen will return a list
|
# genre is one example. In that case mutagen will return a list
|
||||||
# of values
|
# of values
|
||||||
assign_val = m_val[0] if isinstance(m_val, list) else m_val
|
|
||||||
|
if isinstance(m_val, list):
|
||||||
|
# TODO : does it make more sense to just skip the element in
|
||||||
|
# this case?
|
||||||
|
if len(m_val) == 0: assign_val = ''
|
||||||
|
else: assign_val = m_val[0]
|
||||||
|
else: assign_val = m_val
|
||||||
|
|
||||||
temp_dict[ m_key ] = assign_val
|
temp_dict[ m_key ] = assign_val
|
||||||
airtime_dictionary = {}
|
airtime_dictionary = {}
|
||||||
for muta_k, muta_v in temp_dict.iteritems():
|
for muta_k, muta_v in temp_dict.iteritems():
|
||||||
|
@ -169,9 +170,12 @@ class Metadata(Loggable):
|
||||||
# Forcing the unicode through
|
# Forcing the unicode through
|
||||||
try : fpath = fpath.decode("utf-8")
|
try : fpath = fpath.decode("utf-8")
|
||||||
except : pass
|
except : pass
|
||||||
|
|
||||||
if not mmp.file_playable(fpath): raise BadSongFile(fpath)
|
if not mmp.file_playable(fpath): raise BadSongFile(fpath)
|
||||||
|
|
||||||
try : full_mutagen = mutagen.File(fpath, easy=True)
|
try : full_mutagen = mutagen.File(fpath, easy=True)
|
||||||
except Exception : raise BadSongFile(fpath)
|
except Exception : raise BadSongFile(fpath)
|
||||||
|
|
||||||
self.path = fpath
|
self.path = fpath
|
||||||
if not os.path.exists(self.path):
|
if not os.path.exists(self.path):
|
||||||
self.logger.info("Attempting to read metadata of file \
|
self.logger.info("Attempting to read metadata of file \
|
||||||
|
|
Loading…
Reference in New Issue