Merge branch 'devel' of dev.sourcefabric.org:airtime into devel
This commit is contained in:
commit
99029e4772
|
@ -15,9 +15,15 @@ from airtimefilemonitor.airtimeprocessevent import AirtimeProcessEvent
|
|||
from airtimefilemonitor.mediaconfig import AirtimeMediaConfig
|
||||
|
||||
def handleSigTERM(signum, frame):
|
||||
logger = logging.getLogger()
|
||||
logger.info("Main Process Shutdown, TERM signal caught. %d")
|
||||
if p is not None:
|
||||
for p in processes:
|
||||
p.terminate()
|
||||
logger.info("Killed process. %d", p.pid)
|
||||
|
||||
notifier_daemon_pid = open('/var/run/airtime-notifier.pid', 'r').read()
|
||||
os.kill(int(notifier_daemon_pid), 9)
|
||||
logger.info("Killed process. %d", int(notifier_daemon_pid))
|
||||
|
||||
sys.exit(0)
|
||||
|
||||
|
@ -30,7 +36,7 @@ except Exception, e:
|
|||
sys.exit()
|
||||
|
||||
logger = logging.getLogger()
|
||||
p = None
|
||||
processes = []
|
||||
|
||||
try:
|
||||
config = AirtimeMediaConfig()
|
||||
|
@ -43,7 +49,7 @@ try:
|
|||
#create 5 worker processes
|
||||
for i in range(5):
|
||||
p = Process(target=notifier.process_file_events, args=(pe.multi_queue,))
|
||||
p.daemon = True
|
||||
processes.append(p)
|
||||
p.start()
|
||||
|
||||
signal.signal(signal.SIGTERM, handleSigTERM)
|
||||
|
|
|
@ -31,6 +31,7 @@ class AirtimeProcessEvent(ProcessEvent):
|
|||
self.supported_file_formats = ['mp3', 'ogg']
|
||||
self.temp_files = {}
|
||||
self.moved_files = {}
|
||||
self.gui_replaced = {}
|
||||
self.renamed_files = {}
|
||||
self.file_events = []
|
||||
self.multi_queue = mpQueue()
|
||||
|
@ -222,16 +223,18 @@ class AirtimeProcessEvent(ProcessEvent):
|
|||
|
||||
def process_IN_MODIFY(self, event):
|
||||
if not event.dir:
|
||||
#self.logger.info("%s: %s", event.maskname, event.pathname)
|
||||
self.logger.info("%s: %s", event.maskname, event.pathname)
|
||||
if event.pathname in self.renamed_files:
|
||||
pass
|
||||
elif self.is_audio_file(event.name):
|
||||
self.file_events.append({'filepath': event.pathname, 'mode': self.config.MODE_MODIFY})
|
||||
|
||||
def process_IN_MOVED_FROM(self, event):
|
||||
#self.logger.info("%s: %s", event.maskname, event.pathname)
|
||||
self.logger.info("%s: %s", event.maskname, event.pathname)
|
||||
if not event.dir:
|
||||
if event.pathname in self.temp_files:
|
||||
if "goutputstream" in event.pathname:
|
||||
self.gui_replaced[event.cookie] = None
|
||||
elif event.pathname in self.temp_files:
|
||||
del self.temp_files[event.pathname]
|
||||
self.temp_files[event.cookie] = event.pathname
|
||||
elif event.pathname in self.renamed_files:
|
||||
|
@ -240,13 +243,16 @@ class AirtimeProcessEvent(ProcessEvent):
|
|||
self.moved_files[event.cookie] = event.pathname
|
||||
|
||||
def process_IN_MOVED_TO(self, event):
|
||||
#self.logger.info("%s: %s", event.maskname, event.pathname)
|
||||
self.logger.info("%s: %s", event.maskname, event.pathname)
|
||||
#if stuff dropped in stor via a UI move must change file permissions.
|
||||
self.set_needed_file_permissions(event.pathname, event.dir)
|
||||
if not event.dir:
|
||||
if event.cookie in self.temp_files:
|
||||
del self.temp_files[event.cookie]
|
||||
self.file_events.append({'filepath': event.pathname, 'mode': self.config.MODE_MODIFY})
|
||||
elif event.cookie in self.gui_replaced:
|
||||
del self.gui_replaced[event.cookie]
|
||||
self.file_events.append({'filepath': event.pathname, 'mode': self.config.MODE_MODIFY})
|
||||
elif event.cookie in self.moved_files:
|
||||
old_filepath = self.moved_files[event.cookie]
|
||||
del self.moved_files[event.cookie]
|
||||
|
|
Loading…
Reference in New Issue