diff --git a/airtime_mvc/application/controllers/ApiController.php b/airtime_mvc/application/controllers/ApiController.php index 422fa608c..1f8b5d5ee 100644 --- a/airtime_mvc/application/controllers/ApiController.php +++ b/airtime_mvc/application/controllers/ApiController.php @@ -369,18 +369,25 @@ class ApiController extends Zend_Controller_Action $filepath = $md['filepath']; $filepath = str_replace("\\", "", $filepath); $file = StoredFile::Recall(null, null, null, $filepath); - if (PEAR::isError($file) || is_null($file)) { - $this->view->response = "File not in Airtime's Database"; + if (PEAR::isError($file)) { + $this->view->response = "Problem recalling file in Airtime"; return; } - $res = $file->replaceDbMetadata($md); + //New file added to Airtime + if (is_null($file)) { - if (PEAR::isError($res)) { - $this->view->response = "Metadata Change Failed"; } + //Updating a metadata change. else { - $this->view->response = "Success!"; + $res = $file->replaceDbMetadata($md); + + if (PEAR::isError($res)) { + $this->view->response = "Metadata Change Failed"; + } + else { + $this->view->response = "Success!"; + } } } } diff --git a/python_apps/media-monitor/MediaMonitor.py b/python_apps/media-monitor/MediaMonitor.py index 843ea572a..2da47f1f5 100644 --- a/python_apps/media-monitor/MediaMonitor.py +++ b/python_apps/media-monitor/MediaMonitor.py @@ -142,6 +142,11 @@ class MediaMonitor(ProcessEvent): return md5 + ## mutagen_length is in seconds with the format (d+).dd + ## return format hh:mm:ss. + def format_length(self, mutagen_length): + time = mutagen_length.split(".") + def ensure_dir(self, filepath): directory = os.path.dirname(filepath) @@ -181,6 +186,7 @@ class MediaMonitor(ProcessEvent): 'album':None, 'title':None, 'tracknumber':None} +<<<<<<< HEAD for key in metadata.keys(): if key in file_info: @@ -234,44 +240,6 @@ class MediaMonitor(ProcessEvent): return filepath - def create_file_path(self, imported_filepath): - - global storage_directory - - original_name = os.path.basename(imported_filepath) - file_ext = os.path.splitext(imported_filepath)[1] - file_info = mutagen.File(imported_filepath, easy=True) - - metadata = {'artist':None, - 'album':None, - 'title':None, - 'tracknumber':None} - - for key in metadata.keys(): - if key in file_info: - metadata[key] = file_info[key][0] - - if metadata['artist'] is not None: - base = "%s/%s" % (storage_directory, metadata['artist']) - if metadata['album'] is not None: - base = "%s/%s" % (base, metadata['album']) - if metadata['title'] is not None: - if metadata['tracknumber'] is not None: - metadata['tracknumber'] = "%02d" % (int(metadata['tracknumber'])) - base = "%s/%s - %s" % (base, metadata['tracknumber'], metadata['title']) - else: - base = "%s/%s" % (base, metadata['title']) - else: - base = "%s/%s" % (base, original_name) - else: - base = "%s/%s" % (storage_directory, original_name) - - base = "%s%s" % (base, file_ext) - - filepath = self.create_unique_filename(base) - self.ensure_dir(filepath) - shutil.move(imported_filepath, filepath) - def update_airtime(self, event): self.logger.info("Updating Change to Airtime") try: @@ -284,6 +252,11 @@ class MediaMonitor(ProcessEvent): if key in attrs : md[attrs[key]] = file_info[key][0] + md['mime'] = file_info.mime[0] + md['bitrate'] = file_info.info.bitrate + md['samplerate'] = file_info.info.sample_rate + + data = {'md': md} response = self.api_client.update_media_metadata(data) @@ -321,14 +294,13 @@ class MediaMonitor(ProcessEvent): self.temp_files[event.pathname] = None #This is a newly imported file. else : - if not is_renamed_file(event.pathname): + if not self.is_renamed_file(event.pathname): self.create_file_path(event.pathname) - self.logger.info("%s: %s", event.maskname, event.pathname) + self.logger.info("%s: %s", event.maskname, event.pathname) def process_IN_MODIFY(self, event): if not event.dir : - if self.is_audio_file(event.name) : self.update_airtime(event) @@ -369,3 +341,5 @@ if __name__ == '__main__': notifier.loop(callback=checkRabbitMQ) except KeyboardInterrupt: notifier.stop() + except Exception, e: + logger.error('Exception: %s', e)