CC-1799 Put Airtime Storage into a Human Readable File Naming Convention

check if file is new or exists
This commit is contained in:
Naomi Aro 2011-06-06 17:34:52 +02:00
parent fb117fb617
commit 3c689efe06
2 changed files with 28 additions and 47 deletions

View file

@ -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)