import sys import signal from threading import Thread from OpenGL.GLUT import glutLeaveMainLoop from lazycachelist import LazyCachingTextureList from window import PixDisplay from immich import ImmichConnector from flaskapi import app, socketio def handle_sigint(sig, frame): try: glutLeaveMainLoop() sys.exit(0) except: pass finally: print("Exiting on Ctrl+C") if __name__ == "__main__": immich_connector = ImmichConnector("http://192.168.1.13", "m5nqOoBc4uhAba21gZdCP3z8D3JT4GPxDXL2psd52EA") album_keys = [ "38617851-6b57-44f1-b5f7-82577606afc4" ] lazy_texture_list = LazyCachingTextureList(immich_connector, album_keys, 30, lambda d: socketio.emit("seek", d)) pd = PixDisplay(lazy_texture_list) t1 = Thread(target=immich_connector.idle, daemon=True) t1.start() app.config["pix_display"] = pd app.config["immich_connector"] = immich_connector app.config["textures"] = lazy_texture_list flask_thread = Thread(target=app.run, daemon=True, kwargs={ "port": 5000 }) flask_thread.start() signal.signal(signal.SIGINT, handle_sigint) pd.main(sys.argv)