from time import sleep import os from loguru import logger from src.utils.base.base import BaseDirectoryMonitor class DirectoryMonitor(BaseDirectoryMonitor): def _init_state(self): files = os.listdir(self._directory_path) self._files = files self.update_timer.timeout.connect(self._monitor) logger.info("Monitor initiated!") def _monitor(self): files = os.listdir(self._directory_path) new_files = sorted(list(map(lambda x: os.path.join(self._directory_path, x), filter(lambda x: x not in self._files, files)))) if new_files: logger.info(f"New files detected: {new_files}") self._mediator.notify(self, new_files) self._files = files if not files: self._files = []