summaryrefslogtreecommitdiff
path: root/pix.py
blob: 45e3f7018723c307d3b5f3a0cf80fb3d29e0cd27 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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)