Each clip row in the adult collection detail view now shows its runtime, and the header shows total runtime of the queued set (for planning a session of a given length). Durations are probed in one background SSH batch via ffprobe on black (NUL-delimited paths over stdin, so the eporner filenames with spaces/ quotes/brackets pass verbatim), debounced on filter and capped at 400 per batch. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .project | ||
| docs | ||
| fleet | ||
| governor | ||
| mcp | ||
| packages | ||
| recommender | ||
| search | ||
| site | ||
| Sources | ||
| Tests | ||
| tools | ||
| v2 | ||
| .gitignore | ||
| build-install.sh | ||
| deploy.sh | ||
| package.json | ||
| project.yml | ||
| README.md | ||
| run | ||
TVAnarchy
Native macOS app (SwiftUI) for the home media stack on plum, plus an iOS companion. Unifies what was previously CLI/MCP-only: pick a playback device (plum's VLC/QuickTime or the HDMI TV on black) and drive transport, browse a cached library, search and manage downloads, enrich metadata, and manage the device registry — all from one app.
Hybrid architecture: the control plane is native Swift (HTTP to VLC's Lua
interface; mpv JSON-IPC over SSH to black — zero new runtime deps); the
data-heavy plane reuses the vendored helper projects (mcp/, recommender/,
search/) as subprocesses. See docs/ for the full picture and
docs/roadmap.md for built-vs-designed status.
Build & dev loop
The easiest way is the ./run wrapper (see its usage and comments for all targets):
./run # (or ./run dev) — stamp + xcodegen + Debug build + install + relaunch
./run test
./run clean
./run governor fleet status
./run mcp
./run bridge
./run typecheck
./run test:all
./run deploy
...
For manual / Xcode:
brew install xcodegen # if not already present
xcodegen generate # project.yml -> TVAnarchy.xcodeproj
xcodebuild -scheme TVAnarchy -destination 'platform=macOS' build
# or open TVAnarchy.xcodeproj in Xcode and Run
See docs/operations.md for full build/install/deploy flows, release cuts, and per-platform update.
TVAnarchy.xcodeproj is generated and git-ignored — project.yml is the source of truth.
Pillars (v2)
Watch · Download · Net — product organization and full repo correlation:
v2/README.md.
Layout
Sources/TVAnarchyCore/— framework: models,PlayerTargetprotocol + impls, library/metadata/torrents/VPN subsystems, device registry.Sources/TVAnarchy/— SwiftUI macOS app (App, RootView, feature views: Home/Player/Library/Search/Downloads/Metadata/Adult/Devices/Logs/Settings).Sources/TVAnarchyiOS/— iOS companion (VLCKit player, library, downloads, remote control over an HTTP bridge).Tests/TVAnarchyCoreTests/,Tests/TVAnarchyiOSUITests/— unit + UI tests.governor/,mcp/,recommender/,search/— helper subsystems (own READMEs).fleet/— designed-only mesh layer;tools/— release/update/stamping scripts;docs/— cross-cutting documentation.
Playback devices
- Plum VLC — HTTP to
http://127.0.0.1:8080/requests/…(password from~/.config/portable-net-tv/config.jsonor$VLC_HTTP_PASSWORD). - Black (mpv) — mpv JSON-IPC over SSH, endpoints LAN
10.0.0.11→ WG overlay10.9.0.4fallback (the LAN address flaps). Launch/library/stats are delegated to per-device command templates wrapping/usr/local/bin/black-tv(the legacyblacktvkind auto-migrates to this). - QuickTime — local, zero-install, AppleScript-driven.
Devices live in ~/.config/tv-anarchy/devices.json and are editable in the
Devices tab.