CC-1799 Put Airtime Storage into a Human Readable File Naming Convention
check if file is new or exists
This commit is contained in:
parent
fb117fb617
commit
3c689efe06
2 changed files with 28 additions and 47 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue