Initial tdarr-cli: Python CLI for the Tdarr API
All checks were successful
release / release (push) Successful in 1m4s
All checks were successful
release / release (push) Successful in 1m4s
status/nodes/worker/cruddb/insert/api commands (stdlib only). Cracked Tdarr's x-api-key auth (seededApiKey), alter-worker-limit and update-node formats. Used to set up 2-node transcoding (workstation NVENC + Pi5 CPU fallback). Playbook standard: README (per-OS prereqs), doc/plan.md, .gitignore (build/ first), VS Code build task, install.sh + one-line curl, Gitea Actions rolling-latest release. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011YPrEZVBpPVoCRyJz2exkZ
This commit is contained in:
40
doc/plan.md
Normal file
40
doc/plan.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# tdarr-cli — plan
|
||||
|
||||
## Goal
|
||||
En liten, skriptbar CLI mot Tdarrs (odokumenterade) HTTP-API så att Tdarr-servern
|
||||
på Pi5 kan konfigureras/styras utan webb-UI:t — noder, worker-gränser, bibliotek
|
||||
och generiska anrop. Ursprungligen byggd för att sätta upp 2-nod-transkodning
|
||||
(workstation NVENC + Pi5 CPU-fallback).
|
||||
|
||||
## Stack
|
||||
- Python 3, endast standardbibliotek (`urllib`, `json`, `argparse`). Ingen build.
|
||||
- Arkitektur-oberoende (körs på både x64 och arm64 med python3).
|
||||
|
||||
## Deploy target
|
||||
Pattern A — installerbar CLI. Release-CI publicerar `tdarrctl` (+ `install.sh`,
|
||||
`checksums.txt`) till en rullande `latest`-release; en-rads `curl … | sh`-install.
|
||||
|
||||
## Auth
|
||||
`x-api-key` (Tdarr `seededApiKey`). Nyckeln läses ur env eller `~/tdarr-node/.env`,
|
||||
skrivs aldrig ut.
|
||||
|
||||
## Kommandon (nuläge)
|
||||
`status`, `nodes`, `worker`, `libraries`, `cruddb` (generisk collection-CRUD),
|
||||
`insert` (insert/update/removeOne), `api` (generiskt HTTP).
|
||||
|
||||
Kartlagda API-detaljer:
|
||||
- `alter-worker-limit`: `{data:{nodeID, workerType:<transcodegpu|…>, process:<increase|decrease>}}`.
|
||||
- `update-node`: `{data:{nodeID, nodeUpdates:{…}}}` (t.ex. `nodePaused`).
|
||||
- cruddb-collections: `LibrarySettingsJSONDB`, `FlowsJSONDB`, `NodeJSONDB`, `PluginJSONDB`, m.fl.
|
||||
modes: `getAll`, `insert`, `update`, `removeOne`.
|
||||
|
||||
## Roadmap / expansions
|
||||
- Bekvämlighetskommandon: `pause <nod>` / `resume <nod>` (wrappar `update-node`).
|
||||
- `create-library` / `set-flow` som bygger korrekta objekt (Tdarr-objekten är
|
||||
stora/ömtåliga via rå cruddb — bibliotek/flow görs idag bäst i UI:t).
|
||||
- Konfigfil (`~/.config/tdarrctl/config.json`) för URL + nyckel-referens.
|
||||
- `--json`-utdata för skriptning.
|
||||
|
||||
## Open questions
|
||||
- Vilka fler high-level-kommandon är värda att curera (vs generisk `cruddb`/`api`)?
|
||||
- Ska den slås ihop med/ersättas av tdarr-tray för icke-CLI-styrning?
|
||||
Reference in New Issue
Block a user