internal/

directory
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 2, 2026 License: AGPL-3.0

Directories

Path Synopsis
Package accounts is an encrypted-at-rest store for premium/debrid credentials.
Package accounts is an encrypted-at-rest store for premium/debrid credentials.
Package api exposes the app over HTTP: a small REST surface plus a WebSocket stream under /api, and the embedded SPA everywhere else.
Package api exposes the app over HTTP: a small REST surface plus a WebSocket stream under /api, and the embedded SPA everywhere else.
Package apitoken is named, individually revocable API credentials: the answer to "a phone gets its own", so losing one device means revoking that one token rather than rotating the shared password for every other client.
Package apitoken is named, individually revocable API credentials: the answer to "a phone gets its own", so losing one device means revoking that one token rather than rotating the shared password for every other client.
Package app wires the store, engine, resolver registry and WebSocket hub into one coordinator.
Package app wires the store, engine, resolver registry and WebSocket hub into one coordinator.
Package auth is KnightLoader's optional password lock.
Package auth is KnightLoader's optional password lock.
Package backup builds the downloadable snapshot of everything a restore needs to bring an install back, and validates and stages an uploaded one.
Package backup builds the downloadable snapshot of everything a restore needs to bring an install back, and validates and stages an uploaded one.
Package bridge forwards Click'n'Load submissions to a KnightLoader that runs somewhere other than the browser's own machine.
Package bridge forwards Click'n'Load submissions to a KnightLoader that runs somewhere other than the browser's own machine.
Package buildinfo carries the build version, stamped at release time via -ldflags "-X github.com/junkerderprovinz/knightloader/internal/buildinfo.Version=vX.Y.Z".
Package buildinfo carries the build version, stamped at release time via -ldflags "-X github.com/junkerderprovinz/knightloader/internal/buildinfo.Version=vX.Y.Z".
Package captcha is the honest source of truth for one thing: a hoster (or, for an OAuth-style login gate, an account) demanding something a human has to answer before a download can continue.
Package captcha is the honest source of truth for one thing: a hoster (or, for an OAuth-style login gate, an account) demanding something a human has to answer before a download can continue.
Package checksum verifies finished downloads against the hashes that ship with them: .sfv listings, md5sum/sha1sum/sha256sum files, and the CRC32 tag that release names carry in the file name itself.
Package checksum verifies finished downloads against the hashes that ship with them: .sfv listings, md5sum/sha1sum/sha256sum files, and the CRC32 tag that release names carry in the file name itself.
Package cnl implements the Click'n'Load protocol: browser extensions and "CNL" buttons on websites POST link lists to 127.0.0.1:9666, the de-facto standard port JDownloader and pyLoad listen on.
Package cnl implements the Click'n'Load protocol: browser extensions and "CNL" buttons on websites POST link lists to 127.0.0.1:9666, the de-facto standard port JDownloader and pyLoad listen on.
Package collide decides what happens when a download would land on a name that is already taken.
Package collide decides what happens when a download would land on a name that is already taken.
Package confirm decides what happens to a link at the moment a batch leaves the collector: what to do with one that duplicates a link already in the list (OnDupes) and with one a check has already found offline (OnOffline), settled together so the person confirming a batch reads one sentence instead of two prompts back to back.
Package confirm decides what happens to a link at the moment a batch leaves the collector: what to do with one that duplicates a link already in the list (OnDupes) and with one a check has already found offline (OnOffline), settled together so the person confirming a batch reads one sentence instead of two prompts back to back.
Package container reads the link-container files a download manager is expected to open: a plain list of links, and the encrypted formats the scene has used for twenty years — DLC, CCF and RSDF.
Package container reads the link-container files a download manager is expected to open: a plain list of links, and the encrypted formats the scene has used for twenty years — DLC, CCF and RSDF.
Package core holds KnightLoader's shared domain types.
Package core holds KnightLoader's shared domain types.
Package crawler turns one page URL into the many file links it points at.
Package crawler turns one page URL into the many file links it points at.
Package dedupe answers one question about a link that is about to be added: is it already in the list? It keeps two answers apart on purpose.
Package dedupe answers one question about a link that is about to be added: is it already in the list? It keeps two answers apart on purpose.
Package discovery makes KnightLoader instances on one network find each other with nothing configured at all.
Package discovery makes KnightLoader instances on one network find each other with nothing configured at all.
Package engine wraps the embedded Gopeed download library and reports task updates back to the app.
Package engine wraps the embedded Gopeed download library and reports task updates back to the app.
Package extract unpacks downloaded archives (zip, rar incl.
Package extract unpacks downloaded archives (zip, rar incl.
Package federation lets one KnightLoader act as the dashboard for others: peer instances are stored locally, and their REST APIs are proxied so the UI can view and control every instance from one place.
Package federation lets one KnightLoader act as the dashboard for others: peer instances are stored locally, and their REST APIs are proxied so the UI can view and control every instance from one place.
Package hosterauth is the native, per-host hoster login: KL's own host list, username/password form and per-row sync status, all rendered in KL's Carbon UI (see the frontend HosterLoginSection) - never JD's own web interface.
Package hosterauth is the native, per-host hoster login: KL's own host list, username/password form and per-row sync status, all rendered in KL's Carbon UI (see the frontend HosterLoginSection) - never JD's own web interface.
Package httpx is the one outbound HTTP policy this app has.
Package httpx is the one outbound HTTP policy this app has.
Package hub is a minimal WebSocket fan-out: the app broadcasts task updates, every connected UI receives them live.
Package hub is a minimal WebSocket fan-out: the app broadcasts task updates, every connected UI receives them live.
Package idleaction answers what happens once the wait queue has nothing left to do on its own, and how long a person gets to change their mind before it does.
Package idleaction answers what happens once the wait queue has nothing left to do on its own, and how long a person gets to change their mind before it does.
Package linkscan finds the links inside whatever a person actually pastes, drops or forwards, so every intake path can hand it a raw blob instead of each inventing its own splitting rule.
Package linkscan finds the links inside whatever a person actually pastes, drops or forwards, so every intake path can hand it a raw blob instead of each inventing its own splitting rule.
Package logring keeps a bounded tail of the process's own log output in memory, for the diagnostics bundle and nothing else: it is not a log sink anybody configures, it never touches disk, and nothing here decides what gets logged - only what happens to the lines after something else already decided to log them.
Package logring keeps a bounded tail of the process's own log output in memory, for the diagnostics bundle and nothing else: it is not a log sink anybody configures, it never touches disk, and nothing here decides what gets logged - only what happens to the lines after something else already decided to log them.
Package netproxy runs a loopback HTTP proxy that all downloads are pointed at.
Package netproxy runs a loopback HTTP proxy that all downloads are pointed at.
Package pathvars expands JDownloader-style path variables, so a download folder can be written as "/downloads/<jd:packagename>/<jd:simpledate:yyyy-MM>" instead of a literal path.
Package pathvars expands JDownloader-style path variables, so a download folder can be written as "/downloads/<jd:packagename>/<jd:simpledate:yyyy-MM>" instead of a literal path.
Package portmap asks a UPnP gateway to forward a port to this machine, and tells the caller whether the router actually kept the mapping rather than just accepting the request.
Package portmap asks a UPnP gateway to forward a port to this machine, and tells the caller whether the router actually kept the mapping rather than just accepting the request.
Package provision sets up a private, headless JDownloader for the desktop build so the user gets full hoster coverage out of the box without ever seeing JD's own UI.
Package provision sets up a private, headless JDownloader for the desktop build so the user gets full hoster coverage out of the box without ever seeing JD's own UI.
Package proxycfg models JDownloader's Connection Manager: a user-ordered list of outbound connections that downloads are spread across.
Package proxycfg models JDownloader's Connection Manager: a user-ordered list of outbound connections that downloads are spread across.
Package reconnect gets the box a new public IP address, which is the only thing that lifts a hoster's free-user limit when the limit is keyed to the address.
Package reconnect gets the box a new public IP address, which is the only thing that lifts a hoster's free-user limit when the limit is keyed to the address.
Package relay routes messages between KnightLoader instances that present the same relay key, so two instances behind NAT - neither of which can accept an inbound connection - can still reach each other by both dialling out to one place they can both reach.
Package relay routes messages between KnightLoader instances that present the same relay key, so two instances behind NAT - neither of which can accept an inbound connection - can still reach each other by both dialling out to one place they can both reach.
Package resolver is KnightLoader's plugin seam.
Package resolver is KnightLoader's plugin seam.
debrid
Package debrid is the shared seam for one-shot debrid providers: services that turn a supported file-hoster link into a direct URL in a single call (AllDebrid, Real-Debrid).
Package debrid is the shared seam for one-shot debrid providers: services that turn a supported file-hoster link into a direct URL in a single call (AllDebrid, Real-Debrid).
jd
Package jd talks to a headless JDownloader through its local "Deprecated API" (plain HTTP JSON on :3128, no cloud, no crypto).
Package jd talks to a headless JDownloader through its local "Deprecated API" (plain HTTP JSON on :3128, no cloud, no crypto).
torbox
Package torbox is the debrid resolver: it turns a supported file-hoster link into a direct CDN URL via TorBox's Web Downloads / Debrid API, which the embedded engine then downloads.
Package torbox is the debrid resolver: it turns a supported file-hoster link into a direct CDN URL via TorBox's Web Downloads / Debrid API, which the embedded engine then downloads.
torrent
Package torrent is KnightLoader's BitTorrent intake: it recognises magnet links and uploaded .torrent files, refuses the ones that are malformed or built to be hostile, and hands the rest to the embedded download engine.
Package torrent is KnightLoader's BitTorrent intake: it recognises magnet links and uploaded .torrent files, refuses the ones that are malformed or built to be hostile, and hands the rest to the embedded download engine.
ytdlp
Package ytdlp is the media-extraction backend: it delegates the download to the yt-dlp binary (which handles ~1800 sites incl.
Package ytdlp is the media-extraction backend: it delegates the download to the yt-dlp binary (which handles ~1800 sites incl.
Package rules is KnightLoader's rule engine.
Package rules is KnightLoader's rule engine.
Package schedule answers one question: at this moment, should the queue be running, and how fast.
Package schedule answers one question: at this moment, should the queue be running, and how fast.
Package script is KnightLoader's answer to JDownloader's Event Scripter: a goja (pure-Go ECMAScript 5.1(+)) VM host that runs a small, user-written JavaScript snippet against one of a fixed set of app events - a task finishing, a task settling as failed, the wait queue going idle, or a person pressing "run now" on a saved script (see Trigger).
Package script is KnightLoader's answer to JDownloader's Event Scripter: a goja (pure-Go ECMAScript 5.1(+)) VM host that runs a small, user-written JavaScript snippet against one of a fixed set of app events - a task finishing, a task settling as failed, the wait queue going idle, or a person pressing "run now" on a saved script (see Trigger).
Package seedphrase turns the secret that groups a person's own instances into twelve words, and back.
Package seedphrase turns the secret that groups a person's own instances into twelve words, and back.
Package settings persists user-tunable behaviour (concurrency, speed limit, extraction) as JSON in the data dir and hands out consistent snapshots.
Package settings persists user-tunable behaviour (concurrency, speed limit, extraction) as JSON in the data dir and hands out consistent snapshots.
Package store persists tasks in a local SQLite database (pure-Go driver, no cgo).
Package store persists tasks in a local SQLite database (pure-Go driver, no cgo).
Package throttle caps the combined download speed of everything that copies bytes through it.
Package throttle caps the combined download speed of everything that copies bytes through it.
Package update checks whether a newer KnightLoader release exists, surfaced on both deployments' General tab now (jdp, 2026-08-24: a container user hit the card's old desktop-only gate and asked where the toggle had gone - checking GitHub and saying so is exactly as harmless for a container as for desktop).
Package update checks whether a newer KnightLoader release exists, surfaced on both deployments' General tab now (jdp, 2026-08-24: a container user hit the card's old desktop-only gate and asked where the toggle had gone - checking GitHub and saying so is exactly as harmless for a container as for desktop).
Package watch picks up links dropped into a folder.
Package watch picks up links dropped into a folder.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL