CC-1799 Put Airtime Storage into a Human Readable File Naming Convention
seems mutagen needs everything cast as a string, or one field. Was throwing an exception with no message not sure.
This commit is contained in:
parent
a05b02b0dc
commit
5b26f34033
|
@ -13,12 +13,11 @@ define('MDATA_KEY_SOURCE', 'album_title');
|
||||||
define('MDATA_KEY_DURATION', 'length');
|
define('MDATA_KEY_DURATION', 'length');
|
||||||
define('MDATA_KEY_MIME', 'mime');
|
define('MDATA_KEY_MIME', 'mime');
|
||||||
define('MDATA_KEY_FTYPE', 'ftype');
|
define('MDATA_KEY_FTYPE', 'ftype');
|
||||||
define('MDATA_KEY_URL', 'url');
|
define('MDATA_KEY_URL', 'info_url');
|
||||||
define('MDATA_KEY_GENRE', 'genre');
|
define('MDATA_KEY_GENRE', 'genre');
|
||||||
define('MDATA_KEY_MOOD', 'mood');
|
define('MDATA_KEY_MOOD', 'mood');
|
||||||
define('MDATA_KEY_LABEL', 'label');
|
define('MDATA_KEY_LABEL', 'label');
|
||||||
define('MDATA_KEY_COMPOSER', 'composer');
|
define('MDATA_KEY_COMPOSER', 'composer');
|
||||||
define('MDATA_KEY_FORMAT', 'format');
|
|
||||||
define('MDATA_KEY_DESCRIPTION', 'description');
|
define('MDATA_KEY_DESCRIPTION', 'description');
|
||||||
define('MDATA_KEY_SAMPLERATE', 'sample_rate');
|
define('MDATA_KEY_SAMPLERATE', 'sample_rate');
|
||||||
define('MDATA_KEY_BITRATE', 'bit_rate');
|
define('MDATA_KEY_BITRATE', 'bit_rate');
|
||||||
|
|
|
@ -164,8 +164,7 @@ class LibraryController extends Zend_Controller_Action
|
||||||
$formdata = $form->getValues();
|
$formdata = $form->getValues();
|
||||||
$file->setDbColMetadata($formdata);
|
$file->setDbColMetadata($formdata);
|
||||||
|
|
||||||
$data = $formdata;
|
$data = $file->getMetadata();
|
||||||
$data['filepath'] = $file->getFilePath();
|
|
||||||
|
|
||||||
RabbitMq::SendFileMetaData($data);
|
RabbitMq::SendFileMetaData($data);
|
||||||
|
|
||||||
|
|
|
@ -190,6 +190,27 @@ class StoredFile {
|
||||||
return $md;
|
return $md;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get metadata as array, indexed by the constant names.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getMetadata()
|
||||||
|
{
|
||||||
|
$c = get_defined_constants(true);
|
||||||
|
$md = array();
|
||||||
|
|
||||||
|
foreach ($c['user'] as $constant => $value) {
|
||||||
|
if (preg_match('/^MDATA_KEY/', $constant)) {
|
||||||
|
if (isset($this->_dbMD[$value])) {
|
||||||
|
$md[$constant] = $this->getDbColMetadataValue($value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $md;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete and insert media file
|
* Delete and insert media file
|
||||||
*
|
*
|
||||||
|
|
|
@ -85,21 +85,31 @@ class AirtimeNotifier(Notifier):
|
||||||
consumer.register_callback(self.handle_message)
|
consumer.register_callback(self.handle_message)
|
||||||
consumer.consume()
|
consumer.consume()
|
||||||
|
|
||||||
|
self.logger = logging.getLogger('root')
|
||||||
|
|
||||||
def handle_message(self, body, message):
|
def handle_message(self, body, message):
|
||||||
# ACK the message to take it off the queue
|
# ACK the message to take it off the queue
|
||||||
message.ack()
|
message.ack()
|
||||||
|
|
||||||
logger = logging.getLogger('root')
|
self.logger.info("Received md from RabbitMQ: " + body)
|
||||||
logger.info("Received md from RabbitMQ: " + body)
|
|
||||||
|
|
||||||
m = json.loads(message.body)
|
try:
|
||||||
airtime_file = mutagen.File(m['filepath'], easy=True)
|
m = json.loads(message.body)
|
||||||
del m['filepath']
|
airtime_file = mutagen.File(m['MDATA_KEY_FILEPATH'], easy=True)
|
||||||
for key in m.keys() :
|
|
||||||
if m[key] != "" :
|
|
||||||
airtime_file[self.airtime2mutagen[key]] = m[key]
|
|
||||||
|
|
||||||
airtime_file.save()
|
for key in m.keys() :
|
||||||
|
if key in self.airtime2mutagen:
|
||||||
|
value = m[key]
|
||||||
|
if ((value is not None) and (len(str(value)) > 0)):
|
||||||
|
airtime_file[self.airtime2mutagen[key]] = str(value)
|
||||||
|
self.logger.info('setting %s = %s ', key, str(value))
|
||||||
|
|
||||||
|
|
||||||
|
airtime_file.save()
|
||||||
|
except Exception, e:
|
||||||
|
self.logger.error('Trying to save md')
|
||||||
|
self.logger.error('Exception: %s', e.value)
|
||||||
|
self.logger.error('Filepath %s', m['MDATA_KEY_FILEPATH'])
|
||||||
|
|
||||||
class MediaMonitor(ProcessEvent):
|
class MediaMonitor(ProcessEvent):
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue