diff --git a/kiss/ssmanager.py b/kiss/ssmanager.py index eabb318..45de294 100644 --- a/kiss/ssmanager.py +++ b/kiss/ssmanager.py @@ -5,15 +5,21 @@ import time from pathlib import Path from threading import Thread +import yaml +from PIL import Image + class ScreenshotManager: def __init__(self): self.__config_path = os.environ.get("CONFIG_FILE", "/data/config.yml") - self.data_path = tempfile.gettempdir() if not Path(self.__config_path).is_file(): raise ValueError("Invalid Configuration") + cf = open(self.__config_path, "r") + self.__config_yaml = yaml.safe_load(cf) + self.data_path = tempfile.gettempdir() + def stop(self): self.__pending_shutdown = True self.__loop_thread.join() @@ -23,6 +29,12 @@ class ScreenshotManager: self.__loop_thread = Thread(target=self.__loop) self.__loop_thread.start() + def __rotate_file(self, filename): + fp = Path(self.data_path, filename) + img = Image.open(fp) + img = img.rotate(90, expand=True) + img.save(fp) + def __loop(self): counter = 0 while not self.__pending_shutdown: @@ -30,5 +42,9 @@ class ScreenshotManager: subprocess.run( ["shot-scraper", "multi", self.__config_path], cwd=self.data_path ) + for ss in self.__config_yaml: + if ss.get("rotate", False) is True: + self.__rotate_file(ss.get("output")) + time.sleep(1) counter += 1 diff --git a/setup.py b/setup.py index 44ac398..6019c12 100644 --- a/setup.py +++ b/setup.py @@ -10,6 +10,7 @@ setup( include_package_data=True, entry_points={"console_scripts": ["kiss = kiss:cli"]}, install_requires=[ + "Pillow", "Flask>=2.2", ], tests_require=["pytest"],