diff options
| author | Tim Keller <tjk@tjkeller.xyz> | 2025-06-16 21:50:38 -0500 |
|---|---|---|
| committer | Tim Keller <tjk@tjkeller.xyz> | 2025-06-16 21:50:38 -0500 |
| commit | b8df4605b42d9a61bb4ae4731efabbdc38166063 (patch) | |
| tree | d0044ca3c47c00442d15a99da6e309c08601b99e /immich.py | |
| parent | cd1657ece1fa199964abd6544b81b394ab9369aa (diff) | |
| download | immich-frame-b8df4605b42d9a61bb4ae4731efabbdc38166063.tar.xz immich-frame-b8df4605b42d9a61bb4ae4731efabbdc38166063.zip | |
add config and add application thread manager
Diffstat (limited to 'immich.py')
| -rw-r--r-- | immich.py | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -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 |
