Initial toni-sync CLI: sync local playlist folders to Kreativ-Tonies

- Config commands (config add/list/remove) to map local audio folders
  to Kreativ-Tonies via TonieCloud household/tonie ids
- tonies list command to look up household/tonie ids
- sync command: diff-based upload of new tracks, pruning of removed
  chapters, and reordering to match local file order (via tonie-api)
- Credentials resolved via env vars/CLI flags/prompt, never stored
- Unit tests for config persistence and sync planning/apply logic

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-08-13 22:41:00 +02:00
co-authored by Copilot
commit 4860edf886
10 changed files with 727 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
[build-system]
requires = ["setuptools>=68", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "toni-sync"
version = "0.1.0"
description = "CLI tool to sync local audio folders (e.g. exported Deezer playlists) to Kreativ-Tonies via the TonieCloud API."
readme = "README.md"
requires-python = ">=3.10"
license = { text = "MIT" }
dependencies = [
"click>=8.1",
"pydantic>=2.0",
"PyYAML>=6.0",
"tonie-api>=0.1.2",
]
[project.scripts]
toni-sync = "toni_sync.cli:cli"
[tool.setuptools.packages.find]
where = ["src"]
[project.optional-dependencies]
dev = [
"pytest>=8.0",
]