Documentation
¶
Index ¶
- Constants
- type ActionStatus
- type AuthConfig
- type AutobrrDetails
- type AutobrrServiceHealth
- type AutobrrStats
- type BazarrBadges
- type BazarrHealthIssue
- type BazarrHealthIssuesEnvelope
- type BazarrProviderStatus
- type BazarrProvidersEnvelope
- type BazarrSummaryResponse
- type BazarrSystemStatus
- type BazarrSystemStatusEnvelope
- type Changes
- type Episode
- type EpisodeBasic
- type FindServiceParams
- type FindUserParams
- type IRCStatus
- type Indexer
- type JellyfinMediaStream
- type JellyfinNowPlayingItem
- type JellyfinPlayerState
- type JellyfinSession
- type JellyfinSummaryResponse
- type JellyfinSystemInfo
- type JellyfinTranscodingInfo
- type LidarrQueueDeleteOptions
- type LidarrQueueItem
- type LidarrQueueResponse
- type LidarrStatusMessage
- type LoginRequest
- type MediaContainer
- type MediaRequest
- type NzbgetHistoryItem
- type NzbgetQueueItem
- type NzbgetStatus
- type NzbgetSummaryResponse
- type OverseerrDetails
- type OverseerrServiceHealth
- type OverseerrStats
- type PlexMedia
- type PlexPIN
- type PlexPart
- type PlexPlayer
- type PlexResponse
- type PlexSession
- type PlexSessionInfo
- type PlexSessionsResponse
- type PlexStream
- type PlexTranscodeSession
- type PlexUser
- type ProwlarrIndexer
- type ProwlarrIndexerStats
- type ProwlarrIndexerStatsResponse
- type ProwlarrStatsResponse
- type QueueRecord
- type QuiCrossSeedRun
- type QuiCrossSeedSettings
- type QuiCrossSeedStatus
- type QuiHealthResponse
- type QuiInstance
- type QuiInstanceTransfer
- type QuiTransferInfo
- type QuiTransferSummary
- type RadarrCustomFormat
- type RadarrMovie
- type RadarrMovieResponse
- type RadarrQueueDeleteOptions
- type RadarrQueueRecord
- type RadarrQueueResponse
- type RadarrQueueStats
- type RadarrStatusMessage
- type Rating
- type Ratings
- type ReadarrQueueDeleteOptions
- type ReadarrQueueItem
- type ReadarrQueueResponse
- type ReadarrStatusMessage
- type RegisterRequest
- type Release
- type ReleaseType
- type ReleasesResponse
- type RequestsResponse
- type RequestsStats
- type SabnzbdHistory
- type SabnzbdHistoryEnvelope
- type SabnzbdHistorySlot
- type SabnzbdQueue
- type SabnzbdQueueEnvelope
- type SabnzbdQueueSlot
- type SabnzbdSummaryResponse
- type SabnzbdVersionEnvelope
- type Series
- type ServiceConfigResponse
- type ServiceHealth
- type SessionData
- type SonarrQueueDeleteOptions
- type SonarrQueueResponse
- type SonarrStatsResponse
- type SonarrUpdateResponse
- type StatusMessage
- type StatusResponse
- type TraefikCertificate
- type TraefikCertificateSummary
- type TraefikFeatures
- type TraefikOverviewResponse
- type TraefikRouter
- type TraefikSchemeOverview
- type TraefikSection
- type TraefikSummaryResponse
- type TraefikVersionResponse
- type UpdateResponse
- type UptimeKumaMonitor
- type UptimeKumaSummaryResponse
- type User
- type VersionResponse
- type WebhookProxyRequest
Constants ¶
const (
PlexSessionCacheDuration = 30 * time.Second
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActionStatus ¶ added in v0.3.0
type ActionStatus struct {
ID int `json:"id"`
Status string `json:"status"`
Action string `json:"action"`
ActionID int `json:"action_id"`
Type string `json:"type"`
Client string `json:"client"`
Filter string `json:"filter"`
FilterID int `json:"filter_id"`
Rejections []string `json:"rejections"`
ReleaseID int `json:"release_id"`
Timestamp time.Time `json:"timestamp"`
}
type AuthConfig ¶
AuthConfig holds the OIDC configuration
type AutobrrDetails ¶ added in v0.3.0
type AutobrrDetails struct {
IRC []IRCStatus `json:"irc,omitempty"`
}
type AutobrrServiceHealth ¶ added in v0.3.0
type AutobrrServiceHealth struct {
ServiceID string `json:"serviceId"`
Status string `json:"status"`
Message string `json:"message"`
LastChecked time.Time `json:"lastChecked"`
Stats *AutobrrStats `json:"stats,omitempty"`
Details AutobrrDetails `json:"details"`
}
type AutobrrStats ¶ added in v0.3.0
type AutobrrStats struct {
TotalCount int `json:"total_count"`
FilteredCount int `json:"filtered_count"`
FilterRejectedCount int `json:"filter_rejected_count"`
PushApprovedCount int `json:"push_approved_count"`
PushRejectedCount int `json:"push_rejected_count"`
PushErrorCount int `json:"push_error_count"`
}
type BazarrBadges ¶ added in v0.3.0
type BazarrBadges struct {
Episodes int `json:"episodes"`
Movies int `json:"movies"`
Providers int `json:"providers"`
Status int `json:"status"`
SonarrSignalR string `json:"sonarr_signalr"`
RadarrSignalR string `json:"radarr_signalr"`
Announcements int `json:"announcements"`
}
BazarrBadges represents Bazarr /api/badges.
type BazarrHealthIssue ¶ added in v0.3.0
BazarrHealthIssue represents a single system health issue.
type BazarrHealthIssuesEnvelope ¶ added in v0.3.0
type BazarrHealthIssuesEnvelope struct {
Data []BazarrHealthIssue `json:"data"`
}
BazarrHealthIssuesEnvelope represents Bazarr /api/system/health response.
type BazarrProviderStatus ¶ added in v0.3.0
type BazarrProviderStatus struct {
Name string `json:"name"`
Status string `json:"status"`
Retry string `json:"retry"`
}
BazarrProviderStatus represents provider health from /api/providers.
type BazarrProvidersEnvelope ¶ added in v0.3.0
type BazarrProvidersEnvelope struct {
Data []BazarrProviderStatus `json:"data"`
}
BazarrProvidersEnvelope represents Bazarr /api/providers response.
type BazarrSummaryResponse ¶ added in v0.3.0
type BazarrSummaryResponse struct {
Badges BazarrBadges `json:"badges"`
Providers []BazarrProviderStatus `json:"providers"`
HealthIssues []BazarrHealthIssue `json:"healthIssues"`
}
BazarrSummaryResponse is the combined payload used by API handlers and SSE.
type BazarrSystemStatus ¶ added in v0.3.0
type BazarrSystemStatus struct {
BazarrVersion string `json:"bazarr_version"`
}
BazarrSystemStatus contains the status payload from Bazarr.
type BazarrSystemStatusEnvelope ¶ added in v0.3.0
type BazarrSystemStatusEnvelope struct {
Data BazarrSystemStatus `json:"data"`
}
BazarrSystemStatusEnvelope represents Bazarr /api/system/status.
type Episode ¶ added in v0.3.0
type Episode struct {
ID int `json:"id"`
SeriesID int `json:"seriesId"`
EpisodeNumber int `json:"episodeNumber"`
SeasonNumber int `json:"seasonNumber"`
Title string `json:"title"`
AirDate string `json:"airDate"`
AirDateUTC string `json:"airDateUtc"`
Overview string `json:"overview"`
HasFile bool `json:"hasFile"`
Monitored bool `json:"monitored"`
AbsoluteEpisodeNumber int `json:"absoluteEpisodeNumber"`
UnverifiedSceneNumbering bool `json:"unverifiedSceneNumbering"`
}
Episode represents an episode in Sonarr
type EpisodeBasic ¶ added in v0.3.0
type EpisodeBasic struct {
ID int `json:"id"`
EpisodeNumber int `json:"episodeNumber"`
SeasonNumber int `json:"seasonNumber"`
}
EpisodeBasic represents a basic episode structure for queue items
type FindServiceParams ¶ added in v0.3.0
type FindUserParams ¶ added in v0.3.0
type JellyfinMediaStream ¶ added in v0.3.0
type JellyfinNowPlayingItem ¶ added in v0.3.0
type JellyfinNowPlayingItem struct {
Name string `json:"Name"`
SeriesName string `json:"SeriesName"`
Type string `json:"Type"`
RunTimeTicks int64 `json:"RunTimeTicks"`
MediaStreams []JellyfinMediaStream `json:"MediaStreams"`
}
type JellyfinPlayerState ¶ added in v0.3.0
type JellyfinSession ¶ added in v0.3.0
type JellyfinSession struct {
ID string `json:"Id"`
UserName string `json:"UserName"`
Client string `json:"Client"`
DeviceName string `json:"DeviceName"`
DeviceType string `json:"DeviceType"`
ApplicationVersion string `json:"ApplicationVersion"`
IsActive bool `json:"IsActive"`
PlayState *JellyfinPlayerState `json:"PlayState"`
NowPlayingItem *JellyfinNowPlayingItem `json:"NowPlayingItem"`
TranscodingInfo *JellyfinTranscodingInfo `json:"TranscodingInfo"`
}
type JellyfinSummaryResponse ¶ added in v0.3.0
type JellyfinSummaryResponse struct {
System JellyfinSystemInfo `json:"system"`
Sessions []JellyfinSession `json:"sessions"`
}
type JellyfinSystemInfo ¶ added in v0.3.0
type JellyfinTranscodingInfo ¶ added in v0.3.0
type JellyfinTranscodingInfo struct {
AudioCodec string `json:"AudioCodec"`
VideoCodec string `json:"VideoCodec"`
Container string `json:"Container"`
IsVideoDirect bool `json:"IsVideoDirect"`
IsAudioDirect bool `json:"IsAudioDirect"`
Bitrate int64 `json:"Bitrate"`
CompletionPercentage float64 `json:"CompletionPercentage"`
Width int `json:"Width"`
Height int `json:"Height"`
AudioChannels int `json:"AudioChannels"`
}
type LidarrQueueDeleteOptions ¶ added in v0.3.0
type LidarrQueueDeleteOptions struct {
RemoveFromClient bool `json:"removeFromClient"`
Blocklist bool `json:"blocklist"`
SkipRedownload bool `json:"skipRedownload"`
ChangeCategory bool `json:"changeCategory"`
}
LidarrQueueDeleteOptions represents options for deleting a queue item.
type LidarrQueueItem ¶ added in v0.3.0
type LidarrQueueItem struct {
ID int `json:"id"`
Title string `json:"title"`
Status string `json:"status"`
TimeLeft string `json:"timeleft,omitempty"`
EstimatedCompletionAt string `json:"estimatedCompletionTime"`
Protocol string `json:"protocol"`
Indexer string `json:"indexer"`
DownloadClient string `json:"downloadClient"`
Size int64 `json:"size"`
SizeLeft int64 `json:"sizeleft"`
CustomFormatScore int `json:"customFormatScore"`
TrackedDownloadStatus string `json:"trackedDownloadStatus"`
TrackedDownloadState string `json:"trackedDownloadState"`
StatusMessages []LidarrStatusMessage `json:"statusMessages"`
ErrorMessage string `json:"errorMessage"`
DownloadID string `json:"downloadId"`
}
LidarrQueueItem represents a record in the Lidarr queue.
type LidarrQueueResponse ¶ added in v0.3.0
type LidarrQueueResponse struct {
Page int `json:"page"`
PageSize int `json:"pageSize"`
SortKey string `json:"sortKey"`
SortDirection string `json:"sortDirection"`
TotalRecords int `json:"totalRecords"`
Records []LidarrQueueItem `json:"records"`
}
LidarrQueueResponse represents the queue response from Lidarr API.
type LidarrStatusMessage ¶ added in v0.3.0
LidarrStatusMessage represents detailed status information for a queue record.
type LoginRequest ¶
type LoginRequest struct {
Username string `json:"username" binding:"required"`
Password string `json:"password" binding:"required"`
}
LoginRequest represents the login credentials
type MediaContainer ¶
type MediaRequest ¶
type MediaRequest struct {
ID int `json:"id"`
Status int `json:"status"`
CreatedAt time.Time `json:"createdAt"`
UpdatedAt time.Time `json:"updatedAt"`
Media struct {
ID int `json:"id"`
TmdbID int `json:"tmdbId"`
TvdbID int `json:"tvdbId"`
Status int `json:"status"`
Requests []string `json:"requests"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
MediaType string `json:"mediaType"`
ServiceUrl string `json:"serviceUrl"`
Title string `json:"title,omitempty"`
ExternalServiceID int `json:"externalServiceId,omitempty"`
} `json:"media"`
RequestedBy struct {
ID int `json:"id"`
Email string `json:"email"`
Username string `json:"username"`
PlexToken string `json:"plexToken"`
PlexUsername string `json:"plexUsername"`
UserType int `json:"userType"`
Permissions int `json:"permissions"`
Avatar string `json:"avatar"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
RequestCount int `json:"requestCount"`
} `json:"requestedBy"`
ModifiedBy struct {
ID int `json:"id"`
Email string `json:"email"`
Username string `json:"username"`
PlexToken string `json:"plexToken"`
PlexUsername string `json:"plexUsername"`
UserType int `json:"userType"`
Permissions int `json:"permissions"`
Avatar string `json:"avatar"`
CreatedAt string `json:"createdAt"`
UpdatedAt string `json:"updatedAt"`
RequestCount int `json:"requestCount"`
} `json:"modifiedBy"`
Is4k bool `json:"is4k"`
ServerID int `json:"serverId"`
ProfileID int `json:"profileId"`
RootFolder string `json:"rootFolder"`
}
type NzbgetHistoryItem ¶ added in v0.3.0
type NzbgetHistoryItem struct {
NZBID int64 `json:"NZBID"`
Kind string `json:"Kind"`
Name string `json:"Name"`
NZBName string `json:"NZBName"`
Category string `json:"Category"`
Status string `json:"Status"`
HistoryTime int64 `json:"HistoryTime"`
FileSizeMB int64 `json:"FileSizeMB"`
DownloadedSizeMB int64 `json:"DownloadedSizeMB"`
DownloadTimeSec int64 `json:"DownloadTimeSec"`
}
type NzbgetQueueItem ¶ added in v0.3.0
type NzbgetQueueItem struct {
NZBID int64 `json:"NZBID"`
NZBName string `json:"NZBName"`
Category string `json:"Category"`
Status string `json:"Status"`
RemainingSizeLo uint64 `json:"RemainingSizeLo"`
RemainingSizeHi uint64 `json:"RemainingSizeHi"`
RemainingSizeMB int64 `json:"RemainingSizeMB"`
DownloadedSizeMB int64 `json:"DownloadedSizeMB"`
DownloadTimeSec int64 `json:"DownloadTimeSec"`
Health int64 `json:"Health"`
CriticalHealth int64 `json:"CriticalHealth"`
}
type NzbgetStatus ¶ added in v0.3.0
type NzbgetStatus struct {
RemainingSizeLo uint64 `json:"RemainingSizeLo"`
RemainingSizeHi uint64 `json:"RemainingSizeHi"`
RemainingSizeMB int64 `json:"RemainingSizeMB"`
DownloadRate int64 `json:"DownloadRate"`
DownloadRateLo uint64 `json:"DownloadRateLo"`
DownloadRateHi uint64 `json:"DownloadRateHi"`
DownloadPaused bool `json:"DownloadPaused"`
PostPaused bool `json:"PostPaused"`
ScanPaused bool `json:"ScanPaused"`
ServerStandBy bool `json:"ServerStandBy"`
QuotaReached bool `json:"QuotaReached"`
ServerTime int64 `json:"ServerTime"`
ResumeTime int64 `json:"ResumeTime"`
FreeDiskSpaceLo uint64 `json:"FreeDiskSpaceLo"`
FreeDiskSpaceHi uint64 `json:"FreeDiskSpaceHi"`
FreeDiskSpaceMB int64 `json:"FreeDiskSpaceMB"`
TotalDiskSpaceLo uint64 `json:"TotalDiskSpaceLo"`
TotalDiskSpaceHi uint64 `json:"TotalDiskSpaceHi"`
TotalDiskSpaceMB int64 `json:"TotalDiskSpaceMB"`
}
type NzbgetSummaryResponse ¶ added in v0.3.0
type NzbgetSummaryResponse struct {
Status NzbgetStatus `json:"status"`
Queue []NzbgetQueueItem `json:"queue"`
FailedCount int `json:"failedCount"`
RecentFailures []NzbgetHistoryItem `json:"recentFailures"`
}
type OverseerrDetails ¶ added in v0.3.0
type OverseerrServiceHealth ¶ added in v0.3.0
type OverseerrServiceHealth struct {
ServiceID string `json:"serviceId"`
Status string `json:"status"`
Message string `json:"message"`
LastChecked time.Time `json:"lastChecked"`
Stats OverseerrStats `json:"stats"`
Details OverseerrDetails `json:"details"`
}
type OverseerrStats ¶ added in v0.3.0
type OverseerrStats struct {
Requests []MediaRequest `json:"requests"`
PendingCount int `json:"pendingCount"`
}
type PlexPart ¶
type PlexPart struct {
Container string `json:"container"`
Duration int `json:"duration"`
File string `json:"file"`
HasThumbnail string `json:"hasThumbnail"`
ID string `json:"id"`
Key string `json:"key"`
Size int64 `json:"size"`
Decision string `json:"decision"`
Selected bool `json:"selected"`
Stream []PlexStream `json:"Stream"`
}
type PlexPlayer ¶
type PlexPlayer struct {
Address string `json:"address"`
Device string `json:"device"`
MachineIdentifier string `json:"machineIdentifier"`
Model string `json:"model"`
Platform string `json:"platform"`
PlatformVersion string `json:"platformVersion"`
Product string `json:"product"`
Profile string `json:"profile"`
State string `json:"state"`
RemotePublicAddress string `json:"remotePublicAddress"`
Title string `json:"title"`
Vendor string `json:"vendor"`
Version string `json:"version"`
}
type PlexResponse ¶
type PlexResponse struct {
MediaContainer MediaContainer `json:"MediaContainer"`
}
type PlexSession ¶
type PlexSession struct {
AddedAt int64 `json:"addedAt"`
Art string `json:"art"`
Duration int `json:"duration"`
GrandparentArt string `json:"grandparentArt"`
GrandparentGuid string `json:"grandparentGuid"`
GrandparentKey string `json:"grandparentKey"`
GrandparentRatingKey string `json:"grandparentRatingKey"`
GrandparentThumb string `json:"grandparentThumb"`
GrandparentTitle string `json:"grandparentTitle"`
Guid string `json:"guid"`
Index int `json:"index"`
Key string `json:"key"`
LibrarySectionID string `json:"librarySectionID"`
LibrarySectionKey string `json:"librarySectionKey"`
LibrarySectionTitle string `json:"librarySectionTitle"`
MusicAnalysisVersion string `json:"musicAnalysisVersion"`
ParentGuid string `json:"parentGuid"`
ParentIndex int `json:"parentIndex"`
ParentKey string `json:"parentKey"`
ParentRatingKey string `json:"parentRatingKey"`
ParentStudio string `json:"parentStudio"`
ParentThumb string `json:"parentThumb"`
ParentTitle string `json:"parentTitle"`
ParentYear int `json:"parentYear"`
RatingCount int `json:"ratingCount"`
RatingKey string `json:"ratingKey"`
SessionKey string `json:"sessionKey"`
Thumb string `json:"thumb"`
Title string `json:"title"`
TitleSort string `json:"titleSort"`
Type string `json:"type"`
UpdatedAt int64 `json:"updatedAt"`
ViewOffset int `json:"viewOffset"`
Media []PlexMedia `json:"Media"`
User *PlexUser `json:"User,omitempty"`
Player *PlexPlayer `json:"Player,omitempty"`
Session *PlexSessionInfo `json:"Session,omitempty"`
TranscodeSession *PlexTranscodeSession `json:"TranscodeSession,omitempty"`
}
type PlexSessionInfo ¶
type PlexSessionsResponse ¶
type PlexSessionsResponse struct {
MediaContainer struct {
Size int `json:"size"`
Metadata []PlexSession `json:"Metadata"`
} `json:"MediaContainer"`
}
type PlexStream ¶
type PlexStream struct {
AlbumGain string `json:"albumGain"`
AlbumPeak string `json:"albumPeak"`
AlbumRange string `json:"albumRange"`
AudioChannelLayout string `json:"audioChannelLayout"`
BitDepth int `json:"bitDepth"`
Bitrate int `json:"bitrate"`
Channels int `json:"channels"`
Codec string `json:"codec"`
DisplayTitle string `json:"displayTitle"`
ExtendedDisplayTitle string `json:"extendedDisplayTitle"`
Gain string `json:"gain"`
ID string `json:"id"`
Index int `json:"index"`
Loudness string `json:"loudness"`
LRA string `json:"lra"`
Peak string `json:"peak"`
SamplingRate int `json:"samplingRate"`
Selected bool `json:"selected"`
StreamType int `json:"streamType"`
Location string `json:"location"`
}
type PlexTranscodeSession ¶
type PlexTranscodeSession struct {
Key string `json:"key"`
Throttled bool `json:"throttled"`
Complete bool `json:"complete"`
Progress float64 `json:"progress"`
Speed float64 `json:"speed"`
Size int64 `json:"size"`
VideoDecision string `json:"videoDecision"`
AudioDecision string `json:"audioDecision"`
Protocol string `json:"protocol"`
Container string `json:"container"`
VideoCodec string `json:"videoCodec"`
AudioCodec string `json:"audioCodec"`
Width int `json:"width"`
Height int `json:"height"`
TranscodeHwRequested bool `json:"transcodeHwRequested"`
TranscodeHwFullPipeline bool `json:"transcodeHwFullPipeline"`
TimeStamp float64 `json:"timeStamp"`
MaxOffsetAvailable float64 `json:"maxOffsetAvailable"`
MinOffsetAvailable float64 `json:"minOffsetAvailable"`
}
type ProwlarrIndexer ¶
type ProwlarrIndexer struct {
ID int `json:"id"`
Name string `json:"name"`
Label string `json:"label"`
Enable bool `json:"enable"`
Priority int `json:"priority"`
AverageResponseTime int `json:"averageResponseTime"`
NumberOfGrabs int `json:"numberOfGrabs"`
NumberOfQueries int `json:"numberOfQueries"`
}
type ProwlarrIndexerStats ¶ added in v0.3.0
type ProwlarrIndexerStats struct {
ID int `json:"id"`
IndexerID int `json:"indexerId"`
IndexerName string `json:"indexerName"`
AverageResponseTime int `json:"averageResponseTime"`
NumberOfQueries int `json:"numberOfQueries"`
NumberOfGrabs int `json:"numberOfGrabs"`
NumberOfRssQueries int `json:"numberOfRssQueries"`
NumberOfAuthQueries int `json:"numberOfAuthQueries"`
NumberOfFailedQueries int `json:"numberOfFailedQueries"`
NumberOfFailedGrabs int `json:"numberOfFailedGrabs"`
NumberOfFailedRssQueries int `json:"numberOfFailedRssQueries"`
NumberOfFailedAuthQueries int `json:"numberOfFailedAuthQueries"`
}
type ProwlarrIndexerStatsResponse ¶ added in v0.3.0
type ProwlarrIndexerStatsResponse struct {
Indexers []ProwlarrIndexerStats `json:"indexers"`
}
type ProwlarrStatsResponse ¶
type QueueRecord ¶
type QueueRecord struct {
ID int `json:"id"`
SeriesID int `json:"seriesId"`
EpisodeID int `json:"episodeId"`
SeasonNumber int `json:"seasonNumber"`
Series Series `json:"series"`
Episode Episode `json:"episode"`
Title string `json:"title"`
Status string `json:"status"`
Size int64 `json:"size"`
SizeLeft int64 `json:"sizeleft"`
TimeLeft string `json:"timeleft,omitempty"`
EstimatedCompletionTime string `json:"estimatedCompletionTime"`
Added string `json:"added"`
DownloadClient string `json:"downloadClient"`
DownloadID string `json:"downloadId"`
Protocol string `json:"protocol"`
Indexer string `json:"indexer"`
OutputPath string `json:"outputPath"`
TrackedDownloadStatus string `json:"trackedDownloadStatus"`
TrackedDownloadState string `json:"trackedDownloadState"`
StatusMessages []StatusMessage `json:"statusMessages"`
ErrorMessage string `json:"errorMessage"`
DownloadClientHasPostImportCategory bool `json:"downloadClientHasPostImportCategory"`
EpisodeHasFile bool `json:"episodeHasFile"`
CustomFormatScore int `json:"customFormatScore"`
Episodes []EpisodeBasic `json:"episodes"`
}
QueueRecord represents a record in the Sonarr queue
type QuiCrossSeedRun ¶ added in v0.3.0
type QuiCrossSeedRun struct {
ID int64 `json:"id"`
Status string `json:"status"`
Mode string `json:"mode"`
TriggeredBy string `json:"triggeredBy"`
StartedAt time.Time `json:"startedAt"`
CompletedAt *time.Time `json:"completedAt,omitempty"`
CandidatesFound int `json:"candidatesFound"`
TorrentsAdded int `json:"torrentsAdded"`
TorrentsFailed int `json:"torrentsFailed"`
TorrentsSkipped int `json:"torrentsSkipped"`
Message string `json:"message,omitempty"`
ErrorMessage string `json:"errorMessage,omitempty"`
}
type QuiCrossSeedSettings ¶ added in v0.3.0
type QuiCrossSeedStatus ¶ added in v0.3.0
type QuiCrossSeedStatus struct {
Settings *QuiCrossSeedSettings `json:"settings,omitempty"`
LastRun *QuiCrossSeedRun `json:"lastRun,omitempty"`
NextRunAt *time.Time `json:"nextRunAt,omitempty"`
Running bool `json:"running"`
}
type QuiHealthResponse ¶ added in v0.3.0
type QuiHealthResponse struct {
Status string `json:"status"`
}
type QuiInstance ¶ added in v0.3.0
type QuiInstanceTransfer ¶ added in v0.3.0
type QuiInstanceTransfer struct {
InstanceID int `json:"instanceId"`
Name string `json:"name"`
Connected bool `json:"connected"`
Active bool `json:"active"`
ConnectionStatus string `json:"connectionStatus,omitempty"`
Downloaded int64 `json:"downloaded"`
Uploaded int64 `json:"uploaded"`
DownloadSpeed int64 `json:"downloadSpeed"`
UploadSpeed int64 `json:"uploadSpeed"`
DHTNodes int `json:"dhtNodes"`
}
type QuiTransferInfo ¶ added in v0.3.0
type QuiTransferInfo struct {
ConnectionStatus string `json:"connection_status"`
DHTNodes int `json:"dht_nodes"`
Downloaded int64 `json:"dl_info_data"`
DownloadSpeed int64 `json:"dl_info_speed"`
DownloadRate int64 `json:"dl_rate_limit"`
Uploaded int64 `json:"up_info_data"`
UploadSpeed int64 `json:"up_info_speed"`
UploadRate int64 `json:"up_rate_limit"`
}
type QuiTransferSummary ¶ added in v0.3.0
type QuiTransferSummary struct {
TotalInstances int `json:"totalInstances"`
ActiveInstances int `json:"activeInstances"`
ConnectedInstances int `json:"connectedInstances"`
DownloadSpeed int64 `json:"downloadSpeed"`
UploadSpeed int64 `json:"uploadSpeed"`
Downloaded int64 `json:"downloaded"`
Uploaded int64 `json:"uploaded"`
DHTNodes int `json:"dhtNodes"`
}
type RadarrCustomFormat ¶
RadarrCustomFormat represents a custom format in Radarr
type RadarrMovie ¶
type RadarrMovie struct {
Title string `json:"title"`
OriginalTitle string `json:"originalTitle"`
Year int `json:"year"`
FolderPath string `json:"folderPath"`
CustomFormats []RadarrCustomFormat `json:"customFormats"`
}
RadarrMovie represents the movie information in a queue record
type RadarrMovieResponse ¶
type RadarrMovieResponse struct {
ID int `json:"id"`
Title string `json:"title"`
OriginalTitle string `json:"originalTitle"`
Year int `json:"year"`
Overview string `json:"overview"`
ImdbId string `json:"imdbId"`
TmdbId int `json:"tmdbId"`
Status string `json:"status"`
Added string `json:"added"`
HasFile bool `json:"hasFile"`
Path string `json:"path"`
SizeOnDisk int64 `json:"sizeOnDisk"`
Runtime int `json:"runtime"`
Ratings Ratings `json:"ratings"`
}
RadarrMovieResponse represents a movie from Radarr's movie endpoint
type RadarrQueueDeleteOptions ¶
type RadarrQueueDeleteOptions struct {
RemoveFromClient bool `json:"removeFromClient"`
Blocklist bool `json:"blocklist"`
SkipRedownload bool `json:"skipRedownload"`
ChangeCategory bool `json:"changeCategory"`
}
RadarrQueueDeleteOptions represents the options for deleting a queue item
type RadarrQueueRecord ¶
type RadarrQueueRecord struct {
ID int `json:"id"`
MovieID int `json:"movieId"`
Title string `json:"title"`
Status string `json:"status"`
TimeLeft string `json:"timeleft,omitempty"`
EstimatedCompletionTime string `json:"estimatedCompletionTime"`
Protocol string `json:"protocol"` // "usenet" or "torrent"
Indexer string `json:"indexer"`
DownloadClient string `json:"downloadClient"`
Size int64 `json:"size"`
SizeLeft int64 `json:"sizeleft"`
CustomFormatScore int `json:"customFormatScore"`
TrackedDownloadStatus string `json:"trackedDownloadStatus"`
TrackedDownloadState string `json:"trackedDownloadState"`
StatusMessages []RadarrStatusMessage `json:"statusMessages"`
ErrorMessage string `json:"errorMessage"`
DownloadId string `json:"downloadId"`
Movie RadarrMovie `json:"movie"`
}
RadarrQueueRecord represents a record in the Radarr queue
type RadarrQueueResponse ¶
type RadarrQueueResponse struct {
Page int `json:"page"`
PageSize int `json:"pageSize"`
SortKey string `json:"sortKey"`
SortDirection string `json:"sortDirection"`
TotalRecords int `json:"totalRecords"`
Records []RadarrQueueRecord `json:"records"`
}
RadarrQueueResponse represents the queue response from Radarr API
type RadarrQueueStats ¶ added in v0.3.0
type RadarrQueueStats struct {
TotalRecords int `json:"totalRecords"` // Total number of records in the queue
DownloadingCount int `json:"downloadingCount"` // Number of items currently downloading
TotalSize int64 `json:"totalSize"` // Total size of all items in the queue
}
RadarrQueueStats represents statistics about the Radarr queue
type RadarrStatusMessage ¶
RadarrStatusMessage represents detailed status information for a queue record
type Ratings ¶
type Ratings struct {
Tmdb Rating `json:"tmdb"`
Imdb Rating `json:"imdb"`
Value int `json:"value"`
Votes int `json:"votes"`
}
Ratings represents rating information for a movie
type ReadarrQueueDeleteOptions ¶ added in v0.3.0
type ReadarrQueueDeleteOptions struct {
RemoveFromClient bool `json:"removeFromClient"`
Blocklist bool `json:"blocklist"`
SkipRedownload bool `json:"skipRedownload"`
ChangeCategory bool `json:"changeCategory"`
}
ReadarrQueueDeleteOptions represents options for deleting a queue item.
type ReadarrQueueItem ¶ added in v0.3.0
type ReadarrQueueItem struct {
ID int `json:"id"`
Title string `json:"title"`
Status string `json:"status"`
TimeLeft string `json:"timeleft,omitempty"`
EstimatedCompletionAt string `json:"estimatedCompletionTime"`
Protocol string `json:"protocol"`
Indexer string `json:"indexer"`
DownloadClient string `json:"downloadClient"`
Size int64 `json:"size"`
SizeLeft int64 `json:"sizeleft"`
CustomFormatScore int `json:"customFormatScore"`
TrackedDownloadStatus string `json:"trackedDownloadStatus"`
TrackedDownloadState string `json:"trackedDownloadState"`
StatusMessages []ReadarrStatusMessage `json:"statusMessages"`
ErrorMessage string `json:"errorMessage"`
DownloadID string `json:"downloadId"`
}
ReadarrQueueItem represents a record in the Readarr queue.
type ReadarrQueueResponse ¶ added in v0.3.0
type ReadarrQueueResponse struct {
Page int `json:"page"`
PageSize int `json:"pageSize"`
SortKey string `json:"sortKey"`
SortDirection string `json:"sortDirection"`
TotalRecords int `json:"totalRecords"`
Records []ReadarrQueueItem `json:"records"`
}
ReadarrQueueResponse represents the queue response from Readarr API.
type ReadarrStatusMessage ¶ added in v0.3.0
type ReadarrStatusMessage struct {
Title string `json:"title"`
Messages []string `json:"messages"`
}
ReadarrStatusMessage represents detailed status information for a queue record.
type RegisterRequest ¶
type RegisterRequest struct {
Username string `json:"username" binding:"required,min=3,max=32"`
Email string `json:"email" binding:"required,email"`
Password string `json:"password" binding:"required,min=8"`
}
RegisterRequest represents the registration data
type Release ¶ added in v0.3.0
type Release struct {
ID int `json:"id"`
FilterStatus string `json:"filter_status"`
Rejections []string `json:"rejections"`
Indexer Indexer `json:"indexer"`
Filter string `json:"filter"`
Protocol string `json:"protocol"`
Implementation string `json:"implementation"`
Timestamp time.Time `json:"timestamp"`
Type ReleaseType `json:"type"`
InfoURL string `json:"info_url"`
DownloadURL string `json:"download_url"`
GroupID string `json:"group_id"`
TorrentID string `json:"torrent_id"`
Name string `json:"name"`
NormalizedHash string `json:"normalized_hash"`
Size int64 `json:"size"`
Title string `json:"title"`
SubTitle string `json:"sub_title"`
Category string `json:"category"`
Season int `json:"season"`
Episode int `json:"episode"`
Year int `json:"year"`
Month int `json:"month"`
Day int `json:"day"`
Resolution string `json:"resolution"`
Source string `json:"source"`
Codec []string `json:"codec"`
Container string `json:"container"`
HDR []string `json:"hdr"`
Group string `json:"group"`
Proper bool `json:"proper"`
Repack bool `json:"repack"`
Website string `json:"website"`
Hybrid bool `json:"hybrid"`
Edition []string `json:"edition"`
Cut []string `json:"cut"`
MediaProcessing string `json:"media_processing"`
Origin string `json:"origin"`
Uploader string `json:"uploader"`
PreTime string `json:"pre_time"`
ActionStatus []ActionStatus `json:"action_status"`
}
type ReleaseType ¶ added in v0.3.0
type ReleaseType string
ReleaseType is a custom type that can handle both string and number types
func (*ReleaseType) UnmarshalJSON ¶ added in v0.3.0
func (rt *ReleaseType) UnmarshalJSON(data []byte) error
type ReleasesResponse ¶ added in v0.3.0
type RequestsResponse ¶
type RequestsResponse struct {
PageInfo struct {
Pages int `json:"pages"`
PageSize int `json:"pageSize"`
Results int `json:"results"`
Page int `json:"page"`
} `json:"pageInfo"`
Results []MediaRequest `json:"results"`
}
type RequestsStats ¶
type RequestsStats struct {
PendingCount int `json:"pendingCount"`
Requests []MediaRequest `json:"requests"`
}
type SabnzbdHistory ¶ added in v0.3.0
type SabnzbdHistory struct {
NoOfSlots int `json:"noofslots"`
Slots []SabnzbdHistorySlot `json:"slots"`
}
type SabnzbdHistoryEnvelope ¶ added in v0.3.0
type SabnzbdHistoryEnvelope struct {
History SabnzbdHistory `json:"history"`
}
type SabnzbdHistorySlot ¶ added in v0.3.0
type SabnzbdQueue ¶ added in v0.3.0
type SabnzbdQueue struct {
Version string `json:"version"`
Status string `json:"status"`
Paused bool `json:"paused"`
Speed string `json:"speed"`
KBPerSec string `json:"kbpersec"`
TimeLeft string `json:"timeleft"`
SizeLeft string `json:"sizeleft"`
Size string `json:"size"`
MBLeft string `json:"mbleft"`
MB string `json:"mb"`
NoOfSlots string `json:"noofslots"`
NoOfSlotsTotal string `json:"noofslots_total"`
Diskspace1 string `json:"diskspace1"`
Diskspace2 string `json:"diskspace2"`
DiskspaceTotal1 string `json:"diskspacetotal1"`
DiskspaceTotal2 string `json:"diskspacetotal2"`
Diskspace1Norm string `json:"diskspace1_norm"`
Diskspace2Norm string `json:"diskspace2_norm"`
HaveWarnings string `json:"have_warnings"`
SpeedLimitAbs string `json:"speedlimit_abs"`
Slots []SabnzbdQueueSlot `json:"slots"`
}
type SabnzbdQueueEnvelope ¶ added in v0.3.0
type SabnzbdQueueEnvelope struct {
Queue SabnzbdQueue `json:"queue"`
}
type SabnzbdQueueSlot ¶ added in v0.3.0
type SabnzbdQueueSlot struct {
NzoID string `json:"nzo_id"`
Filename string `json:"filename"`
Status string `json:"status"`
Size string `json:"size"`
SizeLeft string `json:"sizeleft"`
Percentage string `json:"percentage"`
TimeLeft string `json:"timeleft"`
Category string `json:"cat"`
Priority string `json:"priority"`
}
type SabnzbdSummaryResponse ¶ added in v0.3.0
type SabnzbdSummaryResponse struct {
Queue SabnzbdQueue `json:"queue"`
FailedCount int `json:"failedCount"`
RecentFailures []SabnzbdHistorySlot `json:"recentFailures"`
}
type SabnzbdVersionEnvelope ¶ added in v0.3.0
type SabnzbdVersionEnvelope struct {
Version string `json:"version"`
}
type Series ¶ added in v0.3.0
type Series struct {
ID int `json:"id"`
Title string `json:"title"`
Path string `json:"path"`
Year int `json:"year"`
Status string `json:"status"`
Overview string `json:"overview"`
Network string `json:"network"`
AirTime string `json:"airTime"`
Monitored bool `json:"monitored"`
QualityProfileID int `json:"qualityProfileId"`
SeasonFolder bool `json:"seasonFolder"`
Runtime int `json:"runtime"`
TvdbID int `json:"tvdbId"`
TvRageID int `json:"tvRageId"`
TvMazeID int `json:"tvMazeId"`
FirstAired string `json:"firstAired"`
LastAired string `json:"lastAired"`
SeriesType string `json:"seriesType"`
CleanTitle string `json:"cleanTitle"`
ImdbID string `json:"imdbId"`
TitleSlug string `json:"titleSlug"`
}
Series represents a TV series in Sonarr
type ServiceConfigResponse ¶
type ServiceHealth ¶
type SessionData ¶
type SessionData struct {
ExpiresAt time.Time `json:"expires_at"`
UserID int64 `json:"user_id,omitempty"` // Added for built-in auth
AuthType string `json:"auth_type,omitempty"` // "oidc" or "builtin"
}
SessionData holds the session information
type SonarrQueueDeleteOptions ¶
type SonarrQueueDeleteOptions struct {
RemoveFromClient bool `json:"removeFromClient"`
Blocklist bool `json:"blocklist"`
SkipRedownload bool `json:"skipRedownload"`
ChangeCategory bool `json:"changeCategory"`
}
SonarrQueueDeleteOptions represents the options for deleting a queue item in Sonarr
type SonarrQueueResponse ¶
type SonarrQueueResponse struct {
Page int `json:"page"`
PageSize int `json:"pageSize"`
SortKey string `json:"sortKey"`
SortDirection string `json:"sortDirection"`
TotalRecords int `json:"totalRecords"`
Records []QueueRecord `json:"records"`
}
SonarrQueueResponse represents the queue response from Sonarr API
type SonarrStatsResponse ¶
type SonarrStatsResponse struct {
MovieCount int `json:"movieCount"`
EpisodeCount int `json:"episodeCount"`
EpisodeFileCount int `json:"episodeFileCount"`
FreeSpaceBytes int64 `json:"freeSpaceBytes"`
TotalSpaceBytes int64 `json:"totalSpaceBytes"`
Monitored int `json:"monitored"`
Unmonitored int `json:"unmonitored"`
QueuedCount int `json:"queuedCount"`
MissingCount int `json:"missingCount"`
}
SonarrStatsResponse represents the stats response from Sonarr API
type SonarrUpdateResponse ¶ added in v0.3.0
type SonarrUpdateResponse struct {
Version string `json:"version"`
Installed bool `json:"installed"`
Installable bool `json:"installable"`
}
SonarrUpdateResponse represents an update response from Sonarr
type StatusMessage ¶
StatusMessage represents a status message in the queue
type StatusResponse ¶
type TraefikCertificate ¶ added in v0.3.0
type TraefikCertificate struct {
CommonName string `json:"commonName,omitempty"`
Serial string `json:"serial,omitempty"`
SANs []string `json:"sans,omitempty"`
NotAfter string `json:"notAfter"`
NotAfterUnix int64 `json:"notAfterUnix"`
ExpiresInSeconds int64 `json:"expiresInSeconds"`
Status string `json:"status"`
}
type TraefikCertificateSummary ¶ added in v0.3.0
type TraefikCertificateSummary struct {
Total int `json:"total"`
Expired int `json:"expired"`
ExpiringSoon int `json:"expiringSoon"`
NextExpiry string `json:"nextExpiry,omitempty"`
NextExpiryUnix int64 `json:"nextExpiryUnix,omitempty"`
NextExpiryInSeconds int64 `json:"nextExpiryInSeconds,omitempty"`
MetricsURL string `json:"metricsUrl,omitempty"`
MetricName string `json:"metricName,omitempty"`
Certificates []TraefikCertificate `json:"certificates,omitempty"`
}
type TraefikFeatures ¶ added in v0.3.0
type TraefikOverviewResponse ¶ added in v0.3.0
type TraefikOverviewResponse struct {
HTTP TraefikSchemeOverview `json:"http"`
TCP TraefikSchemeOverview `json:"tcp"`
UDP TraefikSchemeOverview `json:"udp"`
Features TraefikFeatures `json:"features"`
Providers []string `json:"providers,omitempty"`
}
type TraefikRouter ¶ added in v0.3.0
type TraefikRouter struct {
Name string `json:"name"`
Provider string `json:"provider"`
Status string `json:"status"`
Rule string `json:"rule"`
Service string `json:"service"`
EntryPoints []string `json:"entryPoints,omitempty"`
Middlewares []string `json:"middlewares,omitempty"`
Using []string `json:"using,omitempty"`
}
type TraefikSchemeOverview ¶ added in v0.3.0
type TraefikSchemeOverview struct {
Routers *TraefikSection `json:"routers,omitempty"`
Services *TraefikSection `json:"services,omitempty"`
Middlewares *TraefikSection `json:"middlewares,omitempty"`
}
type TraefikSection ¶ added in v0.3.0
type TraefikSummaryResponse ¶ added in v0.3.0
type TraefikSummaryResponse struct {
Overview TraefikOverviewResponse `json:"overview"`
IssueRouters []TraefikRouter `json:"issueRouters"`
Certificates *TraefikCertificateSummary `json:"certificates,omitempty"`
}
type TraefikVersionResponse ¶ added in v0.3.0
type TraefikVersionResponse struct {
Version string `json:"version"`
}
type UpdateResponse ¶
type UpdateResponse struct {
Version string `json:"version"`
Branch string `json:"branch"`
ReleaseDate time.Time `json:"releaseDate"`
FileName string `json:"fileName"`
URL string `json:"url"`
Installed bool `json:"installed"`
InstalledOn time.Time `json:"installedOn"`
Installable bool `json:"installable"`
Latest bool `json:"latest"`
Changes Changes `json:"changes"`
Hash string `json:"hash"`
}
type UptimeKumaMonitor ¶ added in v0.3.0
type UptimeKumaSummaryResponse ¶ added in v0.3.0
type UptimeKumaSummaryResponse struct {
Monitors []UptimeKumaMonitor `json:"monitors"`
}
type User ¶
type User struct {
ID int64 `json:"id"`
Username string `json:"username"`
Email string `json:"email"`
PasswordHash string `json:"-"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
User represents a user in the system
type VersionResponse ¶ added in v0.3.0
type VersionResponse struct {
Version string `json:"version"`
}