summaryrefslogtreecommitdiff
path: root/immich.py
diff options
context:
space:
mode:
Diffstat (limited to 'immich.py')
-rw-r--r--immich.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/immich.py b/immich.py
index e73b34e..ad39942 100644
--- a/immich.py
+++ b/immich.py
@@ -3,34 +3,38 @@ from io import BytesIO
from queue import Queue
from texture import ImageTexture
+from manager import PixMan
class ImmichConnector:
- def __init__(self, server_url, api_key):
- self.server_url = server_url.removesuffix("/")
- self.api_key = api_key
+ def __init__(self):
+ config = PixMan().config
+ self.server_url = config.immich_url.removesuffix("/")
+ self.api_key = config.immich_api_key
self.texture_load_queue = Queue()
def _request(self, endpoint):
+ if not self.server_url:
+ return None
return requests.get(f"{self.server_url}/api/{endpoint}", headers={ "x-api-key": self.api_key })
def load_all_albums(self):
response = self._request("albums")
- if response.status_code != 200: return
+ if not response or response.status_code != 200: return
data = response.json()
return data
def load_album_assets(self, key):
response = self._request(f"albums/{key}")
- if response.status_code != 200: return
+ if not response or response.status_code != 200: return
data = response.json()
return data["assets"]
def load_image(self, key, size="preview"):
response = self._request(f"assets/{key}/thumbnail?size={size}")
- if response.status_code != 200: return None, None
+ if not response or response.status_code != 200: return None, None
image_data = BytesIO(response.content)
mimetype = response.headers.get("Content-Type")
@@ -47,3 +51,7 @@ class ImmichConnector:
continue # Texture was never loaded so it doesn't need to be free'd
image_data, _ = self.load_image(image_texture.asset_key, size)
image_texture.initialize(image_data)
+
+ def validate_connection(self):
+ # TODO
+ return True