add filter function to the dispatcher
This commit is contained in:
parent
0a0007e1d0
commit
1483812c3b
|
@ -1,16 +1,26 @@
|
|||
import threading
|
||||
import os
|
||||
|
||||
class Dispatcher:
|
||||
|
||||
threads = []
|
||||
callbackExecutor = None
|
||||
extensionFilter = None
|
||||
|
||||
def __init__(self, callbackExecutor):
|
||||
self.callbackExecutor = callbackExecutor
|
||||
|
||||
def apply_filter(self, audio_file):
|
||||
# TODO: return True if audio file is valid, based on name, extension, and other criteria
|
||||
if os.path.isdir(audio_file):
|
||||
return False
|
||||
return True
|
||||
|
||||
def execute(self, audio_file):
|
||||
thread = threading.Thread(target=self._execute_thread, args=(audio_file.pathname,))
|
||||
thread.start()
|
||||
if self.apply_filter(audio_file.pathname):
|
||||
self.threads.append(threading.Thread(target=self._execute_thread, args=(audio_file.pathname,)))
|
||||
self.threads[-1].start()
|
||||
# TODO: we need to have a way to wipe old threads, otherwise we will have a memory leak
|
||||
|
||||
def _execute_thread(self, audio_file):
|
||||
self.callbackExecutor.execute(audio_file)
|
|
@ -21,14 +21,3 @@ class Picker:
|
|||
|
||||
print(f'Watching {self.directory} for changes...')
|
||||
notifier.loop()
|
||||
|
||||
# def observe_directory(directory):
|
||||
# wm = pyinotify.WatchManager()
|
||||
# notifier = pyinotify.Notifier(wm, EventHandler())
|
||||
# wm.add_watch(directory, pyinotify.IN_CREATE)
|
||||
|
||||
# print(f'Watching {directory} for changes...')
|
||||
# notifier.loop()
|
||||
|
||||
# Use the function
|
||||
# observe_directory('/home/octopusx/Code/test')
|
||||
|
|
Loading…
Reference in New Issue