Work around strange wma issue in scanner

This commit is contained in:
Thomas Adamcik 2011-06-04 02:21:42 +02:00
parent 89104bd326
commit eba5cff9d1
2 changed files with 17 additions and 5 deletions

View File

@ -4,10 +4,11 @@ import sys
import logging
from mopidy import settings
from mopidy.utils.log import setup_console_logging
from mopidy.utils.log import setup_console_logging, setup_root_logger
from mopidy.scanner import Scanner, translator
from mopidy.frontends.mpd.translator import tracks_to_tag_cache_format
setup_root_logger()
setup_console_logging(2)
tracks = []

View File

@ -77,10 +77,21 @@ class Scanner(object):
pad.link(target_pad)
def process_tags(self, bus, message):
data = message.parse_tag()
data = dict([(k, data[k]) for k in data.keys()])
data['uri'] = unicode(self.uribin.get_property('uri'))
data[gst.TAG_DURATION] = self.get_duration()
taglist = message.parse_tag()
data = {
'uri': unicode(self.uribin.get_property('uri')),
gst.TAG_DURATION: self.get_duration(),
}
for key in taglist.keys():
# XXX: For some crazy reason some wma files spit out lists here,
# not sure if this is due to better data in headers or wma being
# stupid. So ugly hack for now :/
if type(taglist[key]) is list:
data[key] = taglist[key][0]
else:
data[key] = taglist[key]
try:
self.data_callback(data)
self.next_uri()