Migrate from Poetry and pyenv to uv
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
# `src/core/jellyfin.py`
|
||||
|
||||
Jellyfin server API client — thin, hybrid integration.
|
||||
|
||||
The NFO + artwork on disk stay authoritative (Jellyfin writes and reads them);
|
||||
this client only does what the disk can't: **trigger a library scan** and **read
|
||||
back what Jellyfin currently sees** (to verify the pool against it). Connection
|
||||
details come from `.env` — `JELLYFIN_URL` and `JELLYFIN_API_KEY` (created in
|
||||
the Jellyfin dashboard). Everything degrades gracefully when they are missing.
|
||||
|
||||
Source: [`src/core/jellyfin.py`](../../src/core/jellyfin.py)
|
||||
|
||||
## Classes
|
||||
|
||||
### `JellyfinMovie`
|
||||
|
||||
*class · line 25*
|
||||
|
||||
```python
|
||||
class JellyfinMovie:
|
||||
```
|
||||
|
||||
A movie as Jellyfin currently sees it (for verification).
|
||||
|
||||
### `JellyfinError`
|
||||
|
||||
*class · line 35*
|
||||
|
||||
```python
|
||||
class JellyfinError(RuntimeError):
|
||||
```
|
||||
|
||||
A Jellyfin request could not be completed (no config, network, status).
|
||||
|
||||
## Functions
|
||||
|
||||
### `base_url`
|
||||
|
||||
*function · line 39*
|
||||
|
||||
```python
|
||||
base_url() -> Optional[str]
|
||||
```
|
||||
|
||||
The configured Jellyfin base URL (no trailing slash), or None.
|
||||
|
||||
### `api_key`
|
||||
|
||||
*function · line 45*
|
||||
|
||||
```python
|
||||
api_key() -> Optional[str]
|
||||
```
|
||||
|
||||
The configured Jellyfin API key, or None.
|
||||
|
||||
### `api_available`
|
||||
|
||||
*function · line 51*
|
||||
|
||||
```python
|
||||
api_available() -> bool
|
||||
```
|
||||
|
||||
True when both the Jellyfin URL and API key are configured.
|
||||
|
||||
### `_request`
|
||||
|
||||
*function · line 56*
|
||||
|
||||
```python
|
||||
_request(method: str, path: str, params: Optional[dict]=None, timeout: Optional[int]=None) -> requests.Response
|
||||
```
|
||||
|
||||
Send one authenticated request to the Jellyfin server (`X-Emby-Token` header). Raises `JellyfinError` when the URL/key are missing or the server can't be reached.
|
||||
|
||||
### `server_version`
|
||||
|
||||
*function · line 74*
|
||||
|
||||
```python
|
||||
server_version(timeout: Optional[int]=None) -> str
|
||||
```
|
||||
|
||||
Return the Jellyfin server version (a quick connectivity check).
|
||||
|
||||
### `scan_all`
|
||||
|
||||
*function · line 80*
|
||||
|
||||
```python
|
||||
scan_all() -> None
|
||||
```
|
||||
|
||||
Trigger a scan of all Jellyfin libraries (picks up on-disk changes).
|
||||
|
||||
### `fetch_movies`
|
||||
|
||||
*function · line 85*
|
||||
|
||||
```python
|
||||
fetch_movies() -> list[JellyfinMovie]
|
||||
```
|
||||
|
||||
Read every movie Jellyfin currently has, with its TMDb id and path.
|
||||
Reference in New Issue
Block a user