cc-4105: Fixed metadata handling. Added more error reporting to rmq requests

This commit is contained in:
Rudi Grinberg 2012-07-30 12:14:06 -04:00
parent 5f1024bb7d
commit 6e9db647c1
3 changed files with 21 additions and 2 deletions

View File

@ -610,6 +610,9 @@ class ApiController extends Zend_Controller_Action
}
}
Logging::log("MM request>>>>>>>");
Logging::log( $md );
// update import timestamp
Application_Model_Preference::SetImportTimestamp();
if ($mode == "create") {

View File

@ -176,12 +176,13 @@ class AirtimeMessageReceiver(Loggable):
# verify that.
self.logger.info("Attempting to delete(maybe) '%s'" % msg['filepath'])
if msg['delete']:
self.logger.info("Clippy confirmation was received, actually deleting file...")
if os.path.exists(msg['filepath']):
try:
self.logger.info("Attempting to delete '%s'" % msg['filepath'])
FileMediator.ignore(msg['filepath'])
os.unlink(msg['filepath'])
if not os.path.exists(msg['filepath']):
self.logger.info("Successfully deleted: '%s'" % msg['filepath'])
except Exception as e:
self.logger.info("Failed to delete '%s'" % msg['filepath'])
self.logger.info("Error: " % str(e))

View File

@ -140,6 +140,19 @@ def default_to(dictionary, keys, default):
if not (k in new_d): new_d[k] = default
return new_d
def remove_whitespace(dictionary):
"""Remove values that empty whitespace in the dictionary"""
nd = copy.deepcopy(dictionary)
bad_keys = []
for k,v in nd.iteritems():
stripped = v.strip()
# ghetto and maybe unnecessary
if stripped == '' or stripped == u'':
bad_keys.append(k)
for bad_key in bad_keys: del nd[bad_key]
return nd
def normalized_metadata(md, original_path):
""" consumes a dictionary of metadata and returns a new dictionary with the
formatted meta data. We also consume original_path because we must set
@ -157,6 +170,7 @@ def normalized_metadata(md, original_path):
'MDATA_KEY_BITRATE' : lambda x: str(int(x) / 1000) + "kbps",
# note: you don't actually need the lambda here. It's only used for clarity
'MDATA_KEY_FILEPATH' : lambda x: os.path.normpath(x),
'MDATA_KEY_MIME' : lambda x: x.replace('-','/')
}
path_md = ['MDATA_KEY_TITLE', 'MDATA_KEY_CREATOR', 'MDATA_KEY_SOURCE',
'MDATA_KEY_TRACKNUMBER', 'MDATA_KEY_BITRATE']
@ -168,6 +182,7 @@ def normalized_metadata(md, original_path):
new_md = apply_rules_dict(new_md, format_rules)
new_md = default_to(dictionary=new_md, keys=['MDATA_KEY_TITLE'], default=no_extension_basename(original_path))
new_md = default_to(dictionary=new_md, keys=path_md, default=unicode_unknown)
new_md = default_to(dictionary=new_md, keys=['MDATA_KEY_FTYPE'], default=u'audioclip')
# In the case where the creator is 'Airtime Show Recorder' we would like to
# format the MDATA_KEY_TITLE slightly differently
# Note: I don't know why I'm doing a unicode string comparison here
@ -182,7 +197,7 @@ def normalized_metadata(md, original_path):
# be set to the original path of the file for airtime recorded shows
# (before it was "organized"). We will skip this procedure for now
# because it's not clear why it was done
return new_md
return remove_whitespace(new_md)
def organized_path(old_path, root_path, normal_md):
"""