Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
transpondarrd
command
|
|
|
internal
|
|
|
config
Package config loads runtime configuration from the environment with sane defaults.
|
Package config loads runtime configuration from the environment with sane defaults. |
|
core/acquire
Package acquire owns search, decide, and grab, shared by the manual HTTP routes, the scheduled sweep and the feed poll so all three drive exactly one matcher.
|
Package acquire owns search, decide, and grab, shared by the manual HTTP routes, the scheduled sweep and the feed poll so all three drive exactly one matcher. |
|
core/airing
Package airing keeps per-item broadcast times in step with the metadata provider, creating the wanted items a schedule names (and the ones it skips) as it goes — for a long-runner whose episode total AniList never publishes, the schedule is the only source that knows those episodes exist.
|
Package airing keeps per-item broadcast times in step with the metadata provider, creating the wanted items a schedule names (and the ones it skips) as it goes — for a long-runner whose episode total AniList never publishes, the schedule is the only source that knows those episodes exist. |
|
core/auth
Package auth implements forms-based authentication: a single admin account (username + argon2id-hashed password) and opaque server-side login sessions carried in an httpOnly cookie.
|
Package auth implements forms-based authentication: a single admin account (username + argon2id-hashed password) and opaque server-side login sessions carried in an httpOnly cookie. |
|
core/blocklist
Package blocklist is the pipeline's failure memory: which release of a title already failed, so the sweep stops re-deriving the same doomed ranking (#118).
|
Package blocklist is the pipeline's failure memory: which release of a title already failed, so the sweep stops re-deriving the same doomed ranking (#118). |
|
core/browse
Package browse serves seasonal discovery charts from a per-season cache.
|
Package browse serves seasonal discovery charts from a per-season cache. |
|
core/catalog
Package catalog is the entry point to Transpondarr's tracked-title collection.
|
Package catalog is the entry point to Transpondarr's tracked-title collection. |
|
core/clients
Package clients holds the live download/indexer/library clients behind a mutex so the settings layer can rebuild and swap them at runtime — a config change takes effect without restarting the process.
|
Package clients holds the live download/indexer/library clients behind a mutex so the settings layer can rebuild and swap them at runtime — a config change takes effect without restarting the process. |
|
core/decide
Package decide is the "decide" stage of the pipeline: given a tracked Title's wanted items and a set of raw indexer releases, it works out which release satisfies which item.
|
Package decide is the "decide" stage of the pipeline: given a tracked Title's wanted items and a set of raw indexer releases, it works out which release satisfies which item. |
|
core/domain
Package domain holds Transpondarr's content-type-agnostic core model.
|
Package domain holds Transpondarr's content-type-agnostic core model. |
|
core/download
Package download defines the pluggable download-client interface.
|
Package download defines the pluggable download-client interface. |
|
core/download/qbittorrent
Package qbittorrent implements the download.Client interface against qBittorrent's WebUI API by wrapping the maintained autobrr/go-qbittorrent client, which owns the login/CSRF/session handshake and cross-version quirks (and re-logins automatically on session expiry).
|
Package qbittorrent implements the download.Client interface against qBittorrent's WebUI API by wrapping the maintained autobrr/go-qbittorrent client, which owns the login/CSRF/session handshake and cross-version quirks (and re-logins automatically on session expiry). |
|
core/importer
Package importer is the final pipeline stage: it watches the download client for grabs Transpondarr initiated (rows in the grabs table) and, once a torrent completes, hands the file to a library.Target and marks the item had.
|
Package importer is the final pipeline stage: it watches the download client for grabs Transpondarr initiated (rows in the grabs table) and, once a torrent completes, hands the file to a library.Target and marks the item had. |
|
core/indexer
Package indexer defines the pluggable indexer interface.
|
Package indexer defines the pluggable indexer interface. |
|
core/indexer/torznab
Package torznab implements the Indexer interface against a Torznab-compatible endpoint (e.g.
|
Package torznab implements the Indexer interface against a Torznab-compatible endpoint (e.g. |
|
core/jobs
Package jobs runs named background work on a fixed interval, in memory.
|
Package jobs runs named background work on a fixed interval, in memory. |
|
core/library
Package library defines the final stage of the import pipeline: the LibraryTarget interface.
|
Package library defines the final stage of the import pipeline: the LibraryTarget interface. |
|
core/library/mediaserver
Package mediaserver implements the library.Target interface by placing files into a Jellyfin/Plex-friendly layout, one root per format:
|
Package mediaserver implements the library.Target interface by placing files into a Jellyfin/Plex-friendly layout, one root per format: |
|
core/metadata
Package metadata defines the pluggable metadata-provider interface.
|
Package metadata defines the pluggable metadata-provider interface. |
|
core/metadata/anilist
Package anilist implements metadata.Provider against AniList's public GraphQL API (https://graphql.anilist.co).
|
Package anilist implements metadata.Provider against AniList's public GraphQL API (https://graphql.anilist.co). |
|
core/metadata/dbcache
Package dbcache implements metadata.Cache on top of the SQLite metadata_cache table (via the sqlc layer).
|
Package dbcache implements metadata.Cache on top of the SQLite metadata_cache table (via the sqlc layer). |
|
core/notify
Package notify is the notification seam: one structured Event with typed kinds, fanned out by a Dispatcher to configured adapters (Discord, generic webhook, ntfy).
|
Package notify is the notification seam: one structured Event with typed kinds, fanned out by a Dispatcher to configured adapters (Discord, generic webhook, ntfy). |
|
core/notify/discord
Package discord delivers notify events to a Discord webhook as one embed.
|
Package discord delivers notify events to a Discord webhook as one embed. |
|
core/notify/ntfy
Package ntfy delivers notify events to an ntfy topic as plain-text pushes.
|
Package ntfy delivers notify events to an ntfy topic as plain-text pushes. |
|
core/notify/webhook
Package webhook delivers notify events as a JSON POST users script against.
|
Package webhook delivers notify events as a JSON POST users script against. |
|
core/parser
Package parser turns a raw release title into structured fields — title, season, episode number(s), release group, and the quality axes (resolution, source, subtitle type, codec, version/repack, dual-audio) — using anitogo (a Go port of Anitomy): anime filename conventions are a large heuristic problem better handled by a maintained library than by hand.
|
Package parser turns a raw release title into structured fields — title, season, episode number(s), release group, and the quality axes (resolution, source, subtitle type, codec, version/repack, dual-audio) — using anitogo (a Go port of Anitomy): anime filename conventions are a large heuristic problem better handled by a maintained library than by hand. |
|
core/refresh
Package refresh grows a tracked title as its provider metadata moves: a releasing title whose episode count rises (or arrives, having been unknown at add time) gains the missing wanted items on the next pass.
|
Package refresh grows a tracked title as its provider metadata moves: a releasing title whose episode count rises (or arrives, having been unknown at add time) gains the missing wanted items on the next pass. |
|
core/settings
Package settings is the runtime-configuration layer.
|
Package settings is the runtime-configuration layer. |
|
coretest
Package coretest provides shared test doubles and fixtures for exercising the acquisition pipeline (search → decide → grab → import) end to end.
|
Package coretest provides shared test doubles and fixtures for exercising the acquisition pipeline (search → decide → grab → import) end to end. |
|
privdrop
Package privdrop lets the container start as root just long enough to fix ownership of the data directory, then sheds privileges — the in-binary equivalent of the PUID/PGID init step in linuxserver-style images, needed because the distroless image has no shell or init to do it externally.
|
Package privdrop lets the container start as root just long enough to fix ownership of the data directory, then sheds privileges — the in-binary equivalent of the PUID/PGID init step in linuxserver-style images, needed because the distroless image has no shell or init to do it externally. |
|
server
Package server wires the HTTP layer: a chi router, the Huma (OpenAPI 3.1) API, API-key auth, and the embedded single-page frontend.
|
Package server wires the HTTP layer: a chi router, the Huma (OpenAPI 3.1) API, API-key auth, and the embedded single-page frontend. |
|
store
Package store owns the SQLite database: connection, embedded goose migrations, and the sqlc-generated query layer (internal/store/db).
|
Package store owns the SQLite database: connection, embedded goose migrations, and the sqlc-generated query layer (internal/store/db). |
|
version
Package version exposes the build version, overridable via -ldflags at build time (see .goreleaser.yaml and the Makefile).
|
Package version exposes the build version, overridable via -ldflags at build time (see .goreleaser.yaml and the Makefile). |
|
Package web embeds the built frontend (web/dist) into the binary so Transpondarr ships as a single artifact.
|
Package web embeds the built frontend (web/dist) into the binary so Transpondarr ships as a single artifact. |
Click to show internal directories.
Click to hide internal directories.