Documentation
¶
Index ¶
- func RespondError(w http.ResponseWriter, status int, message string)
- func RespondJSON(w http.ResponseWriter, status int, data any)
- type ActivateLicenseRequest
- type ActivateLicenseResponse
- type AddFeedRequest
- type AddFolderRequest
- type AddTrackerRequest
- type ApplicationDatabaseInfo
- type ApplicationHandler
- type ApplicationInfoResponse
- type ArrHandler
- func (h *ArrHandler) CreateInstance(w http.ResponseWriter, r *http.Request)
- func (h *ArrHandler) DeleteInstance(w http.ResponseWriter, r *http.Request)
- func (h *ArrHandler) GetInstance(w http.ResponseWriter, r *http.Request)
- func (h *ArrHandler) ListInstances(w http.ResponseWriter, r *http.Request)
- func (h *ArrHandler) Resolve(w http.ResponseWriter, r *http.Request)
- func (h *ArrHandler) TestConnection(w http.ResponseWriter, r *http.Request)
- func (h *ArrHandler) TestInstance(w http.ResponseWriter, r *http.Request)
- func (h *ArrHandler) UpdateInstance(w http.ResponseWriter, r *http.Request)
- type AuthHandler
- func (h *AuthHandler) ChangePassword(w http.ResponseWriter, r *http.Request)
- func (h *AuthHandler) CheckSetupRequired(w http.ResponseWriter, r *http.Request)
- func (h *AuthHandler) CreateAPIKey(w http.ResponseWriter, r *http.Request)
- func (h *AuthHandler) DeleteAPIKey(w http.ResponseWriter, r *http.Request)
- func (h *AuthHandler) GetCurrentUser(w http.ResponseWriter, r *http.Request)
- func (h *AuthHandler) GetOIDCHandler() *OIDCHandler
- func (h *AuthHandler) ListAPIKeys(w http.ResponseWriter, r *http.Request)
- func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request)
- func (h *AuthHandler) Logout(w http.ResponseWriter, r *http.Request)
- func (h *AuthHandler) Setup(w http.ResponseWriter, r *http.Request)
- func (h *AuthHandler) Validate(w http.ResponseWriter, r *http.Request)
- type AutomationDryRunResult
- type AutomationHandler
- func (h *AutomationHandler) ApplyNow(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) Create(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) Delete(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) DeleteActivity(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) DryRunNow(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) GetActivityRun(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) List(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) ListActivity(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) PreviewDeleteRule(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) Reorder(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) Update(w http.ResponseWriter, r *http.Request)
- func (h *AutomationHandler) ValidateRegex(w http.ResponseWriter, r *http.Request)
- type AutomationPayload
- type BackupsHandler
- func (h *BackupsHandler) DeleteAllRuns(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) DeleteRun(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) DownloadRun(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) DownloadTorrentBlob(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) ExecuteRestore(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) GetManifest(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) GetSettings(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) ImportManifest(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) ListRuns(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) PreviewRestore(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) TriggerBackup(w http.ResponseWriter, r *http.Request)
- func (h *BackupsHandler) UpdateSettings(w http.ResponseWriter, r *http.Request)
- type BulkActionRequest
- type BulkActionTarget
- type ChangePasswordRequest
- type CheckResult
- type ClientAPIKeyWithInstance
- type ClientAPIKeysHandler
- type CreateAPIKeyRequest
- type CreateClientAPIKeyRequest
- type CreateClientAPIKeyResponse
- type CreateInstanceRequest
- type CrossSeedBlocklistRequest
- type CrossSeedHandler
- func (h *CrossSeedHandler) AddBlocklistEntry(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) AnalyzeTorrentForSearch(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) ApplyTorrentSearchResults(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) AutobrrApply(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) CancelAutomationRun(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) CancelSearchRun(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) DeleteBlocklistEntry(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) GetAsyncFilteringStatus(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) GetAutomationSettings(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) GetAutomationStatus(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) GetCrossSeedStatus(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) GetInstanceCompletionSettings(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) GetLocalMatches(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) GetSearchRunStatus(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) GetSearchSettings(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) ListAutomationRuns(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) ListBlocklist(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) ListSearchRunHistory(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) ListSeasonPackRuns(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) PatchAutomationSettings(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) PatchSearchSettings(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) Routes(r chi.Router, authMiddleware func(http.Handler) http.Handler, ...)
- func (h *CrossSeedHandler) SearchTorrentMatches(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) SeasonPackApply(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) SeasonPackCheck(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) StartSearchRun(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) TriggerAutomationRun(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) UpdateAutomationSettings(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) UpdateInstanceCompletionSettings(w http.ResponseWriter, r *http.Request)
- func (h *CrossSeedHandler) WebhookCheck(w http.ResponseWriter, r *http.Request)
- type CustomTheme
- type CustomThemesResponse
- type DashboardSettingsHandler
- type DeleteInstanceResponse
- type DirScanDirectoryPayload
- type DirScanHandler
- func (h *DirScanHandler) CancelScan(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) CreateDirectory(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) DeleteDirectory(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) GetDirectory(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) GetSettings(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) GetStatus(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) ListDirectories(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) ListFiles(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) ListRunInjections(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) ListRuns(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) ResetFiles(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) TriggerScan(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) UpdateDirectory(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) UpdateSettings(w http.ResponseWriter, r *http.Request)
- func (h *DirScanHandler) WebhookTriggerScan(w http.ResponseWriter, r *http.Request)
- type DirScanSettingsPayload
- type EditTrackerRequest
- type ErrorResponse
- type ExternalProgramsHandler
- func (h *ExternalProgramsHandler) CreateExternalProgram(w http.ResponseWriter, r *http.Request)
- func (h *ExternalProgramsHandler) DeleteExternalProgram(w http.ResponseWriter, r *http.Request)
- func (h *ExternalProgramsHandler) ExecuteExternalProgram(w http.ResponseWriter, r *http.Request)
- func (h *ExternalProgramsHandler) ListExternalPrograms(w http.ResponseWriter, r *http.Request)
- func (h *ExternalProgramsHandler) UpdateExternalProgram(w http.ResponseWriter, r *http.Request)
- type ExtractedArchive
- type FeedsUpdatePayload
- type HealthHandler
- type HealthResponse
- type IndexerResponse
- type InstanceCapabilitiesResponse
- type InstanceReannounceSettingsPayload
- type InstanceResponse
- type InstancesHandler
- func (h *InstancesHandler) CreateInstance(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) DeleteInstance(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) GetInstanceCapabilities(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) GetReannounceActivity(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) GetReannounceCandidates(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) GetTransferInfo(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) ListInstances(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) TestConnection(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) UpdateInstance(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) UpdateInstanceOrder(w http.ResponseWriter, r *http.Request)
- func (h *InstancesHandler) UpdateInstanceStatus(w http.ResponseWriter, r *http.Request)
- type JackettHandler
- func (h *JackettHandler) CreateIndexer(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) CrossSeedSearch(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) DeleteIndexer(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) DiscoverIndexers(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) GetActivityStatus(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) GetAllHealth(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) GetIndexer(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) GetIndexerErrors(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) GetIndexerHealth(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) GetIndexerStats(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) GetIndexerTrackerDomains(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) GetSearchCacheStats(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) GetSearchHistory(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) ListIndexers(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) ListRecentSearches(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) Routes(r chi.Router)
- func (h *JackettHandler) Search(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) SyncIndexerCaps(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) TestIndexer(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) UpdateIndexer(w http.ResponseWriter, r *http.Request)
- func (h *JackettHandler) UpdateSearchCacheSettings(w http.ResponseWriter, r *http.Request)
- type LatestVersionResponse
- type LicenseHandler
- func (h *LicenseHandler) ActivateLicense(w http.ResponseWriter, r *http.Request)
- func (h *LicenseHandler) DeleteLicense(w http.ResponseWriter, r *http.Request)
- func (h *LicenseHandler) GetAllLicenses(w http.ResponseWriter, r *http.Request)
- func (h *LicenseHandler) GetLicensedThemes(w http.ResponseWriter, r *http.Request)
- func (h *LicenseHandler) RefreshLicenses(w http.ResponseWriter, r *http.Request)
- func (h *LicenseHandler) Routes(r chi.Router)
- func (h *LicenseHandler) ValidateLicense(w http.ResponseWriter, r *http.Request)
- type LicenseInfo
- type LogExclusionsHandler
- type LogFileEntry
- type LoginRequest
- type LogsHandler
- func (h *LogsHandler) DownloadLogFile(w http.ResponseWriter, r *http.Request)
- func (h *LogsHandler) GetHub() *logstream.Hub
- func (h *LogsHandler) GetLogSettings(w http.ResponseWriter, r *http.Request)
- func (h *LogsHandler) ListLogFiles(w http.ResponseWriter, _ *http.Request)
- func (h *LogsHandler) Routes(r chi.Router)
- func (h *LogsHandler) StreamLogs(w http.ResponseWriter, r *http.Request)
- func (h *LogsHandler) UpdateLogSettings(w http.ResponseWriter, r *http.Request)
- type MarkAsReadRequest
- type MoveItemRequest
- type NotificationsHandler
- func (h *NotificationsHandler) CreateTarget(w http.ResponseWriter, r *http.Request)
- func (h *NotificationsHandler) DeleteTarget(w http.ResponseWriter, r *http.Request)
- func (h *NotificationsHandler) ListEvents(w http.ResponseWriter, _ *http.Request)
- func (h *NotificationsHandler) ListTargets(w http.ResponseWriter, r *http.Request)
- func (h *NotificationsHandler) TestTarget(w http.ResponseWriter, r *http.Request)
- func (h *NotificationsHandler) UpdateTarget(w http.ResponseWriter, r *http.Request)
- type OIDCClaims
- type OIDCConfigResponse
- type OIDCHandler
- type OrphanScanHandler
- func (h *OrphanScanHandler) CancelRun(w http.ResponseWriter, r *http.Request)
- func (h *OrphanScanHandler) ConfirmDeletion(w http.ResponseWriter, r *http.Request)
- func (h *OrphanScanHandler) GetRun(w http.ResponseWriter, r *http.Request)
- func (h *OrphanScanHandler) GetSettings(w http.ResponseWriter, r *http.Request)
- func (h *OrphanScanHandler) ListRuns(w http.ResponseWriter, r *http.Request)
- func (h *OrphanScanHandler) TriggerScan(w http.ResponseWriter, r *http.Request)
- func (h *OrphanScanHandler) UpdateSettings(w http.ResponseWriter, r *http.Request)
- type OrphanScanSettingsPayload
- type PreferencesHandler
- func (h *PreferencesHandler) GetAlternativeSpeedLimitsMode(w http.ResponseWriter, r *http.Request)
- func (h *PreferencesHandler) GetPreferences(w http.ResponseWriter, r *http.Request)
- func (h *PreferencesHandler) ToggleAlternativeSpeedLimits(w http.ResponseWriter, r *http.Request)
- func (h *PreferencesHandler) UpdatePreferences(w http.ResponseWriter, r *http.Request)
- type PremiumAccessResponse
- type QBittorrentInfoHandler
- type RSSHandler
- func (h *RSSHandler) AddFeed(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) AddFolder(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) GetItems(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) GetMatchingArticles(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) GetRules(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) MarkAsRead(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) MoveItem(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) RefreshItem(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) RemoveItem(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) RemoveRule(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) RenameRule(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) ReprocessRules(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) Routes(r chi.Router)
- func (h *RSSHandler) SetFeedURL(w http.ResponseWriter, r *http.Request)
- func (h *RSSHandler) SetRule(w http.ResponseWriter, r *http.Request)
- type RSSSSEHandler
- type RefreshItemRequest
- type RegexValidationError
- type RemoveItemRequest
- type RemoveTrackerRequest
- type RenameRuleRequest
- type SetFeedURLRequest
- type SetRuleRequest
- type SetTorrentFilePriorityRequest
- type SetupRequest
- type SortedPeer
- type SortedPeersResponse
- type TestConnectionResponse
- type ThemesHandler
- type TorrentsHandler
- func (h *TorrentsHandler) AddPeers(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) AddTorrent(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) AddTorrentTrackers(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) BanPeers(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) BulkAction(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) CheckDuplicates(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) CreateCategory(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) CreateTags(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) CreateTorrent(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) DeleteTags(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) DeleteTorrentCreationTask(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) DownloadTorrentContentFile(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) DownloadTorrentCreationFile(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) EditCategory(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) EditTorrentTracker(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) ExportTorrent(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetActiveTaskCount(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetActiveTrackers(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetCategories(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetContentPathMediaInfo(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetDirectoryContent(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTags(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTorrentCreationStatus(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTorrentField(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTorrentFileMediaInfo(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTorrentFiles(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTorrentPeers(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTorrentPieceStates(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTorrentProperties(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTorrentTrackers(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) GetTorrentWebSeeds(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) ListCrossInstanceTorrents(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) ListTorrents(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) RemoveCategories(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) RemoveTorrentTrackers(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) RenameTorrent(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) RenameTorrentFile(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) RenameTorrentFolder(w http.ResponseWriter, r *http.Request)
- func (h *TorrentsHandler) SetTorrentFilePriority(w http.ResponseWriter, r *http.Request)
- type TrackerCustomizationHandler
- func (h *TrackerCustomizationHandler) Create(w http.ResponseWriter, r *http.Request)
- func (h *TrackerCustomizationHandler) Delete(w http.ResponseWriter, r *http.Request)
- func (h *TrackerCustomizationHandler) List(w http.ResponseWriter, r *http.Request)
- func (h *TrackerCustomizationHandler) Update(w http.ResponseWriter, r *http.Request)
- type TrackerCustomizationPayload
- type TrackerIconHandler
- type TrackerIconProvider
- type UpdateInstanceRequest
- type UpdateInstanceStatusRequest
- type ValidateLicenseRequest
- type ValidateLicenseResponse
- type VersionHandler
- type VersionResponse
- type WarningResponse
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func RespondError ¶
func RespondError(w http.ResponseWriter, status int, message string)
RespondError sends an error response
func RespondJSON ¶
func RespondJSON(w http.ResponseWriter, status int, data any)
RespondJSON sends a JSON response. For 204 No Content and 304 Not Modified, no body or Content-Type is sent per HTTP spec.
Types ¶
type ActivateLicenseRequest ¶ added in v1.0.0
type ActivateLicenseRequest struct {
LicenseKey string `json:"licenseKey"`
}
ActivateLicenseRequest represents the request body for license activation
type ActivateLicenseResponse ¶ added in v1.0.0
type ActivateLicenseResponse struct {
Valid bool `json:"valid"`
ProductName string `json:"productName,omitempty"`
ExpiresAt *time.Time `json:"expiresAt,omitempty"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
}
ActivateLicenseResponse represents the response for license activation
type AddFeedRequest ¶ added in v1.13.0
type AddFolderRequest ¶ added in v1.13.0
type AddFolderRequest struct {
Path string `json:"path"`
}
type AddTrackerRequest ¶ added in v1.0.0
type AddTrackerRequest struct {
URLs string `json:"urls"` // Newline-separated URLs
}
AddTrackerRequest represents a tracker add request
type ApplicationDatabaseInfo ¶ added in v1.15.0
type ApplicationHandler ¶ added in v1.15.0
type ApplicationHandler struct {
// contains filtered or unexported fields
}
func NewApplicationHandler ¶ added in v1.15.0
func NewApplicationHandler(appConfig *config.AppConfig, startedAt time.Time) *ApplicationHandler
func (*ApplicationHandler) GetInfo ¶ added in v1.15.0
func (h *ApplicationHandler) GetInfo(w http.ResponseWriter, _ *http.Request)
type ApplicationInfoResponse ¶ added in v1.15.0
type ApplicationInfoResponse struct {
Version string `json:"version"`
Commit string `json:"commit,omitempty"`
CommitShort string `json:"commitShort,omitempty"`
BuildDate string `json:"buildDate,omitempty"`
StartedAt string `json:"startedAt"`
UptimeSeconds int64 `json:"uptimeSeconds"`
GoVersion string `json:"goVersion"`
GoOS string `json:"goOS"`
GoArch string `json:"goArch"`
BaseURL string `json:"baseUrl"`
Host string `json:"host"`
Port int `json:"port"`
ConfigDir string `json:"configDir"`
DataDir string `json:"dataDir"`
AuthMode string `json:"authMode"`
OIDCEnabled bool `json:"oidcEnabled"`
BuiltInLogin bool `json:"builtInLoginEnabled"`
OIDCIssuerHost string `json:"oidcIssuerHost,omitempty"`
CheckForUpdates bool `json:"checkForUpdates"`
Database ApplicationDatabaseInfo `json:"database"`
}
type ArrHandler ¶ added in v1.12.0
type ArrHandler struct {
// contains filtered or unexported fields
}
ArrHandler handles ARR instance management endpoints
func NewArrHandler ¶ added in v1.12.0
func NewArrHandler(instanceStore *models.ArrInstanceStore, arrService *arr.Service) *ArrHandler
NewArrHandler creates a new ARR handler
func (*ArrHandler) CreateInstance ¶ added in v1.12.0
func (h *ArrHandler) CreateInstance(w http.ResponseWriter, r *http.Request)
CreateInstance handles POST /api/arr/instances
func (*ArrHandler) DeleteInstance ¶ added in v1.12.0
func (h *ArrHandler) DeleteInstance(w http.ResponseWriter, r *http.Request)
DeleteInstance handles DELETE /api/arr/instances/{id}
func (*ArrHandler) GetInstance ¶ added in v1.12.0
func (h *ArrHandler) GetInstance(w http.ResponseWriter, r *http.Request)
GetInstance handles GET /api/arr/instances/{id}
func (*ArrHandler) ListInstances ¶ added in v1.12.0
func (h *ArrHandler) ListInstances(w http.ResponseWriter, r *http.Request)
ListInstances handles GET /api/arr/instances
func (*ArrHandler) Resolve ¶ added in v1.12.0
func (h *ArrHandler) Resolve(w http.ResponseWriter, r *http.Request)
Resolve handles POST /api/arr/resolve
func (*ArrHandler) TestConnection ¶ added in v1.12.0
func (h *ArrHandler) TestConnection(w http.ResponseWriter, r *http.Request)
TestConnection handles POST /api/arr/test
func (*ArrHandler) TestInstance ¶ added in v1.12.0
func (h *ArrHandler) TestInstance(w http.ResponseWriter, r *http.Request)
TestInstance handles POST /api/arr/instances/{id}/test
func (*ArrHandler) UpdateInstance ¶ added in v1.12.0
func (h *ArrHandler) UpdateInstance(w http.ResponseWriter, r *http.Request)
UpdateInstance handles PUT /api/arr/instances/{id}
type AuthHandler ¶
type AuthHandler struct {
// contains filtered or unexported fields
}
func NewAuthHandler ¶
func NewAuthHandler( authService *auth.Service, sessionManager *scs.SessionManager, config *domain.Config, instanceStore *models.InstanceStore, clientPool *qbittorrent.ClientPool, syncManager *qbittorrent.SyncManager, ) (*AuthHandler, error)
func (*AuthHandler) ChangePassword ¶
func (h *AuthHandler) ChangePassword(w http.ResponseWriter, r *http.Request)
ChangePassword handles password change requests
func (*AuthHandler) CheckSetupRequired ¶
func (h *AuthHandler) CheckSetupRequired(w http.ResponseWriter, r *http.Request)
CheckSetupRequired checks if initial setup is required
func (*AuthHandler) CreateAPIKey ¶
func (h *AuthHandler) CreateAPIKey(w http.ResponseWriter, r *http.Request)
CreateAPIKey creates a new API key
func (*AuthHandler) DeleteAPIKey ¶
func (h *AuthHandler) DeleteAPIKey(w http.ResponseWriter, r *http.Request)
DeleteAPIKey deletes an API key
func (*AuthHandler) GetCurrentUser ¶
func (h *AuthHandler) GetCurrentUser(w http.ResponseWriter, r *http.Request)
GetCurrentUser returns the current user information
func (*AuthHandler) GetOIDCHandler ¶ added in v1.3.0
func (h *AuthHandler) GetOIDCHandler() *OIDCHandler
GetOIDCHandler returns the OIDC handler if configured
func (*AuthHandler) ListAPIKeys ¶
func (h *AuthHandler) ListAPIKeys(w http.ResponseWriter, r *http.Request)
ListAPIKeys returns all API keys
func (*AuthHandler) Login ¶
func (h *AuthHandler) Login(w http.ResponseWriter, r *http.Request)
Login handles user login
func (*AuthHandler) Logout ¶
func (h *AuthHandler) Logout(w http.ResponseWriter, r *http.Request)
Logout handles user logout
func (*AuthHandler) Setup ¶
func (h *AuthHandler) Setup(w http.ResponseWriter, r *http.Request)
Setup handles initial user setup
func (*AuthHandler) Validate ¶ added in v1.3.0
func (h *AuthHandler) Validate(w http.ResponseWriter, r *http.Request)
Validate checks if the user has a valid session (used for OIDC callback)
type AutomationDryRunResult ¶ added in v1.14.0
type AutomationDryRunResult struct {
Status string `json:"status"`
ActivityIDs []int `json:"activityIds,omitempty"`
Activities []*models.AutomationActivity `json:"activities,omitempty"`
}
type AutomationHandler ¶ added in v1.12.0
type AutomationHandler struct {
// contains filtered or unexported fields
}
func NewAutomationHandler ¶ added in v1.12.0
func NewAutomationHandler(store *models.AutomationStore, activityStore *models.AutomationActivityStore, instanceStore *models.InstanceStore, externalProgramStore *models.ExternalProgramStore, service *automations.Service) *AutomationHandler
func (*AutomationHandler) ApplyNow ¶ added in v1.12.0
func (h *AutomationHandler) ApplyNow(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) Create ¶ added in v1.12.0
func (h *AutomationHandler) Create(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) Delete ¶ added in v1.12.0
func (h *AutomationHandler) Delete(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) DeleteActivity ¶ added in v1.12.0
func (h *AutomationHandler) DeleteActivity(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) DryRunNow ¶ added in v1.14.0
func (h *AutomationHandler) DryRunNow(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) GetActivityRun ¶ added in v1.14.0
func (h *AutomationHandler) GetActivityRun(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) List ¶ added in v1.12.0
func (h *AutomationHandler) List(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) ListActivity ¶ added in v1.12.0
func (h *AutomationHandler) ListActivity(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) PreviewDeleteRule ¶ added in v1.12.0
func (h *AutomationHandler) PreviewDeleteRule(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) Reorder ¶ added in v1.12.0
func (h *AutomationHandler) Reorder(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) Update ¶ added in v1.12.0
func (h *AutomationHandler) Update(w http.ResponseWriter, r *http.Request)
func (*AutomationHandler) ValidateRegex ¶ added in v1.12.0
func (h *AutomationHandler) ValidateRegex(w http.ResponseWriter, r *http.Request)
ValidateRegex validates all regex patterns in the automation conditions.
type AutomationPayload ¶ added in v1.12.0
type AutomationPayload struct {
Name string `json:"name"`
TrackerPattern string `json:"trackerPattern"`
TrackerDomains []string `json:"trackerDomains"`
Enabled *bool `json:"enabled"`
DryRun *bool `json:"dryRun"`
Notify *bool `json:"notify"`
SortOrder *int `json:"sortOrder"`
IntervalSeconds *int `json:"intervalSeconds,omitempty"` // nil = use DefaultRuleInterval (15m)
Conditions *models.ActionConditions `json:"conditions"`
FreeSpaceSource *models.FreeSpaceSource `json:"freeSpaceSource,omitempty"` // nil = default qBittorrent free space
SortingConfig *models.SortingConfig `json:"sortingConfig,omitempty"` // nil = default (oldest first)
PreviewLimit *int `json:"previewLimit"`
PreviewOffset *int `json:"previewOffset"`
PreviewView string `json:"previewView,omitempty"` // "needed" (default) or "eligible"
}
type BackupsHandler ¶ added in v1.5.0
type BackupsHandler struct {
// contains filtered or unexported fields
}
func NewBackupsHandler ¶ added in v1.5.0
func NewBackupsHandler(service *backups.Service) *BackupsHandler
func (*BackupsHandler) DeleteAllRuns ¶ added in v1.5.0
func (h *BackupsHandler) DeleteAllRuns(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) DeleteRun ¶ added in v1.5.0
func (h *BackupsHandler) DeleteRun(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) DownloadRun ¶ added in v1.5.0
func (h *BackupsHandler) DownloadRun(w http.ResponseWriter, r *http.Request)
DownloadRun downloads a backup archive. Query parameters:
- format: compression format (zip, tar.gz, tar.zst, tar.br, tar.xz, tar) - defaults to zip
func (*BackupsHandler) DownloadTorrentBlob ¶ added in v1.5.0
func (h *BackupsHandler) DownloadTorrentBlob(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) ExecuteRestore ¶ added in v1.5.0
func (h *BackupsHandler) ExecuteRestore(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) GetManifest ¶ added in v1.5.0
func (h *BackupsHandler) GetManifest(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) GetSettings ¶ added in v1.5.0
func (h *BackupsHandler) GetSettings(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) ImportManifest ¶ added in v1.8.0
func (h *BackupsHandler) ImportManifest(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) ListRuns ¶ added in v1.5.0
func (h *BackupsHandler) ListRuns(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) PreviewRestore ¶ added in v1.5.0
func (h *BackupsHandler) PreviewRestore(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) TriggerBackup ¶ added in v1.5.0
func (h *BackupsHandler) TriggerBackup(w http.ResponseWriter, r *http.Request)
func (*BackupsHandler) UpdateSettings ¶ added in v1.5.0
func (h *BackupsHandler) UpdateSettings(w http.ResponseWriter, r *http.Request)
type BulkActionRequest ¶
type BulkActionRequest struct {
Hashes []string `json:"hashes"`
Targets []BulkActionTarget `json:"targets,omitempty"` // Optional explicit instance/hash targets (used by unified view)
Action string `json:"action"`
DeleteFiles bool `json:"deleteFiles,omitempty"` // For delete action
Tags string `json:"tags,omitempty"` // For tag operations (comma-separated)
Comment string `json:"comment,omitempty"` // For setComment action
Category string `json:"category,omitempty"` // For category operations
Enable bool `json:"enable,omitempty"` // For toggleAutoTMM action
SelectAll bool `json:"selectAll,omitempty"` // When true, apply to all torrents matching filters
InstanceIDs []int `json:"instanceIds,omitempty"` // Optional unified instance scope
Filters *qbittorrent.FilterOptions `json:"filters,omitempty"` // Filters to apply when selectAll is true
Search string `json:"search,omitempty"` // Search query when selectAll is true
ExcludeHashes []string `json:"excludeHashes,omitempty"` // Hashes to exclude when selectAll is true
ExcludeTargets []BulkActionTarget `json:"excludeTargets,omitempty"` // Optional explicit targets to exclude when selectAll is true
RatioLimit float64 `json:"ratioLimit,omitempty"` // For setShareLimit action
SeedingTimeLimit int64 `json:"seedingTimeLimit,omitempty"` // For setShareLimit action
InactiveSeedingTimeLimit int64 `json:"inactiveSeedingTimeLimit,omitempty"` // For setShareLimit action
UploadLimit int64 `json:"uploadLimit,omitempty"` // For setUploadLimit action (KB/s)
DownloadLimit int64 `json:"downloadLimit,omitempty"` // For setDownloadLimit action (KB/s)
Location string `json:"location,omitempty"` // For setLocation action
TrackerOldURL string `json:"trackerOldURL,omitempty"` // For editTrackers action
TrackerNewURL string `json:"trackerNewURL,omitempty"` // For editTrackers action
TrackerURLs string `json:"trackerURLs,omitempty"` // For addTrackers/removeTrackers actions
}
BulkActionRequest represents a bulk action request
type BulkActionTarget ¶ added in v1.14.0
type ChangePasswordRequest ¶
type ChangePasswordRequest struct {
CurrentPassword string `json:"currentPassword"`
NewPassword string `json:"newPassword"`
}
ChangePasswordRequest represents a password change request
type CheckResult ¶ added in v1.0.0
type ClientAPIKeyWithInstance ¶ added in v1.0.0
type ClientAPIKeyWithInstance struct {
*models.ClientAPIKey
Instance *models.Instance `json:"instance"`
}
type ClientAPIKeysHandler ¶ added in v1.0.0
type ClientAPIKeysHandler struct {
// contains filtered or unexported fields
}
func NewClientAPIKeysHandler ¶ added in v1.0.0
func NewClientAPIKeysHandler(clientAPIKeyStore *models.ClientAPIKeyStore, instanceStore *models.InstanceStore, baseURL string) *ClientAPIKeysHandler
func (*ClientAPIKeysHandler) CreateClientAPIKey ¶ added in v1.0.0
func (h *ClientAPIKeysHandler) CreateClientAPIKey(w http.ResponseWriter, r *http.Request)
CreateClientAPIKey handles POST /api/client-api-keys
func (*ClientAPIKeysHandler) DeleteClientAPIKey ¶ added in v1.0.0
func (h *ClientAPIKeysHandler) DeleteClientAPIKey(w http.ResponseWriter, r *http.Request)
DeleteClientAPIKey handles DELETE /api/client-api-keys/{id}
func (*ClientAPIKeysHandler) ListClientAPIKeys ¶ added in v1.0.0
func (h *ClientAPIKeysHandler) ListClientAPIKeys(w http.ResponseWriter, r *http.Request)
ListClientAPIKeys handles GET /api/client-api-keys
type CreateAPIKeyRequest ¶
type CreateAPIKeyRequest struct {
Name string `json:"name"`
}
CreateAPIKeyRequest represents a request to create an API key
type CreateClientAPIKeyRequest ¶ added in v1.0.0
type CreateClientAPIKeyResponse ¶ added in v1.0.0
type CreateInstanceRequest ¶
type CreateInstanceRequest struct {
Name string `json:"name"`
Host string `json:"host"`
Username string `json:"username"`
Password string `json:"password"`
APIKey string `json:"apiKey,omitempty"`
BasicUsername *string `json:"basicUsername,omitempty"`
BasicPassword *string `json:"basicPassword,omitempty"`
TLSSkipVerify bool `json:"tlsSkipVerify,omitempty"`
HasLocalFilesystemAccess *bool `json:"hasLocalFilesystemAccess,omitempty"`
ReannounceSettings *InstanceReannounceSettingsPayload `json:"reannounceSettings,omitempty"`
}
CreateInstanceRequest represents a request to create a new instance
type CrossSeedBlocklistRequest ¶ added in v1.14.0
type CrossSeedHandler ¶ added in v1.8.0
type CrossSeedHandler struct {
// contains filtered or unexported fields
}
CrossSeedHandler handles cross-seed API endpoints
func NewCrossSeedHandler ¶ added in v1.8.0
func NewCrossSeedHandler( service *crossseed.Service, completionStore *models.InstanceCrossSeedCompletionStore, instanceStore *models.InstanceStore, seasonPackRunStore *models.SeasonPackRunStore, ) *CrossSeedHandler
NewCrossSeedHandler creates a new cross-seed handler
func (*CrossSeedHandler) AddBlocklistEntry ¶ added in v1.14.0
func (h *CrossSeedHandler) AddBlocklistEntry(w http.ResponseWriter, r *http.Request)
AddBlocklistEntry godoc @Summary Add cross-seed blocklist entry @Description Adds or updates a blocked infohash for a specific instance. @Tags cross-seed @Accept json @Produce json @Param request body CrossSeedBlocklistRequest true "Blocklist entry" @Success 201 {object} models.CrossSeedBlocklistEntry @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/blocklist [post]
func (*CrossSeedHandler) AnalyzeTorrentForSearch ¶ added in v1.8.0
func (h *CrossSeedHandler) AnalyzeTorrentForSearch(w http.ResponseWriter, r *http.Request)
AnalyzeTorrentForSearch godoc @Summary Analyze torrent for cross-seed search metadata @Description Returns metadata about how a torrent would be searched (content type, search type, required categories/capabilities) without performing the actual search @Tags cross-seed @Produce json @Param instanceID path int true "Instance ID" @Param hash path string true "Torrent hash" @Success 200 {object} crossseed.TorrentInfo @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/torrents/{instanceID}/{hash}/analyze [get]
func (*CrossSeedHandler) ApplyTorrentSearchResults ¶ added in v1.8.0
func (h *CrossSeedHandler) ApplyTorrentSearchResults(w http.ResponseWriter, r *http.Request)
ApplyTorrentSearchResults godoc @Summary Add torrents discovered via cross-seed search @Description Downloads the selected releases and reuses the cross-seed pipeline to add them to the specified instance. @Tags cross-seed @Accept json @Produce json @Param instanceID path int true "Instance ID" @Param hash path string true "Torrent hash" @Param request body crossseed.ApplyTorrentSearchRequest true "Selections to add" @Success 200 {object} crossseed.ApplyTorrentSearchResponse @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/torrents/{instanceID}/{hash}/apply [post]
func (*CrossSeedHandler) AutobrrApply ¶ added in v1.8.0
func (h *CrossSeedHandler) AutobrrApply(w http.ResponseWriter, r *http.Request)
AutobrrApply godoc @Summary Add a cross-seed torrent provided by autobrr @Description Accepts a torrent file from autobrr, matches it against the requested instances (or all instances when instanceIds is omitted), and adds it with alignment wherever a match is found. @Tags cross-seed @Accept json @Produce json @Param request body crossseed.AutobrrApplyRequest true "Autobrr apply request" @Success 200 {object} crossseed.CrossSeedResponse @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/apply [post]
func (*CrossSeedHandler) CancelAutomationRun ¶ added in v1.12.0
func (h *CrossSeedHandler) CancelAutomationRun(w http.ResponseWriter, r *http.Request)
CancelAutomationRun godoc @Summary Cancel RSS automation run @Description Stops the currently running RSS automation run, if any. @Tags cross-seed @Success 204 @Failure 409 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/run/cancel [post]
func (*CrossSeedHandler) CancelSearchRun ¶ added in v1.8.0
func (h *CrossSeedHandler) CancelSearchRun(w http.ResponseWriter, r *http.Request)
CancelSearchRun godoc @Summary Cancel cross-seed search run @Description Stops the currently running cross-seed library search, if any. @Tags cross-seed @Success 204 @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/search/run/cancel [post]
func (*CrossSeedHandler) DeleteBlocklistEntry ¶ added in v1.14.0
func (h *CrossSeedHandler) DeleteBlocklistEntry(w http.ResponseWriter, r *http.Request)
DeleteBlocklistEntry godoc @Summary Remove cross-seed blocklist entry @Description Removes a blocked infohash for a specific instance. @Tags cross-seed @Success 204 @Failure 400 {object} httphelpers.ErrorResponse @Failure 404 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/blocklist/{instanceID}/{infohash} [delete]
func (*CrossSeedHandler) GetAsyncFilteringStatus ¶ added in v1.8.0
func (h *CrossSeedHandler) GetAsyncFilteringStatus(w http.ResponseWriter, r *http.Request)
GetAsyncFilteringStatus godoc @Summary Get async filtering status for a torrent @Description Returns the current status of async indexer filtering for a torrent, including whether content filtering has completed @Tags cross-seed @Produce json @Param instanceID path int true "Instance ID" @Param hash path string true "Torrent hash" @Success 200 {object} crossseed.AsyncIndexerFilteringState @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/torrents/{instanceID}/{hash}/async-status [get]
func (*CrossSeedHandler) GetAutomationSettings ¶ added in v1.8.0
func (h *CrossSeedHandler) GetAutomationSettings(w http.ResponseWriter, r *http.Request)
GetAutomationSettings returns scheduler configuration. GetAutomationSettings godoc @Summary Get cross-seed automation settings @Description Returns current automation configuration for cross-seeding @Tags cross-seed @Produce json @Success 200 {object} models.CrossSeedAutomationSettings @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/settings [get]
func (*CrossSeedHandler) GetAutomationStatus ¶ added in v1.8.0
func (h *CrossSeedHandler) GetAutomationStatus(w http.ResponseWriter, r *http.Request)
GetAutomationStatus returns scheduler state and latest run metadata. GetAutomationStatus godoc @Summary Get cross-seed automation status @Description Returns current scheduler state and last automation run details @Tags cross-seed @Produce json @Success 200 {object} crossseed.AutomationStatus @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/status [get]
func (*CrossSeedHandler) GetCrossSeedStatus ¶ added in v1.8.0
func (h *CrossSeedHandler) GetCrossSeedStatus(w http.ResponseWriter, r *http.Request)
GetCrossSeedStatus godoc @Summary Get cross-seed status for an instance @Description Returns statistics about cross-seeded torrents on an instance @Tags cross-seed @Produce json @Param instanceID path int true "Instance ID" @Success 200 {object} map[string]interface{} @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Failure 501 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/instances/{instanceID}/cross-seed/status [get]
func (*CrossSeedHandler) GetInstanceCompletionSettings ¶ added in v1.10.0
func (h *CrossSeedHandler) GetInstanceCompletionSettings(w http.ResponseWriter, r *http.Request)
GetInstanceCompletionSettings returns the completion settings for a specific instance.
func (*CrossSeedHandler) GetLocalMatches ¶ added in v1.12.0
func (h *CrossSeedHandler) GetLocalMatches(w http.ResponseWriter, r *http.Request)
GetLocalMatches godoc @Summary Find existing torrents that match the source torrent across all instances @Description Returns torrents from all instances that match the source torrent using proper release metadata parsing (rls library), not fuzzy string matching. @Tags cross-seed @Produce json @Param instanceID path int true "Source instance ID" @Param hash path string true "Source torrent hash" @Param strict query bool false "When true, fail if file overlap checks cannot complete (use for delete dialogs)" @Success 200 {object} crossseed.LocalMatchesResponse @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/torrents/{instanceID}/{hash}/local-matches [get]
func (*CrossSeedHandler) GetSearchRunStatus ¶ added in v1.8.0
func (h *CrossSeedHandler) GetSearchRunStatus(w http.ResponseWriter, r *http.Request)
GetSearchRunStatus godoc @Summary Get cross-seed search run status @Description Returns the state of the active or most recent cross-seed library search run. @Tags cross-seed @Produce json @Success 200 {object} crossseed.SearchRunStatus @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/search/status [get]
func (*CrossSeedHandler) GetSearchSettings ¶ added in v1.8.0
func (h *CrossSeedHandler) GetSearchSettings(w http.ResponseWriter, r *http.Request)
GetSearchSettings godoc @Summary Get seeded torrent search settings @Description Returns the persisted defaults used by Seeded Torrent Search runs. @Tags cross-seed @Produce json @Success 200 {object} models.CrossSeedSearchSettings @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/search/settings [get]
func (*CrossSeedHandler) ListAutomationRuns ¶ added in v1.8.0
func (h *CrossSeedHandler) ListAutomationRuns(w http.ResponseWriter, r *http.Request)
ListAutomationRuns returns automation history. ListAutomationRuns godoc @Summary List cross-seed automation runs @Description Returns paginated automation run history @Tags cross-seed @Produce json @Param limit query int false "Limit" @Param offset query int false "Offset" @Success 200 {array} models.CrossSeedRun @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/runs [get]
func (*CrossSeedHandler) ListBlocklist ¶ added in v1.14.0
func (h *CrossSeedHandler) ListBlocklist(w http.ResponseWriter, r *http.Request)
ListBlocklist godoc @Summary List cross-seed blocklist entries @Description Returns the per-instance cross-seed blocklist entries. @Tags cross-seed @Produce json @Param instanceId query int false "Instance ID" @Success 200 {array} models.CrossSeedBlocklistEntry @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/blocklist [get]
func (*CrossSeedHandler) ListSearchRunHistory ¶ added in v1.8.0
func (h *CrossSeedHandler) ListSearchRunHistory(w http.ResponseWriter, r *http.Request)
ListSearchRunHistory godoc @Summary List cross-seed search run history @Description Lists historical cross-seed search runs for a specific instance. @Tags cross-seed @Produce json @Param instanceId query int true "Instance ID" @Param limit query int false "Page size (max 200)" @Param offset query int false "Result offset" @Success 200 {array} models.CrossSeedSearchRun @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/search/runs [get]
func (*CrossSeedHandler) ListSeasonPackRuns ¶ added in v1.19.0
func (h *CrossSeedHandler) ListSeasonPackRuns(w http.ResponseWriter, r *http.Request)
ListSeasonPackRuns returns recent season-pack processing activity.
func (*CrossSeedHandler) PatchAutomationSettings ¶ added in v1.8.0
func (h *CrossSeedHandler) PatchAutomationSettings(w http.ResponseWriter, r *http.Request)
PatchAutomationSettings merges updates into the existing cross-seed configuration. PatchAutomationSettings godoc @Summary Patch cross-seed automation settings @Description Partially update automation, completion, or global cross-seed settings without overwriting unspecified fields @Tags cross-seed @Accept json @Produce json @Param request body automationSettingsPatchRequest true "Automation settings fields to update" @Success 200 {object} models.CrossSeedAutomationSettings @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/settings [patch]
func (*CrossSeedHandler) PatchSearchSettings ¶ added in v1.8.0
func (h *CrossSeedHandler) PatchSearchSettings(w http.ResponseWriter, r *http.Request)
PatchSearchSettings godoc @Summary Update seeded torrent search settings @Description Persists default filters and timing for Seeded Torrent Search runs. @Tags cross-seed @Accept json @Produce json @Param request body searchSettingsPatchRequest true "Search settings patch" @Success 200 {object} models.CrossSeedSearchSettings @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/search/settings [patch]
func (*CrossSeedHandler) Routes ¶ added in v1.8.0
func (h *CrossSeedHandler) Routes(r chi.Router, authMiddleware func(http.Handler) http.Handler, apiKeyQueryMiddleware func(http.Handler) http.Handler)
Routes registers the cross-seed routes with explicit middleware ordering.
func (*CrossSeedHandler) SearchTorrentMatches ¶ added in v1.8.0
func (h *CrossSeedHandler) SearchTorrentMatches(w http.ResponseWriter, r *http.Request)
SearchTorrentMatches godoc @Summary Search Torznab indexers for cross-seed matches for a specific torrent @Description Uses the seeded torrent's metadata to find compatible releases on the configured Torznab indexers. @Tags cross-seed @Accept json @Produce json @Param instanceID path int true "Instance ID" @Param hash path string true "Torrent hash" @Param request body crossseed.TorrentSearchOptions false "Optional search configuration" @Success 200 {object} crossseed.TorrentSearchResponse @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/torrents/{instanceID}/{hash}/search [post]
func (*CrossSeedHandler) SeasonPackApply ¶ added in v1.19.0
func (h *CrossSeedHandler) SeasonPackApply(w http.ResponseWriter, r *http.Request)
SeasonPackApply attempts to add a season pack torrent using linked episode data.
func (*CrossSeedHandler) SeasonPackCheck ¶ added in v1.19.0
func (h *CrossSeedHandler) SeasonPackCheck(w http.ResponseWriter, r *http.Request)
SeasonPackCheck checks whether a season pack can be reconstructed from existing episodes.
func (*CrossSeedHandler) StartSearchRun ¶ added in v1.8.0
func (h *CrossSeedHandler) StartSearchRun(w http.ResponseWriter, r *http.Request)
StartSearchRun godoc @Summary Start cross-seed search run @Description Launches an on-demand cross-seed library search for a specific instance with optional category, tag, and indexer filters. @Tags cross-seed @Accept json @Produce json @Param request body searchRunRequest true "Search run options" @Success 202 {object} models.CrossSeedSearchRun @Failure 400 {object} httphelpers.ErrorResponse @Failure 409 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/search/run [post]
func (*CrossSeedHandler) TriggerAutomationRun ¶ added in v1.8.0
func (h *CrossSeedHandler) TriggerAutomationRun(w http.ResponseWriter, r *http.Request)
TriggerAutomationRun queues a manual automation pass. TriggerAutomationRun godoc @Summary Trigger cross-seed automation run @Description Starts an on-demand automation pass @Tags cross-seed @Accept json @Produce json @Param request body automationRunRequest false "Automation run options" @Success 202 {object} models.CrossSeedRun @Failure 400 {object} httphelpers.ErrorResponse @Failure 409 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/run [post]
func (*CrossSeedHandler) UpdateAutomationSettings ¶ added in v1.8.0
func (h *CrossSeedHandler) UpdateAutomationSettings(w http.ResponseWriter, r *http.Request)
UpdateAutomationSettings updates scheduler configuration. UpdateAutomationSettings godoc @Summary Update cross-seed automation settings @Description Updates the automation scheduler configuration for cross-seeding @Tags cross-seed @Accept json @Produce json @Param request body automationSettingsRequest true "Automation settings" @Success 200 {object} models.CrossSeedAutomationSettings @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/settings [put]
func (*CrossSeedHandler) UpdateInstanceCompletionSettings ¶ added in v1.10.0
func (h *CrossSeedHandler) UpdateInstanceCompletionSettings(w http.ResponseWriter, r *http.Request)
UpdateInstanceCompletionSettings updates the completion settings for a specific instance.
func (*CrossSeedHandler) WebhookCheck ¶ added in v1.8.0
func (h *CrossSeedHandler) WebhookCheck(w http.ResponseWriter, r *http.Request)
WebhookCheck godoc @Summary Check if a release can be cross-seeded (autobrr webhook) @Description Accepts release metadata from autobrr and checks if matching torrents exist across instances @Tags cross-seed @Accept json @Produce json @Param request body crossseed.WebhookCheckRequest true "Release metadata from autobrr" @Success 200 {object} crossseed.WebhookCheckResponse "Matches found (torrents complete, recommendation=download)" @Success 202 {object} crossseed.WebhookCheckResponse "Matches found but torrents still downloading (recommendation=download, retry until 200)" @Failure 404 {object} crossseed.WebhookCheckResponse "No matches found (recommendation=skip)" @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/cross-seed/webhook/check [post]
type CustomTheme ¶ added in v1.23.0
type CustomTheme struct {
ID string `json:"id"`
Filename string `json:"filename"`
CSS string `json:"css"`
}
CustomTheme is a single sideloaded theme file and its raw CSS contents.
type CustomThemesResponse ¶ added in v1.23.0
type CustomThemesResponse struct {
Directory string `json:"directory"`
Themes []CustomTheme `json:"themes"`
}
CustomThemesResponse lists the custom themes directory and the themes found in it.
type DashboardSettingsHandler ¶ added in v1.9.0
type DashboardSettingsHandler struct {
// contains filtered or unexported fields
}
func NewDashboardSettingsHandler ¶ added in v1.9.0
func NewDashboardSettingsHandler(store *models.DashboardSettingsStore) *DashboardSettingsHandler
func (*DashboardSettingsHandler) Get ¶ added in v1.9.0
func (h *DashboardSettingsHandler) Get(w http.ResponseWriter, r *http.Request)
func (*DashboardSettingsHandler) Update ¶ added in v1.9.0
func (h *DashboardSettingsHandler) Update(w http.ResponseWriter, r *http.Request)
type DeleteInstanceResponse ¶
type DeleteInstanceResponse struct {
Message string `json:"message"`
}
DeleteInstanceResponse represents delete operation result
type DirScanDirectoryPayload ¶ added in v1.13.0
type DirScanDirectoryPayload struct {
Path *string `json:"path"`
QbitPathPrefix *string `json:"qbitPathPrefix"`
Category *string `json:"category"`
Tags *[]string `json:"tags"`
AllowedDownloadClients *[]string `json:"allowedDownloadClients"`
Enabled *bool `json:"enabled"`
ArrInstanceID *int `json:"arrInstanceId"`
TargetInstanceID *int `json:"targetInstanceId"`
ScanIntervalMinutes *int `json:"scanIntervalMinutes"`
}
DirScanDirectoryPayload is the request body for creating/updating directories.
type DirScanHandler ¶ added in v1.13.0
type DirScanHandler struct {
// contains filtered or unexported fields
}
DirScanHandler handles HTTP requests for directory scanning.
func NewDirScanHandler ¶ added in v1.13.0
func NewDirScanHandler(service *dirscan.Service, instanceStore *models.InstanceStore) *DirScanHandler
NewDirScanHandler creates a new DirScanHandler.
func (*DirScanHandler) CancelScan ¶ added in v1.13.0
func (h *DirScanHandler) CancelScan(w http.ResponseWriter, r *http.Request)
CancelScan cancels a running scan for a directory.
func (*DirScanHandler) CreateDirectory ¶ added in v1.13.0
func (h *DirScanHandler) CreateDirectory(w http.ResponseWriter, r *http.Request)
CreateDirectory creates a new scan directory.
func (*DirScanHandler) DeleteDirectory ¶ added in v1.13.0
func (h *DirScanHandler) DeleteDirectory(w http.ResponseWriter, r *http.Request)
DeleteDirectory deletes a scan directory.
func (*DirScanHandler) GetDirectory ¶ added in v1.13.0
func (h *DirScanHandler) GetDirectory(w http.ResponseWriter, r *http.Request)
GetDirectory returns a specific scan directory.
func (*DirScanHandler) GetSettings ¶ added in v1.13.0
func (h *DirScanHandler) GetSettings(w http.ResponseWriter, r *http.Request)
GetSettings returns the global directory scanner settings.
func (*DirScanHandler) GetStatus ¶ added in v1.13.0
func (h *DirScanHandler) GetStatus(w http.ResponseWriter, r *http.Request)
GetStatus returns the status of the current or most recent scan.
func (*DirScanHandler) ListDirectories ¶ added in v1.13.0
func (h *DirScanHandler) ListDirectories(w http.ResponseWriter, r *http.Request)
ListDirectories returns all configured scan directories.
func (*DirScanHandler) ListFiles ¶ added in v1.13.0
func (h *DirScanHandler) ListFiles(w http.ResponseWriter, r *http.Request)
ListFiles returns scanned files for a directory.
func (*DirScanHandler) ListRunInjections ¶ added in v1.13.0
func (h *DirScanHandler) ListRunInjections(w http.ResponseWriter, r *http.Request)
ListRunInjections returns injection attempts (added/failed) for a run.
func (*DirScanHandler) ListRuns ¶ added in v1.13.0
func (h *DirScanHandler) ListRuns(w http.ResponseWriter, r *http.Request)
ListRuns returns recent scan runs for a directory.
func (*DirScanHandler) ResetFiles ¶ added in v1.13.0
func (h *DirScanHandler) ResetFiles(w http.ResponseWriter, r *http.Request)
ResetFiles deletes tracked scan progress for a directory.
func (*DirScanHandler) TriggerScan ¶ added in v1.13.0
func (h *DirScanHandler) TriggerScan(w http.ResponseWriter, r *http.Request)
TriggerScan starts a manual scan for a directory.
func (*DirScanHandler) UpdateDirectory ¶ added in v1.13.0
func (h *DirScanHandler) UpdateDirectory(w http.ResponseWriter, r *http.Request)
UpdateDirectory updates a scan directory.
func (*DirScanHandler) UpdateSettings ¶ added in v1.13.0
func (h *DirScanHandler) UpdateSettings(w http.ResponseWriter, r *http.Request)
UpdateSettings updates the global directory scanner settings.
func (*DirScanHandler) WebhookTriggerScan ¶ added in v1.15.0
func (h *DirScanHandler) WebhookTriggerScan(w http.ResponseWriter, r *http.Request)
WebhookTriggerScan triggers a directory scan by matching the provided path against configured scan directories. Accepts native Sonarr/Radarr/Lidarr/Readarr webhook payloads or a simple {"path": "..."} body.
type DirScanSettingsPayload ¶ added in v1.13.0
type DirScanSettingsPayload struct {
Enabled *bool `json:"enabled"`
MatchMode *string `json:"matchMode"`
SizeTolerancePercent *float64 `json:"sizeTolerancePercent"`
MinPieceRatio *float64 `json:"minPieceRatio"`
MaxSearcheesPerRun *int `json:"maxSearcheesPerRun"`
MaxSearcheeAgeDays *int `json:"maxSearcheeAgeDays"`
AllowPartial *bool `json:"allowPartial"`
SkipPieceBoundarySafetyCheck *bool `json:"skipPieceBoundarySafetyCheck"`
StartPaused *bool `json:"startPaused"`
DownloadMissingFiles *bool `json:"downloadMissingFiles"`
Category *string `json:"category"`
Tags []string `json:"tags"`
}
DirScanSettingsPayload is the request body for updating settings.
type EditTrackerRequest ¶ added in v1.0.0
EditTrackerRequest represents a tracker edit request
type ErrorResponse ¶
type ErrorResponse struct {
Error string `json:"error"`
}
ErrorResponse represents an API error response
type ExternalProgramsHandler ¶ added in v1.7.0
type ExternalProgramsHandler struct {
// contains filtered or unexported fields
}
func NewExternalProgramsHandler ¶ added in v1.7.0
func NewExternalProgramsHandler( store *models.ExternalProgramStore, service *externalprograms.Service, pool *qbittorrent.ClientPool, automationStore *models.AutomationStore, ) *ExternalProgramsHandler
func (*ExternalProgramsHandler) CreateExternalProgram ¶ added in v1.7.0
func (h *ExternalProgramsHandler) CreateExternalProgram(w http.ResponseWriter, r *http.Request)
CreateExternalProgram handles POST /api/external-programs
func (*ExternalProgramsHandler) DeleteExternalProgram ¶ added in v1.7.0
func (h *ExternalProgramsHandler) DeleteExternalProgram(w http.ResponseWriter, r *http.Request)
DeleteExternalProgram handles DELETE /api/external-programs/{id} Query params:
- force=true: Proceed with deletion even if automations reference this program. The external program action will be removed from all referencing automations.
If automations reference this program and force is not set, returns 409 Conflict with a list of affected automations.
func (*ExternalProgramsHandler) ExecuteExternalProgram ¶ added in v1.7.0
func (h *ExternalProgramsHandler) ExecuteExternalProgram(w http.ResponseWriter, r *http.Request)
ExecuteExternalProgram handles POST /api/external-programs/execute
func (*ExternalProgramsHandler) ListExternalPrograms ¶ added in v1.7.0
func (h *ExternalProgramsHandler) ListExternalPrograms(w http.ResponseWriter, r *http.Request)
ListExternalPrograms handles GET /api/external-programs
func (*ExternalProgramsHandler) UpdateExternalProgram ¶ added in v1.7.0
func (h *ExternalProgramsHandler) UpdateExternalProgram(w http.ResponseWriter, r *http.Request)
UpdateExternalProgram handles PUT /api/external-programs/{id}
type ExtractedArchive ¶ added in v1.8.0
type ExtractedArchive struct {
TempDir string // Root temp directory (caller must clean up)
ManifestPath string // Path to extracted manifest.json
TorrentPaths map[string]string // archivePath -> absolute file path on disk
}
ExtractedArchive represents the result of streaming extraction to disk. Caller must call Close() to clean up the temporary directory.
func (*ExtractedArchive) Close ¶ added in v1.8.0
func (e *ExtractedArchive) Close() error
Close removes the temporary directory and all extracted files.
type FeedsUpdatePayload ¶ added in v1.13.0
type FeedsUpdatePayload struct {
InstanceID int `json:"instanceId"`
Items json.RawMessage `json:"items"`
Timestamp int64 `json:"timestamp"`
}
FeedsUpdatePayload contains the full RSS items tree
type HealthHandler ¶ added in v1.0.0
type HealthHandler struct {
}
func NewHealthHandler ¶ added in v1.0.0
func NewHealthHandler() *HealthHandler
func (*HealthHandler) HandleHealth ¶ added in v1.0.0
func (h *HealthHandler) HandleHealth(w http.ResponseWriter, r *http.Request)
func (*HealthHandler) HandleLiveness ¶ added in v1.0.0
func (h *HealthHandler) HandleLiveness(w http.ResponseWriter, r *http.Request)
func (*HealthHandler) HandleReady ¶ added in v1.0.0
func (h *HealthHandler) HandleReady(w http.ResponseWriter, r *http.Request)
type HealthResponse ¶ added in v1.0.0
type HealthResponse struct {
Status string `json:"status"`
Checks map[string]CheckResult `json:"checks,omitempty"`
Timestamp time.Time `json:"timestamp"`
}
type IndexerResponse ¶ added in v1.9.0
type IndexerResponse struct {
*models.TorznabIndexer
Warnings []string `json:"warnings,omitempty"`
}
IndexerResponse wraps an indexer with optional warnings for partial failures
type InstanceCapabilitiesResponse ¶ added in v1.3.0
type InstanceCapabilitiesResponse struct {
SupportsTorrentCreation bool `json:"supportsTorrentCreation"`
SupportsTorrentExport bool `json:"supportsTorrentExport"`
SupportsSetTags bool `json:"supportsSetTags"`
SupportsSetComment bool `json:"supportsSetComment"`
SupportsTrackerHealth bool `json:"supportsTrackerHealth"`
SupportsTrackerEditing bool `json:"supportsTrackerEditing"`
SupportsRenameTorrent bool `json:"supportsRenameTorrent"`
SupportsRenameFile bool `json:"supportsRenameFile"`
SupportsRenameFolder bool `json:"supportsRenameFolder"`
SupportsFilePriority bool `json:"supportsFilePriority"`
SupportsSubcategories bool `json:"supportsSubcategories"`
SubcategoriesAlwaysEnabled bool `json:"subcategoriesAlwaysEnabled"`
SupportsTorrentTmpPath bool `json:"supportsTorrentTmpPath"`
SupportsPathAutocomplete bool `json:"supportsPathAutocomplete"`
SupportsFreeSpacePathSource bool `json:"supportsFreeSpacePathSource"`
SupportsSetRSSFeedURL bool `json:"supportsSetRSSFeedURL"`
WebAPIVersion string `json:"webAPIVersion,omitempty"`
}
InstanceCapabilitiesResponse describes supported features for an instance.
func NewInstanceCapabilitiesResponse ¶ added in v1.3.0
func NewInstanceCapabilitiesResponse(client *internalqbittorrent.Client) InstanceCapabilitiesResponse
NewInstanceCapabilitiesResponse creates a response payload from a qBittorrent client.
type InstanceReannounceSettingsPayload ¶ added in v1.8.0
type InstanceReannounceSettingsPayload struct {
Enabled bool `json:"enabled"`
InitialWaitSeconds int `json:"initialWaitSeconds"`
ReannounceIntervalSeconds int `json:"reannounceIntervalSeconds"`
MaxAgeSeconds int `json:"maxAgeSeconds"`
MaxRetries int `json:"maxRetries"`
Aggressive bool `json:"aggressive"`
MonitorAll bool `json:"monitorAll"`
ExcludeCategories bool `json:"excludeCategories"`
Categories []string `json:"categories"`
ExcludeTags bool `json:"excludeTags"`
Tags []string `json:"tags"`
ExcludeTrackers bool `json:"excludeTrackers"`
Trackers []string `json:"trackers"`
}
InstanceReannounceSettingsPayload carries tracker monitoring config.
type InstanceResponse ¶
type InstanceResponse struct {
ID int `json:"id"`
Name string `json:"name"`
Host string `json:"host"`
Username string `json:"username"`
HasAPIKey bool `json:"hasApiKey"`
BasicUsername *string `json:"basicUsername,omitempty"`
TLSSkipVerify bool `json:"tlsSkipVerify"`
HasLocalFilesystemAccess bool `json:"hasLocalFilesystemAccess"`
UseHardlinks bool `json:"useHardlinks"`
HardlinkBaseDir string `json:"hardlinkBaseDir"`
HardlinkDirPreset string `json:"hardlinkDirPreset"`
UseReflinks bool `json:"useReflinks"`
FallbackToRegularMode bool `json:"fallbackToRegularMode"`
Connected bool `json:"connected"`
HasDecryptionError bool `json:"hasDecryptionError"`
RecentErrors []models.InstanceError `json:"recentErrors,omitempty"`
ConnectionStatus string `json:"connectionStatus,omitempty"`
SortOrder int `json:"sortOrder"`
IsActive bool `json:"isActive"`
ReannounceSettings InstanceReannounceSettingsPayload `json:"reannounceSettings"`
}
InstanceResponse represents an instance in API responses
type InstancesHandler ¶
type InstancesHandler struct {
// contains filtered or unexported fields
}
func NewInstancesHandler ¶
func NewInstancesHandler(instanceStore *models.InstanceStore, reannounceStore *models.InstanceReannounceStore, reannounceCache *reannounce.SettingsCache, clientPool *internalqbittorrent.ClientPool, syncManager *internalqbittorrent.SyncManager, svc *reannounce.Service) *InstancesHandler
func (*InstancesHandler) CreateInstance ¶
func (h *InstancesHandler) CreateInstance(w http.ResponseWriter, r *http.Request)
CreateInstance creates a new instance
func (*InstancesHandler) DeleteInstance ¶
func (h *InstancesHandler) DeleteInstance(w http.ResponseWriter, r *http.Request)
DeleteInstance deletes an instance
func (*InstancesHandler) GetInstanceCapabilities ¶ added in v1.3.0
func (h *InstancesHandler) GetInstanceCapabilities(w http.ResponseWriter, r *http.Request)
GetInstanceCapabilities returns lightweight capability metadata for an instance.
func (*InstancesHandler) GetReannounceActivity ¶ added in v1.8.0
func (h *InstancesHandler) GetReannounceActivity(w http.ResponseWriter, r *http.Request)
GetReannounceActivity returns recent reannounce events for an instance.
func (*InstancesHandler) GetReannounceCandidates ¶ added in v1.8.0
func (h *InstancesHandler) GetReannounceCandidates(w http.ResponseWriter, r *http.Request)
GetReannounceCandidates returns torrents that currently fall within the reannounce monitoring scope and either have tracker problems or are still waiting for their initial tracker contact.
func (*InstancesHandler) GetTransferInfo ¶ added in v1.14.0
func (h *InstancesHandler) GetTransferInfo(w http.ResponseWriter, r *http.Request)
GetTransferInfo returns lightweight transfer stats for an instance.
func (*InstancesHandler) ListInstances ¶
func (h *InstancesHandler) ListInstances(w http.ResponseWriter, r *http.Request)
ListInstances returns all instances
func (*InstancesHandler) TestConnection ¶
func (h *InstancesHandler) TestConnection(w http.ResponseWriter, r *http.Request)
TestConnection tests the connection to an instance
func (*InstancesHandler) UpdateInstance ¶
func (h *InstancesHandler) UpdateInstance(w http.ResponseWriter, r *http.Request)
UpdateInstance updates an existing instance
func (*InstancesHandler) UpdateInstanceOrder ¶ added in v1.7.0
func (h *InstancesHandler) UpdateInstanceOrder(w http.ResponseWriter, r *http.Request)
UpdateInstanceOrder updates the display order for all instances
func (*InstancesHandler) UpdateInstanceStatus ¶ added in v1.8.0
func (h *InstancesHandler) UpdateInstanceStatus(w http.ResponseWriter, r *http.Request)
UpdateInstanceStatus toggles whether an instance should be actively polled
type JackettHandler ¶ added in v1.8.0
type JackettHandler struct {
// contains filtered or unexported fields
}
JackettHandler handles Jackett/Torznab API endpoints
func NewJackettHandler ¶ added in v1.8.0
func NewJackettHandler(service *jackett.Service, indexerStore *models.TorznabIndexerStore) *JackettHandler
NewJackettHandler creates a new Jackett handler
func (*JackettHandler) CreateIndexer ¶ added in v1.8.0
func (h *JackettHandler) CreateIndexer(w http.ResponseWriter, r *http.Request)
CreateIndexer godoc @Summary Create a new Torznab indexer @Description Creates a new Torznab indexer configuration @Tags torznab @Accept json @Produce json @Success 201 {object} models.TorznabIndexer @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers [post]
func (*JackettHandler) CrossSeedSearch ¶ added in v1.8.0
func (h *JackettHandler) CrossSeedSearch(w http.ResponseWriter, r *http.Request)
CrossSeedSearch godoc @Summary Search Jackett for cross-seeds with intelligent category detection @Description Searches Jackett indexers for potential cross-seeds. Automatically detects content type (TV shows, movies, daily shows, XXX, etc.) and applies appropriate Torznab categories based on the search parameters. @Tags torznab @Accept json @Produce json @Param request body jackett.TorznabSearchRequest true "Cross-seed search request" @Success 200 {object} jackett.SearchResponse @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/cross-seed/search [post]
func (*JackettHandler) DeleteIndexer ¶ added in v1.8.0
func (h *JackettHandler) DeleteIndexer(w http.ResponseWriter, r *http.Request)
DeleteIndexer godoc @Summary Delete a Torznab indexer @Description Deletes a Torznab indexer @Tags torznab @Param indexerID path int true "Indexer ID" @Success 204 @Failure 404 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/{indexerID} [delete]
func (*JackettHandler) DiscoverIndexers ¶ added in v1.8.0
func (h *JackettHandler) DiscoverIndexers(w http.ResponseWriter, r *http.Request)
DiscoverIndexers godoc @Summary Discover indexers from a Jackett/Prowlarr instance @Description Discovers all configured indexers from a Jackett or Prowlarr instance using its API @Tags torznab @Accept json @Produce json @Success 200 {object} jackett.DiscoveryResult @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/discover [post]
func (*JackettHandler) GetActivityStatus ¶ added in v1.8.0
func (h *JackettHandler) GetActivityStatus(w http.ResponseWriter, r *http.Request)
GetActivityStatus godoc @Summary Get scheduler and indexer activity status @Description Returns current scheduler state including queued tasks, in-flight jobs, and rate-limited indexers @Tags torznab @Produce json @Success 200 {object} jackett.ActivityStatus @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/activity [get]
func (*JackettHandler) GetAllHealth ¶ added in v1.8.0
func (h *JackettHandler) GetAllHealth(w http.ResponseWriter, r *http.Request)
GetAllHealth godoc @Summary Get health status for all indexers @Description Retrieves health statistics for all Torznab indexers @Tags torznab @Produce json @Success 200 {array} models.TorznabIndexerHealth @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/health [get]
func (*JackettHandler) GetIndexer ¶ added in v1.8.0
func (h *JackettHandler) GetIndexer(w http.ResponseWriter, r *http.Request)
GetIndexer godoc @Summary Get a Torznab indexer @Description Retrieves a specific Torznab indexer by ID @Tags torznab @Produce json @Param indexerID path int true "Indexer ID" @Success 200 {object} models.TorznabIndexer @Failure 404 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/{indexerID} [get]
func (*JackettHandler) GetIndexerErrors ¶ added in v1.8.0
func (h *JackettHandler) GetIndexerErrors(w http.ResponseWriter, r *http.Request)
GetIndexerErrors godoc @Summary Get recent errors for an indexer @Description Retrieves recent error history for a specific Torznab indexer @Tags torznab @Produce json @Param indexerID path int true "Indexer ID" @Param limit query int false "Maximum number of errors to return" default(50) @Success 200 {array} models.TorznabIndexerError @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/{indexerID}/errors [get]
func (*JackettHandler) GetIndexerHealth ¶ added in v1.8.0
func (h *JackettHandler) GetIndexerHealth(w http.ResponseWriter, r *http.Request)
GetIndexerHealth godoc @Summary Get health status for an indexer @Description Retrieves health statistics for a specific Torznab indexer @Tags torznab @Produce json @Param indexerID path int true "Indexer ID" @Success 200 {object} models.TorznabIndexerHealth @Failure 404 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/{indexerID}/health [get]
func (*JackettHandler) GetIndexerStats ¶ added in v1.8.0
func (h *JackettHandler) GetIndexerStats(w http.ResponseWriter, r *http.Request)
GetIndexerStats godoc @Summary Get latency statistics for an indexer @Description Retrieves aggregated latency statistics for a specific Torznab indexer @Tags torznab @Produce json @Param indexerID path int true "Indexer ID" @Success 200 {array} models.TorznabIndexerLatencyStats @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/{indexerID}/stats [get]
func (*JackettHandler) GetIndexerTrackerDomains ¶ added in v1.21.0
func (h *JackettHandler) GetIndexerTrackerDomains(w http.ResponseWriter, r *http.Request)
GetIndexerTrackerDomains godoc @Summary List tracker domains for enabled indexers @Description Returns tracker domains derived from enabled indexers whose domain can be resolved reliably (native and Prowlarr backends). Jackett indexers are omitted because their base URL is the Jackett server, not the tracker. Used to populate tracker selectors with trackers that have no active torrents. @Tags torznab @Produce json @Success 200 {array} string @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/tracker-domains [get]
func (*JackettHandler) GetSearchCacheStats ¶ added in v1.8.0
func (h *JackettHandler) GetSearchCacheStats(w http.ResponseWriter, r *http.Request)
GetSearchCacheStats returns summary metrics for the search cache.
func (*JackettHandler) GetSearchHistory ¶ added in v1.8.0
func (h *JackettHandler) GetSearchHistory(w http.ResponseWriter, r *http.Request)
GetSearchHistory godoc @Summary Get search history @Description Returns recent completed searches from the in-memory history buffer @Tags torznab @Produce json @Param limit query int false "Maximum number of entries to return (default: 50, max: 500)" @Success 200 {object} jackett.SearchHistoryResponseWithOutcome @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/search/history [get]
func (*JackettHandler) ListIndexers ¶ added in v1.8.0
func (h *JackettHandler) ListIndexers(w http.ResponseWriter, r *http.Request)
ListIndexers godoc @Summary List all Torznab indexers @Description Retrieves all configured Torznab indexers @Tags torznab @Produce json @Success 200 {array} models.TorznabIndexer @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers [get]
func (*JackettHandler) ListRecentSearches ¶ added in v1.8.0
func (h *JackettHandler) ListRecentSearches(w http.ResponseWriter, r *http.Request)
ListRecentSearches returns the latest cached search queries for autocomplete support.
func (*JackettHandler) Routes ¶ added in v1.8.0
func (h *JackettHandler) Routes(r chi.Router)
Routes registers the Jackett routes
func (*JackettHandler) Search ¶ added in v1.8.0
func (h *JackettHandler) Search(w http.ResponseWriter, r *http.Request)
Search godoc @Summary General Torznab search @Description Performs a general Torznab search across Jackett indexers. Allows specifying categories, IMDb/TVDb IDs, and other search parameters. @Tags torznab @Accept json @Produce json @Param request body jackett.TorznabSearchRequest true "Torznab search request" @Success 200 {object} jackett.SearchResponse @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/search [post]
func (*JackettHandler) SyncIndexerCaps ¶ added in v1.8.0
func (h *JackettHandler) SyncIndexerCaps(w http.ResponseWriter, r *http.Request)
SyncIndexerCaps godoc @Summary Refresh Torznab caps from the backend @Description Fetches the latest capabilities and categories from Jackett, Prowlarr, or a native Torznab endpoint and persists them. @Tags torznab @Param indexerID path int true "Indexer ID" @Success 200 {object} models.TorznabIndexer @Failure 400 {object} httphelpers.ErrorResponse @Failure 404 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/{indexerID}/caps/sync [post]
func (*JackettHandler) TestIndexer ¶ added in v1.8.0
func (h *JackettHandler) TestIndexer(w http.ResponseWriter, r *http.Request)
TestIndexer godoc @Summary Test a Torznab indexer connection @Description Tests the connection to a Torznab indexer @Tags torznab @Param indexerID path int true "Indexer ID" @Success 200 @Failure 400 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/{indexerID}/test [post]
func (*JackettHandler) UpdateIndexer ¶ added in v1.8.0
func (h *JackettHandler) UpdateIndexer(w http.ResponseWriter, r *http.Request)
UpdateIndexer godoc @Summary Update a Torznab indexer @Description Updates an existing Torznab indexer @Tags torznab @Accept json @Produce json @Param indexerID path int true "Indexer ID" @Success 200 {object} models.TorznabIndexer @Failure 400 {object} httphelpers.ErrorResponse @Failure 404 {object} httphelpers.ErrorResponse @Failure 500 {object} httphelpers.ErrorResponse @Security ApiKeyAuth @Router /api/torznab/indexers/{indexerID} [put]
func (*JackettHandler) UpdateSearchCacheSettings ¶ added in v1.8.0
func (h *JackettHandler) UpdateSearchCacheSettings(w http.ResponseWriter, r *http.Request)
UpdateSearchCacheSettings updates TTL configuration via the API.
type LatestVersionResponse ¶ added in v1.1.0
type LicenseHandler ¶ added in v1.0.0
type LicenseHandler struct {
// contains filtered or unexported fields
}
LicenseHandler handles license related HTTP requests
func NewLicenseHandler ¶ added in v1.0.0
func NewLicenseHandler(licenseService *license.Service) *LicenseHandler
NewLicenseHandler creates a new license handler
func (*LicenseHandler) ActivateLicense ¶ added in v1.0.0
func (h *LicenseHandler) ActivateLicense(w http.ResponseWriter, r *http.Request)
ActivateLicense activates a license
func (*LicenseHandler) DeleteLicense ¶ added in v1.0.0
func (h *LicenseHandler) DeleteLicense(w http.ResponseWriter, r *http.Request)
DeleteLicense removes a license from the system
func (*LicenseHandler) GetAllLicenses ¶ added in v1.0.0
func (h *LicenseHandler) GetAllLicenses(w http.ResponseWriter, r *http.Request)
GetAllLicenses returns all licenses for the current user
func (*LicenseHandler) GetLicensedThemes ¶ added in v1.0.0
func (h *LicenseHandler) GetLicensedThemes(w http.ResponseWriter, r *http.Request)
GetLicensedThemes returns premium access status
func (*LicenseHandler) RefreshLicenses ¶ added in v1.0.0
func (h *LicenseHandler) RefreshLicenses(w http.ResponseWriter, r *http.Request)
RefreshLicenses manually triggers a refresh of all licenses
func (*LicenseHandler) Routes ¶ added in v1.0.0
func (h *LicenseHandler) Routes(r chi.Router)
func (*LicenseHandler) ValidateLicense ¶ added in v1.0.0
func (h *LicenseHandler) ValidateLicense(w http.ResponseWriter, r *http.Request)
ValidateLicense validates a license
type LicenseInfo ¶
type LicenseInfo struct {
LicenseKey string `json:"licenseKey"`
ProductName string `json:"productName"`
Status string `json:"status"`
Provider string `json:"provider,omitempty"`
CreatedAt time.Time `json:"createdAt"`
}
LicenseInfo represents basic license information for UI display
type LogExclusionsHandler ¶ added in v1.12.0
type LogExclusionsHandler struct {
// contains filtered or unexported fields
}
func NewLogExclusionsHandler ¶ added in v1.12.0
func NewLogExclusionsHandler(store *models.LogExclusionsStore) *LogExclusionsHandler
func (*LogExclusionsHandler) Get ¶ added in v1.12.0
func (h *LogExclusionsHandler) Get(w http.ResponseWriter, r *http.Request)
func (*LogExclusionsHandler) Update ¶ added in v1.12.0
func (h *LogExclusionsHandler) Update(w http.ResponseWriter, r *http.Request)
type LogFileEntry ¶ added in v1.23.0
type LogFileEntry struct {
Name string `json:"name"`
SizeBytes int64 `json:"sizeBytes"`
ModTime time.Time `json:"modTime"`
}
LogFileEntry describes a log file available for download.
type LoginRequest ¶
type LoginRequest struct {
Username string `json:"username"`
Password string `json:"password"`
RememberMe bool `json:"remember_me"`
}
LoginRequest represents a login request
type LogsHandler ¶ added in v1.12.0
type LogsHandler struct {
// contains filtered or unexported fields
}
LogsHandler handles log settings and streaming endpoints.
func NewLogsHandler ¶ added in v1.12.0
func NewLogsHandler(appConfig *config.AppConfig) *LogsHandler
NewLogsHandler creates a new LogsHandler.
func (*LogsHandler) DownloadLogFile ¶ added in v1.23.0
func (h *LogsHandler) DownloadLogFile(w http.ResponseWriter, r *http.Request)
DownloadLogFile serves a single log file from the configured log directory.
func (*LogsHandler) GetHub ¶ added in v1.12.0
func (h *LogsHandler) GetHub() *logstream.Hub
GetHub returns the log hub from the handler's config. This is useful for testing.
func (*LogsHandler) GetLogSettings ¶ added in v1.12.0
func (h *LogsHandler) GetLogSettings(w http.ResponseWriter, r *http.Request)
GetLogSettings returns the current log settings.
func (*LogsHandler) ListLogFiles ¶ added in v1.23.0
func (h *LogsHandler) ListLogFiles(w http.ResponseWriter, _ *http.Request)
ListLogFiles returns the log files available for download.
func (*LogsHandler) Routes ¶ added in v1.12.0
func (h *LogsHandler) Routes(r chi.Router)
Routes registers the log routes on the provided router.
func (*LogsHandler) StreamLogs ¶ added in v1.12.0
func (h *LogsHandler) StreamLogs(w http.ResponseWriter, r *http.Request)
StreamLogs streams log lines via SSE.
func (*LogsHandler) UpdateLogSettings ¶ added in v1.12.0
func (h *LogsHandler) UpdateLogSettings(w http.ResponseWriter, r *http.Request)
UpdateLogSettings updates the log settings.
type MarkAsReadRequest ¶ added in v1.13.0
type MoveItemRequest ¶ added in v1.13.0
type NotificationsHandler ¶ added in v1.14.0
type NotificationsHandler struct {
// contains filtered or unexported fields
}
func NewNotificationsHandler ¶ added in v1.14.0
func NewNotificationsHandler(store *models.NotificationTargetStore, service *notifications.Service) *NotificationsHandler
func (*NotificationsHandler) CreateTarget ¶ added in v1.14.0
func (h *NotificationsHandler) CreateTarget(w http.ResponseWriter, r *http.Request)
CreateTarget handles POST /api/notifications/targets
func (*NotificationsHandler) DeleteTarget ¶ added in v1.14.0
func (h *NotificationsHandler) DeleteTarget(w http.ResponseWriter, r *http.Request)
DeleteTarget handles DELETE /api/notifications/targets/{id}
func (*NotificationsHandler) ListEvents ¶ added in v1.14.0
func (h *NotificationsHandler) ListEvents(w http.ResponseWriter, _ *http.Request)
ListEvents handles GET /api/notifications/events
func (*NotificationsHandler) ListTargets ¶ added in v1.14.0
func (h *NotificationsHandler) ListTargets(w http.ResponseWriter, r *http.Request)
ListTargets handles GET /api/notifications/targets
func (*NotificationsHandler) TestTarget ¶ added in v1.14.0
func (h *NotificationsHandler) TestTarget(w http.ResponseWriter, r *http.Request)
TestTarget handles POST /api/notifications/targets/{id}/test
func (*NotificationsHandler) UpdateTarget ¶ added in v1.14.0
func (h *NotificationsHandler) UpdateTarget(w http.ResponseWriter, r *http.Request)
UpdateTarget handles PUT /api/notifications/targets/{id}
type OIDCClaims ¶ added in v1.3.0
type OIDCClaims struct {
Email string `json:"email"`
PreferredUsername string `json:"preferred_username"`
Name string `json:"name"`
GivenName string `json:"given_name"`
Nickname string `json:"nickname"`
Sub string `json:"sub"`
Picture string `json:"picture"`
}
OIDCClaims represents the claims returned from the OIDC provider
type OIDCConfigResponse ¶ added in v1.3.0
type OIDCConfigResponse struct {
Enabled bool `json:"enabled"`
AuthorizationURL string `json:"authorizationUrl"`
DisableBuiltInLogin bool `json:"disableBuiltInLogin"`
IssuerURL string `json:"issuerUrl"`
}
OIDCConfigResponse represents the OIDC configuration response
type OIDCHandler ¶ added in v1.3.0
type OIDCHandler struct {
// contains filtered or unexported fields
}
func NewOIDCHandler ¶ added in v1.3.0
func NewOIDCHandler(cfg *domain.Config, sessionManager *scs.SessionManager) (*OIDCHandler, error)
func (*OIDCHandler) GetConfigResponse ¶ added in v1.3.0
func (h *OIDCHandler) GetConfigResponse() (OIDCConfigResponse, string, string, error)
func (*OIDCHandler) Routes ¶ added in v1.3.0
func (h *OIDCHandler) Routes(r chi.Router)
type OrphanScanHandler ¶ added in v1.12.0
type OrphanScanHandler struct {
// contains filtered or unexported fields
}
func NewOrphanScanHandler ¶ added in v1.12.0
func NewOrphanScanHandler(store *models.OrphanScanStore, instanceStore *models.InstanceStore, service *orphanscan.Service) *OrphanScanHandler
func (*OrphanScanHandler) CancelRun ¶ added in v1.12.0
func (h *OrphanScanHandler) CancelRun(w http.ResponseWriter, r *http.Request)
CancelRun cancels a pending, scanning, or preview_ready run.
func (*OrphanScanHandler) ConfirmDeletion ¶ added in v1.12.0
func (h *OrphanScanHandler) ConfirmDeletion(w http.ResponseWriter, r *http.Request)
ConfirmDeletion confirms deletion of orphan files from a preview_ready run.
func (*OrphanScanHandler) GetRun ¶ added in v1.12.0
func (h *OrphanScanHandler) GetRun(w http.ResponseWriter, r *http.Request)
GetRun returns a specific orphan scan run with its file list.
func (*OrphanScanHandler) GetSettings ¶ added in v1.12.0
func (h *OrphanScanHandler) GetSettings(w http.ResponseWriter, r *http.Request)
GetSettings returns the orphan scan settings for an instance.
func (*OrphanScanHandler) ListRuns ¶ added in v1.12.0
func (h *OrphanScanHandler) ListRuns(w http.ResponseWriter, r *http.Request)
ListRuns returns recent orphan scan runs for an instance.
func (*OrphanScanHandler) TriggerScan ¶ added in v1.12.0
func (h *OrphanScanHandler) TriggerScan(w http.ResponseWriter, r *http.Request)
TriggerScan starts a manual orphan scan for an instance.
func (*OrphanScanHandler) UpdateSettings ¶ added in v1.12.0
func (h *OrphanScanHandler) UpdateSettings(w http.ResponseWriter, r *http.Request)
UpdateSettings updates the orphan scan settings for an instance.
type OrphanScanSettingsPayload ¶ added in v1.12.0
type OrphanScanSettingsPayload struct {
Enabled *bool `json:"enabled"`
GracePeriodMinutes *int `json:"gracePeriodMinutes"`
IgnorePaths []string `json:"ignorePaths"`
ScanIntervalHours *int `json:"scanIntervalHours"`
PreviewSort *string `json:"previewSort"`
MaxFilesPerRun *int `json:"maxFilesPerRun"`
AutoCleanupEnabled *bool `json:"autoCleanupEnabled"`
AutoCleanupMaxFiles *int `json:"autoCleanupMaxFiles"`
}
OrphanScanSettingsPayload is the request body for creating/updating orphan scan settings.
type PreferencesHandler ¶ added in v0.3.0
type PreferencesHandler struct {
// contains filtered or unexported fields
}
func NewPreferencesHandler ¶ added in v0.3.0
func NewPreferencesHandler(syncManager *qbittorrent.SyncManager) *PreferencesHandler
func (*PreferencesHandler) GetAlternativeSpeedLimitsMode ¶ added in v0.3.0
func (h *PreferencesHandler) GetAlternativeSpeedLimitsMode(w http.ResponseWriter, r *http.Request)
GetAlternativeSpeedLimitsMode returns the current alternative speed limits mode
func (*PreferencesHandler) GetPreferences ¶ added in v0.3.0
func (h *PreferencesHandler) GetPreferences(w http.ResponseWriter, r *http.Request)
GetPreferences returns app preferences for an instance TODO: The go-qbittorrent library is missing network interface list endpoints: - /api/v2/app/networkInterfaceList (to get available network interfaces) - /api/v2/app/networkInterfaceAddressList (to get addresses for an interface) These are needed to properly populate network interface dropdowns like the official WebUI. For now, current_network_interface and current_interface_address show actual values but cannot be configured with proper dropdown selections.
func (*PreferencesHandler) ToggleAlternativeSpeedLimits ¶ added in v0.3.0
func (h *PreferencesHandler) ToggleAlternativeSpeedLimits(w http.ResponseWriter, r *http.Request)
ToggleAlternativeSpeedLimits toggles alternative speed limits on/off
func (*PreferencesHandler) UpdatePreferences ¶ added in v0.3.0
func (h *PreferencesHandler) UpdatePreferences(w http.ResponseWriter, r *http.Request)
UpdatePreferences updates specific preference fields
type PremiumAccessResponse ¶
type PremiumAccessResponse struct {
HasPremiumAccess bool `json:"hasPremiumAccess"`
}
PremiumAccessResponse represents the response for premium access status
type QBittorrentInfoHandler ¶ added in v1.4.0
type QBittorrentInfoHandler struct {
// contains filtered or unexported fields
}
func NewQBittorrentInfoHandler ¶ added in v1.4.0
func NewQBittorrentInfoHandler(clientPool *internalqbittorrent.ClientPool) *QBittorrentInfoHandler
func (*QBittorrentInfoHandler) GetQBittorrentAppInfo ¶ added in v1.4.0
func (h *QBittorrentInfoHandler) GetQBittorrentAppInfo(w http.ResponseWriter, r *http.Request)
GetQBittorrentAppInfo returns qBittorrent application version and build information
type RSSHandler ¶ added in v1.13.0
type RSSHandler struct {
// contains filtered or unexported fields
}
RSSHandler handles RSS API endpoints
func NewRSSHandler ¶ added in v1.13.0
func NewRSSHandler(syncManager *qbittorrent.SyncManager) *RSSHandler
NewRSSHandler creates a new RSS handler
func (*RSSHandler) AddFeed ¶ added in v1.13.0
func (h *RSSHandler) AddFeed(w http.ResponseWriter, r *http.Request)
AddFeed adds a new RSS feed
func (*RSSHandler) AddFolder ¶ added in v1.13.0
func (h *RSSHandler) AddFolder(w http.ResponseWriter, r *http.Request)
AddFolder creates a new RSS folder
func (*RSSHandler) GetItems ¶ added in v1.13.0
func (h *RSSHandler) GetItems(w http.ResponseWriter, r *http.Request)
GetItems retrieves all RSS feeds and folders
func (*RSSHandler) GetMatchingArticles ¶ added in v1.13.0
func (h *RSSHandler) GetMatchingArticles(w http.ResponseWriter, r *http.Request)
GetMatchingArticles gets articles matching a rule for preview
func (*RSSHandler) GetRules ¶ added in v1.13.0
func (h *RSSHandler) GetRules(w http.ResponseWriter, r *http.Request)
GetRules retrieves all RSS auto-download rules
func (*RSSHandler) MarkAsRead ¶ added in v1.13.0
func (h *RSSHandler) MarkAsRead(w http.ResponseWriter, r *http.Request)
MarkAsRead marks articles as read
func (*RSSHandler) MoveItem ¶ added in v1.13.0
func (h *RSSHandler) MoveItem(w http.ResponseWriter, r *http.Request)
MoveItem moves a feed or folder to a new location
func (*RSSHandler) RefreshItem ¶ added in v1.13.0
func (h *RSSHandler) RefreshItem(w http.ResponseWriter, r *http.Request)
RefreshItem triggers a manual refresh of a feed or folder. An empty ItemPath refreshes all feeds.
func (*RSSHandler) RemoveItem ¶ added in v1.13.0
func (h *RSSHandler) RemoveItem(w http.ResponseWriter, r *http.Request)
RemoveItem removes a feed or folder
func (*RSSHandler) RemoveRule ¶ added in v1.13.0
func (h *RSSHandler) RemoveRule(w http.ResponseWriter, r *http.Request)
RemoveRule deletes an auto-download rule
func (*RSSHandler) RenameRule ¶ added in v1.13.0
func (h *RSSHandler) RenameRule(w http.ResponseWriter, r *http.Request)
RenameRule renames an existing rule
func (*RSSHandler) ReprocessRules ¶ added in v1.13.0
func (h *RSSHandler) ReprocessRules(w http.ResponseWriter, r *http.Request)
ReprocessRules triggers qBittorrent to reprocess all unread articles against rules. It does this by toggling auto-downloading off then on.
func (*RSSHandler) Routes ¶ added in v1.13.0
func (h *RSSHandler) Routes(r chi.Router)
Routes registers RSS routes on the given router
func (*RSSHandler) SetFeedURL ¶ added in v1.13.0
func (h *RSSHandler) SetFeedURL(w http.ResponseWriter, r *http.Request)
SetFeedURL changes the URL of an existing feed
func (*RSSHandler) SetRule ¶ added in v1.13.0
func (h *RSSHandler) SetRule(w http.ResponseWriter, r *http.Request)
SetRule creates or updates an auto-download rule
type RSSSSEHandler ¶ added in v1.13.0
type RSSSSEHandler struct {
// contains filtered or unexported fields
}
RSSSSEHandler manages Server-Sent Events for RSS updates
func NewRSSSSEHandler ¶ added in v1.13.0
func NewRSSSSEHandler(syncManager *qbittorrent.SyncManager) *RSSSSEHandler
NewRSSSSEHandler creates a new RSS SSE handler
func (*RSSSSEHandler) HandleSSE ¶ added in v1.13.0
func (h *RSSSSEHandler) HandleSSE(w http.ResponseWriter, r *http.Request)
HandleSSE handles the SSE connection for RSS updates
type RefreshItemRequest ¶ added in v1.13.0
type RefreshItemRequest struct {
ItemPath string `json:"itemPath"`
}
type RegexValidationError ¶ added in v1.12.0
type RegexValidationError struct {
Path string `json:"path"` // JSON pointer to the condition, e.g., "/conditions/delete/condition/conditions/0"
Message string `json:"message"` // Error message from regex compilation
Pattern string `json:"pattern"` // The invalid pattern
Field string `json:"field"` // Field name being matched
Operator string `json:"operator"` // Operator (MATCHES or string op with regex flag)
}
RegexValidationError represents a regex compilation error at a specific path in the condition tree.
type RemoveItemRequest ¶ added in v1.13.0
type RemoveItemRequest struct {
Path string `json:"path"`
}
type RemoveTrackerRequest ¶ added in v1.0.0
type RemoveTrackerRequest struct {
URLs string `json:"urls"` // Newline-separated URLs
}
RemoveTrackerRequest represents a tracker remove request
type RenameRuleRequest ¶ added in v1.13.0
type RenameRuleRequest struct {
NewName string `json:"newName"`
}
type SetFeedURLRequest ¶ added in v1.13.0
type SetRuleRequest ¶ added in v1.13.0
type SetRuleRequest struct {
Name string `json:"name"`
Rule qbt.RSSAutoDownloadRule `json:"rule"`
}
type SetTorrentFilePriorityRequest ¶ added in v1.7.0
type SetTorrentFilePriorityRequest struct {
Indices []int `json:"indices"`
Priority int `json:"priority"`
}
SetTorrentFilePriorityRequest represents a request to update torrent file priorities.
type SetupRequest ¶
SetupRequest represents the initial setup request
type SortedPeer ¶ added in v1.0.0
type SortedPeer struct {
Key string `json:"key"`
qbt.TorrentPeer
}
SortedPeer represents a peer with its key for sorting
type SortedPeersResponse ¶ added in v1.0.0
type SortedPeersResponse struct {
*qbt.TorrentPeersResponse
SortedPeers []SortedPeer `json:"sorted_peers,omitempty"`
}
SortedPeersResponse wraps the peers response with sorted peers
type TestConnectionResponse ¶
type TestConnectionResponse struct {
Connected bool `json:"connected"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
}
TestConnectionResponse represents connection test results
type ThemesHandler ¶ added in v1.23.0
type ThemesHandler struct {
// contains filtered or unexported fields
}
func NewThemesHandler ¶ added in v1.23.0
func NewThemesHandler(themesDir themesDirProvider, premium premiumChecker) *ThemesHandler
func (*ThemesHandler) ListCustomThemes ¶ added in v1.23.0
func (h *ThemesHandler) ListCustomThemes(w http.ResponseWriter, r *http.Request)
ListCustomThemes returns the sideloaded custom theme CSS files and their contents. It is premium-gated: callers without an active premium-access license receive 403. The directory is scanned fresh on every request so edits are picked up without a restart.
type TorrentsHandler ¶
type TorrentsHandler struct {
// contains filtered or unexported fields
}
func NewTorrentsHandler ¶
func NewTorrentsHandler(syncManager *qbittorrent.SyncManager, jackettService *jackett.Service, instanceStore *models.InstanceStore) *TorrentsHandler
func NewTorrentsHandlerForTesting ¶ added in v1.9.0
func NewTorrentsHandlerForTesting(adder torrentAdder, downloader torrentDownloader) *TorrentsHandler
NewTorrentsHandlerForTesting creates a TorrentsHandler with mock interfaces for testing
func (*TorrentsHandler) AddPeers ¶ added in v1.0.0
func (h *TorrentsHandler) AddPeers(w http.ResponseWriter, r *http.Request)
AddPeers adds peers to torrents
func (*TorrentsHandler) AddTorrent ¶
func (h *TorrentsHandler) AddTorrent(w http.ResponseWriter, r *http.Request)
AddTorrent adds a new torrent
func (*TorrentsHandler) AddTorrentTrackers ¶ added in v1.0.0
func (h *TorrentsHandler) AddTorrentTrackers(w http.ResponseWriter, r *http.Request)
AddTorrentTrackers adds trackers to a specific torrent
func (*TorrentsHandler) BanPeers ¶ added in v1.0.0
func (h *TorrentsHandler) BanPeers(w http.ResponseWriter, r *http.Request)
BanPeers bans peers permanently
func (*TorrentsHandler) BulkAction ¶
func (h *TorrentsHandler) BulkAction(w http.ResponseWriter, r *http.Request)
BulkAction performs bulk operations on torrents
func (*TorrentsHandler) CheckDuplicates ¶ added in v1.5.0
func (h *TorrentsHandler) CheckDuplicates(w http.ResponseWriter, r *http.Request)
CheckDuplicates validates if any of the provided hashes already exist in qBittorrent.
func (*TorrentsHandler) CreateCategory ¶
func (h *TorrentsHandler) CreateCategory(w http.ResponseWriter, r *http.Request)
CreateCategory creates a new category
func (*TorrentsHandler) CreateTags ¶
func (h *TorrentsHandler) CreateTags(w http.ResponseWriter, r *http.Request)
CreateTags creates new tags
func (*TorrentsHandler) CreateTorrent ¶ added in v1.3.0
func (h *TorrentsHandler) CreateTorrent(w http.ResponseWriter, r *http.Request)
CreateTorrent creates a new torrent file from source path
func (*TorrentsHandler) DeleteTags ¶
func (h *TorrentsHandler) DeleteTags(w http.ResponseWriter, r *http.Request)
DeleteTags deletes tags
func (*TorrentsHandler) DeleteTorrentCreationTask ¶ added in v1.3.0
func (h *TorrentsHandler) DeleteTorrentCreationTask(w http.ResponseWriter, r *http.Request)
DeleteTorrentCreationTask deletes a torrent creation task
func (*TorrentsHandler) DownloadTorrentContentFile ¶ added in v1.14.0
func (h *TorrentsHandler) DownloadTorrentContentFile(w http.ResponseWriter, r *http.Request)
DownloadTorrentContentFile serves a single file from a torrent's content on disk. GET /api/instances/{instanceID}/torrents/{hash}/files/{fileIndex}/download
func (*TorrentsHandler) DownloadTorrentCreationFile ¶ added in v1.3.0
func (h *TorrentsHandler) DownloadTorrentCreationFile(w http.ResponseWriter, r *http.Request)
DownloadTorrentCreationFile downloads the torrent file for a completed task
func (*TorrentsHandler) EditCategory ¶
func (h *TorrentsHandler) EditCategory(w http.ResponseWriter, r *http.Request)
EditCategory edits an existing category
func (*TorrentsHandler) EditTorrentTracker ¶ added in v1.0.0
func (h *TorrentsHandler) EditTorrentTracker(w http.ResponseWriter, r *http.Request)
EditTorrentTracker edits a tracker URL for a specific torrent
func (*TorrentsHandler) ExportTorrent ¶ added in v1.2.0
func (h *TorrentsHandler) ExportTorrent(w http.ResponseWriter, r *http.Request)
ExportTorrent streams the .torrent file for a specific torrent
func (*TorrentsHandler) GetActiveTaskCount ¶ added in v1.3.0
func (h *TorrentsHandler) GetActiveTaskCount(w http.ResponseWriter, r *http.Request)
GetActiveTaskCount returns the number of active torrent creation tasks This is a lightweight endpoint optimized for polling the badge count
func (*TorrentsHandler) GetActiveTrackers ¶ added in v1.3.0
func (h *TorrentsHandler) GetActiveTrackers(w http.ResponseWriter, r *http.Request)
GetActiveTrackers returns all active tracker domains with their URLs
func (*TorrentsHandler) GetCategories ¶
func (h *TorrentsHandler) GetCategories(w http.ResponseWriter, r *http.Request)
GetCategories returns all categories
func (*TorrentsHandler) GetContentPathMediaInfo ¶ added in v1.15.0
func (h *TorrentsHandler) GetContentPathMediaInfo(w http.ResponseWriter, r *http.Request)
GetContentPathMediaInfo returns MediaInfo summary text and JSON for an instance-relative content path. GET /api/instances/{instanceID}/mediainfo?contentPath=...
func (*TorrentsHandler) GetDirectoryContent ¶ added in v1.10.0
func (h *TorrentsHandler) GetDirectoryContent(w http.ResponseWriter, r *http.Request)
func (*TorrentsHandler) GetTags ¶
func (h *TorrentsHandler) GetTags(w http.ResponseWriter, r *http.Request)
GetTags returns all tags
func (*TorrentsHandler) GetTorrentCreationStatus ¶ added in v1.3.0
func (h *TorrentsHandler) GetTorrentCreationStatus(w http.ResponseWriter, r *http.Request)
GetTorrentCreationStatus gets status of torrent creation tasks
func (*TorrentsHandler) GetTorrentField ¶ added in v1.14.0
func (h *TorrentsHandler) GetTorrentField(w http.ResponseWriter, r *http.Request)
GetTorrentField returns field values for torrents matching either the current filters or an explicit selection payload. Used for copy operations and tag baseline lookups.
func (*TorrentsHandler) GetTorrentFileMediaInfo ¶ added in v1.15.0
func (h *TorrentsHandler) GetTorrentFileMediaInfo(w http.ResponseWriter, r *http.Request)
GetTorrentFileMediaInfo returns MediaInfo output for a single torrent content file on disk. GET /api/instances/{instanceID}/torrents/{hash}/files/{fileIndex}/mediainfo
func (*TorrentsHandler) GetTorrentFiles ¶
func (h *TorrentsHandler) GetTorrentFiles(w http.ResponseWriter, r *http.Request)
func (*TorrentsHandler) GetTorrentPeers ¶ added in v1.0.0
func (h *TorrentsHandler) GetTorrentPeers(w http.ResponseWriter, r *http.Request)
GetTorrentFiles returns files information for a specific torrent
func (*TorrentsHandler) GetTorrentPieceStates ¶ added in v1.13.0
func (h *TorrentsHandler) GetTorrentPieceStates(w http.ResponseWriter, r *http.Request)
GetTorrentPieceStates returns the download state of each piece for a torrent. States: 0 = not downloaded, 1 = downloading, 2 = downloaded
func (*TorrentsHandler) GetTorrentProperties ¶
func (h *TorrentsHandler) GetTorrentProperties(w http.ResponseWriter, r *http.Request)
GetTorrentProperties returns detailed properties for a specific torrent
func (*TorrentsHandler) GetTorrentTrackers ¶
func (h *TorrentsHandler) GetTorrentTrackers(w http.ResponseWriter, r *http.Request)
GetTorrentTrackers returns trackers for a specific torrent
func (*TorrentsHandler) GetTorrentWebSeeds ¶
func (h *TorrentsHandler) GetTorrentWebSeeds(w http.ResponseWriter, r *http.Request)
GetTorrentWebSeeds returns the web seeds (HTTP sources) for a torrent
func (*TorrentsHandler) ListCrossInstanceTorrents ¶ added in v1.8.0
func (h *TorrentsHandler) ListCrossInstanceTorrents(w http.ResponseWriter, r *http.Request)
ListCrossInstanceTorrents returns torrents from all instances matching the filter expression
func (*TorrentsHandler) ListTorrents ¶
func (h *TorrentsHandler) ListTorrents(w http.ResponseWriter, r *http.Request)
ListTorrents returns paginated torrents for an instance with enhanced metadata
func (*TorrentsHandler) RemoveCategories ¶
func (h *TorrentsHandler) RemoveCategories(w http.ResponseWriter, r *http.Request)
RemoveCategories removes categories
func (*TorrentsHandler) RemoveTorrentTrackers ¶ added in v1.0.0
func (h *TorrentsHandler) RemoveTorrentTrackers(w http.ResponseWriter, r *http.Request)
RemoveTorrentTrackers removes trackers from a specific torrent
func (*TorrentsHandler) RenameTorrent ¶ added in v1.4.0
func (h *TorrentsHandler) RenameTorrent(w http.ResponseWriter, r *http.Request)
RenameTorrent updates the display name for a torrent
func (*TorrentsHandler) RenameTorrentFile ¶ added in v1.4.0
func (h *TorrentsHandler) RenameTorrentFile(w http.ResponseWriter, r *http.Request)
RenameTorrentFile renames a file within a torrent
func (*TorrentsHandler) RenameTorrentFolder ¶ added in v1.4.0
func (h *TorrentsHandler) RenameTorrentFolder(w http.ResponseWriter, r *http.Request)
RenameTorrentFolder renames a folder within a torrent
func (*TorrentsHandler) SetTorrentFilePriority ¶ added in v1.7.0
func (h *TorrentsHandler) SetTorrentFilePriority(w http.ResponseWriter, r *http.Request)
SetTorrentFilePriority updates the download priority for one or more files in a torrent.
type TrackerCustomizationHandler ¶ added in v1.9.0
type TrackerCustomizationHandler struct {
// contains filtered or unexported fields
}
func NewTrackerCustomizationHandler ¶ added in v1.9.0
func NewTrackerCustomizationHandler(store *models.TrackerCustomizationStore, onMutationHook func()) *TrackerCustomizationHandler
NewTrackerCustomizationHandler creates a new handler for tracker customization endpoints. The onMutationHook parameter is called after any create/update/delete operation to allow external components (like SyncManager) to invalidate caches when customizations change. Pass nil if no cache invalidation is needed.
func (*TrackerCustomizationHandler) Create ¶ added in v1.9.0
func (h *TrackerCustomizationHandler) Create(w http.ResponseWriter, r *http.Request)
func (*TrackerCustomizationHandler) Delete ¶ added in v1.9.0
func (h *TrackerCustomizationHandler) Delete(w http.ResponseWriter, r *http.Request)
func (*TrackerCustomizationHandler) List ¶ added in v1.9.0
func (h *TrackerCustomizationHandler) List(w http.ResponseWriter, r *http.Request)
func (*TrackerCustomizationHandler) Update ¶ added in v1.9.0
func (h *TrackerCustomizationHandler) Update(w http.ResponseWriter, r *http.Request)
type TrackerCustomizationPayload ¶ added in v1.9.0
type TrackerIconHandler ¶ added in v1.3.0
type TrackerIconHandler struct {
// contains filtered or unexported fields
}
TrackerIconHandler serves cached tracker favicons via the API.
func NewTrackerIconHandler ¶ added in v1.3.0
func NewTrackerIconHandler(service TrackerIconProvider) *TrackerIconHandler
NewTrackerIconHandler constructs a new handler for tracker icons.
func (*TrackerIconHandler) GetTrackerIcons ¶ added in v1.3.0
func (h *TrackerIconHandler) GetTrackerIcons(w http.ResponseWriter, r *http.Request)
GetTrackerIcons returns all cached tracker icons as a JSON map.
type TrackerIconProvider ¶ added in v1.3.0
type TrackerIconProvider interface {
GetIcon(ctx context.Context, host, trackerURL string) (string, error)
ListIcons(ctx context.Context) (map[string]string, error)
}
TrackerIconProvider defines the behaviour required to serve tracker icons.
type UpdateInstanceRequest ¶
type UpdateInstanceRequest struct {
Name string `json:"name"`
Host string `json:"host"`
Username string `json:"username"`
Password string `json:"password,omitempty"` // Optional for updates
APIKey *string `json:"apiKey,omitempty"`
BasicUsername *string `json:"basicUsername,omitempty"`
BasicPassword *string `json:"basicPassword,omitempty"`
TLSSkipVerify *bool `json:"tlsSkipVerify,omitempty"`
HasLocalFilesystemAccess *bool `json:"hasLocalFilesystemAccess,omitempty"`
UseHardlinks *bool `json:"useHardlinks,omitempty"`
HardlinkBaseDir *string `json:"hardlinkBaseDir,omitempty"`
HardlinkDirPreset *string `json:"hardlinkDirPreset,omitempty"`
UseReflinks *bool `json:"useReflinks,omitempty"`
FallbackToRegularMode *bool `json:"fallbackToRegularMode,omitempty"`
ReannounceSettings *InstanceReannounceSettingsPayload `json:"reannounceSettings,omitempty"`
}
UpdateInstanceRequest represents a request to update an instance
type UpdateInstanceStatusRequest ¶ added in v1.8.0
type UpdateInstanceStatusRequest struct {
IsActive bool `json:"isActive"`
}
type ValidateLicenseRequest ¶
type ValidateLicenseRequest struct {
LicenseKey string `json:"licenseKey"`
}
ValidateLicenseRequest represents the request body for license validation
type ValidateLicenseResponse ¶
type ValidateLicenseResponse struct {
Valid bool `json:"valid"`
ProductName string `json:"productName,omitempty"`
ExpiresAt *time.Time `json:"expiresAt,omitempty"`
Message string `json:"message,omitempty"`
Error string `json:"error,omitempty"`
}
ValidateLicenseResponse represents the response for license validation
type VersionHandler ¶ added in v1.1.0
type VersionHandler struct {
// contains filtered or unexported fields
}
func NewVersionHandler ¶ added in v1.1.0
func NewVersionHandler(updateService latestReleaseProvider, currentVersion string) *VersionHandler
func (*VersionHandler) GetLatestVersion ¶ added in v1.1.0
func (h *VersionHandler) GetLatestVersion(w http.ResponseWriter, r *http.Request)
func (*VersionHandler) GetVersion ¶ added in v1.21.0
func (h *VersionHandler) GetVersion(w http.ResponseWriter, r *http.Request)
GetVersion returns the version qui is currently running. When the update service has detected a newer release, LatestVersion and UpdateAvailable are populated from the cached result; otherwise UpdateAvailable is false and LatestVersion is omitted.
type VersionResponse ¶ added in v1.21.0
type VersionResponse struct {
Version string `json:"version"`
LatestVersion string `json:"latestVersion,omitempty"`
UpdateAvailable bool `json:"updateAvailable"`
}
VersionResponse reports the version qui is currently running plus whether a newer release has been detected. Intended for monitoring tools (e.g. Argus) that track the deployed version of a service.
type WarningResponse ¶ added in v1.13.0
type WarningResponse struct {
Warning string `json:"warning,omitempty"`
}
WarningResponse represents a success response with optional warnings
Source Files
¶
- application.go
- arr.go
- auth.go
- automations.go
- backups.go
- capabilities.go
- client_api_keys.go
- crossseed.go
- dashboard_settings.go
- dirscan.go
- external_programs.go
- health.go
- helpers.go
- instances.go
- jackett.go
- licenses.go
- log_exclusions.go
- logs.go
- notifications.go
- oidc.go
- orphan_scan.go
- preferences.go
- qbittorrent_info.go
- rss.go
- rss_sse.go
- themes.go
- torrents.go
- tracker_customizations.go
- tracker_icons.go
- version.go