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

This commit is contained in:
Naomi Aro 2011-06-06 11:06:34 +02:00
parent b1d4b3442b
commit 7c65623477
1 changed files with 26 additions and 13 deletions

View File

@ -132,6 +132,15 @@ class MediaMonitor(ProcessEvent):
self.supported_file_formats = ['mp3', 'ogg'] self.supported_file_formats = ['mp3', 'ogg']
self.logger = logging.getLogger('root') self.logger = logging.getLogger('root')
self.temp_files = {} self.temp_files = {}
self.imported_renamed_files = {}
def get_md5(self, filepath):
f = open(filepath, 'rb')
m = hashlib.md5()
m.update(f.read())
md5 = m.hexdigest()
return md5
def ensure_dir(self, filepath): def ensure_dir(self, filepath):
@ -143,11 +152,8 @@ class MediaMonitor(ProcessEvent):
def create_unique_filename(self, filepath): def create_unique_filename(self, filepath):
file_dir = os.path.dirname(filepath) file_dir = os.path.dirname(filepath)
print file_dir
filename = os.path.basename(filepath).split(".")[0] filename = os.path.basename(filepath).split(".")[0]
print filename
file_ext = os.path.splitext(filepath)[1] file_ext = os.path.splitext(filepath)[1]
print file_ext
if(os.path.exists(filepath)): if(os.path.exists(filepath)):
i = 1; i = 1;
@ -157,7 +163,9 @@ class MediaMonitor(ProcessEvent):
if(os.path.exists(new_filepath)): if(os.path.exists(new_filepath)):
i = i+1; i = i+1;
else: else:
return new_filepath filepath = new_filepath
self.imported_renamed_files[filepath] = 0
return filepath return filepath
@ -202,11 +210,7 @@ class MediaMonitor(ProcessEvent):
def update_airtime(self, event): def update_airtime(self, event):
self.logger.info("Updating Change to Airtime") self.logger.info("Updating Change to Airtime")
try: try:
f = open(event.pathname, 'rb') md5 = self.get_md5(event.pathname)
m = hashlib.md5()
m.update(f.read())
md5 = m.hexdigest()
md = {'filepath':event.pathname, 'md5':md5} md = {'filepath':event.pathname, 'md5':md5}
file_info = mutagen.File(event.pathname, easy=True) file_info = mutagen.File(event.pathname, easy=True)
@ -221,6 +225,13 @@ class MediaMonitor(ProcessEvent):
except Exception, e: except Exception, e:
self.logger.info("%s", e) self.logger.info("%s", e)
def is_renamed_file(self, filename):
if filename in self.imported_renamed_files:
del self.imported_renamed_files[filename]
return True
return False
def is_temp_file(self, filename): def is_temp_file(self, filename):
info = filename.split(".") info = filename.split(".")
@ -239,13 +250,14 @@ class MediaMonitor(ProcessEvent):
def process_IN_CREATE(self, event): def process_IN_CREATE(self, event):
if not event.dir : if not event.dir:
#file created is a tmp file which will be modified and then moved back to the original filename. #file created is a tmp file which will be modified and then moved back to the original filename.
if self.is_temp_file(event.name) : if self.is_temp_file(event.name) :
self.temp_files[event.pathname] = None self.temp_files[event.pathname] = None
#This is a newly imported file. #This is a newly imported file.
else : else :
#if not is_renamed_file(event.pathname):
self.create_file_path(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)
@ -285,10 +297,11 @@ if __name__ == '__main__':
wm = WatchManager() wm = WatchManager()
wdd = wm.add_watch(storage_directory, mask, rec=True, auto_add=True) wdd = wm.add_watch(storage_directory, mask, rec=True, auto_add=True)
logger = logging.getLogger('root')
logger.info("Added watch to %s", storage_directory)
notifier = AirtimeNotifier(wm, MediaMonitor(), read_freq=int(config["check_filesystem_events"]), timeout=1) notifier = AirtimeNotifier(wm, MediaMonitor(), read_freq=int(config["check_filesystem_events"]), timeout=1)
notifier.coalesce_events() notifier.coalesce_events()
notifier.loop(callback=checkRabbitMQ) notifier.loop(callback=checkRabbitMQ)
except KeyboardInterrupt: except KeyboardInterrupt:
notifier.stop() notifier.stop()