#!/usr/bin/python3 import os import sys import time from watchdog.observers import Observer #from .events import ImagesEventHandler from watchdog.events import RegexMatchingEventHandler class ImagesEventHandler(RegexMatchingEventHandler): THUMBNAIL_SIZE = (128, 128) IMAGES_REGEX = [r".*[^_thumbnail]\.*$"] def __init__(self): super().__init__(self.IMAGES_REGEX) def on_created(self, event): self.process(event) def on_deleted(self, event): os.system("pkill -f pngview") def process(self, event): print("processing",event.src_path) os.system("pkill -f pngview") time.sleep(.2) os.system("/home/pi/raspidmx/pngview/pngview -l 10 "+event.src_path+" &") # filename, ext = os.path.splitext(event.src_path) # filename = f"{filename}_thumbnail.jpg" # image = Image.open(event.src_path) # image = grayscale(image) # image.thumbnail(self.THUMBNAIL_SIZE) # image.save(filename) class ImagesWatcher: def __init__(self, src_path): self.__src_path = src_path self.__event_handler = ImagesEventHandler() self.__event_observer = Observer() def run(self): self.start() try: while True: time.sleep(1) except KeyboardInterrupt: self.stop() def start(self): self.__schedule() self.__event_observer.start() def stop(self): self.__event_observer.stop() self.__event_observer.join() def __schedule(self): self.__event_observer.schedule( self.__event_handler, self.__src_path, recursive=True ) if __name__ == "__main__": src_path = sys.argv[1] if len(sys.argv) > 1 else '.' current=os.listdir(src_path)[0] os.system("/home/pi/raspidmx/pngview/pngview -l 10 "+"/home/pi/image/"+current+" &") ImagesWatcher(src_path).run()