replacing media monitor code in upgrade with latest.

This commit is contained in:
Naomi Aro 2011-07-29 11:41:22 +02:00
parent 1660899096
commit fb5c0803ce
2 changed files with 30 additions and 8 deletions

View File

@ -3,6 +3,7 @@ import hashlib
import mutagen import mutagen
import logging import logging
import math import math
import re
""" """
list of supported easy tags in mutagen version 1.20 list of supported easy tags in mutagen version 1.20
@ -102,6 +103,7 @@ class AirtimeMetadata:
def get_md_from_file(self, filepath): def get_md_from_file(self, filepath):
self.logger.debug("testing upgrade")
self.logger.info("getting info from filepath %s", filepath) self.logger.info("getting info from filepath %s", filepath)
try: try:
@ -133,9 +135,28 @@ class AirtimeMetadata:
md['MDATA_KEY_TITLE'] = original_name md['MDATA_KEY_TITLE'] = original_name
#incase track number is in format u'4/11' #incase track number is in format u'4/11'
#need to also check that the tracknumber is even a tracknumber (cc-2582)
if 'MDATA_KEY_TRACKNUMBER' in md: if 'MDATA_KEY_TRACKNUMBER' in md:
try:
md['MDATA_KEY_TRACKNUMBER'] = int(md['MDATA_KEY_TRACKNUMBER'])
except Exception, e:
pass
if isinstance(md['MDATA_KEY_TRACKNUMBER'], basestring): if isinstance(md['MDATA_KEY_TRACKNUMBER'], basestring):
md['MDATA_KEY_TRACKNUMBER'] = md['MDATA_KEY_TRACKNUMBER'].split("/")[0] match = re.search('^(\d*/\d*)?', md['MDATA_KEY_TRACKNUMBER'])
if match.group(0) is not u'':
md['MDATA_KEY_TRACKNUMBER'] = int(md['MDATA_KEY_TRACKNUMBER'].split("/")[0])
else:
del md['MDATA_KEY_TRACKNUMBER']
#make sure bpm is valid, need to check more types of formats for this tag to assure correct parsing.
if 'MDATA_KEY_BPM' in md:
if isinstance(md['MDATA_KEY_BPM'], basestring):
try:
md['MDATA_KEY_BPM'] = int(md['MDATA_KEY_BPM'])
except Exception, e:
del md['MDATA_KEY_BPM']
md['MDATA_KEY_BITRATE'] = file_info.info.bitrate md['MDATA_KEY_BITRATE'] = file_info.info.bitrate
md['MDATA_KEY_SAMPLERATE'] = file_info.info.sample_rate md['MDATA_KEY_SAMPLERATE'] = file_info.info.sample_rate
@ -152,4 +173,7 @@ class AirtimeMetadata:
if(isinstance(md[key], basestring)): if(isinstance(md[key], basestring)):
md[key] = md[key].encode('utf-8') md[key] = md[key].encode('utf-8')
self.logger.info("MD after parsing.")
self.logger.debug(md)
return md return md

View File

@ -207,18 +207,18 @@ class MediaMonitorCommon:
return filepath return filepath
def execCommandAndReturnStdOut(self, command): def exec_command(self, command):
p = Popen(command, shell=True, stdout=PIPE) p = Popen(command, shell=True, stdout=PIPE, stderr=PIPE)
stdout = p.communicate()[0] stdout, stderr = p.communicate()
if p.returncode != 0: if p.returncode != 0:
self.logger.warn("command \n%s\n return with a non-zero return value", command) self.logger.warn("command \n%s\n return with a non-zero return value", command)
self.logger.error(stderr)
return stdout return stdout
def scan_dir_for_new_files(self, dir): def scan_dir_for_new_files(self, dir):
command = 'find "%s" -type f -iname "*.ogg" -o -iname "*.mp3" -readable' % dir.replace('"', '\\"') command = 'find "%s" -type f -iname "*.ogg" -o -iname "*.mp3" -readable' % dir.replace('"', '\\"')
self.logger.debug(command) self.logger.debug(command)
stdout = self.execCommandAndReturnStdOut(command) stdout = self.exec_command(command)
stdout = unicode(stdout, "utf_8")
return stdout.splitlines() return stdout.splitlines()
@ -230,8 +230,6 @@ class MediaMonitorCommon:
file_md = self.md_manager.get_md_from_file(pathname) file_md = self.md_manager.get_md_from_file(pathname)
if file_md is not None: if file_md is not None:
#is_recorded_show = 'MDATA_KEY_CREATOR' in file_md and \
# file_md['MDATA_KEY_CREATOR'] == "AIRTIMERECORDERSOURCEFABRIC".encode('utf-8')
filepath = self.create_file_path(pathname, file_md) filepath = self.create_file_path(pathname, file_md)
self.logger.debug("Moving from %s to %s", pathname, filepath) self.logger.debug("Moving from %s to %s", pathname, filepath)