sonarr

package
v0.0.0-...-f1df713 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2022 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FilterUnknown starr.Filtering = iota
	FilterGrabbed
	FilterSeriesFolderImported
	FilterDownloadFolderImported
	FilterDownloadFailed
	FilterDeleted
	FilterRenamed
	FilterImportFailed
)

Filter values are integers. Given names for ease of discovery. https://github.com/Sonarr/Sonarr/blob/0cb8d93069d6310abd39ee2fe73219e17aa83fe6/src/NzbDrone.Core/History/EpisodeHistory.cs#L34-L41

View Source
const APIver = "v3"

APIver is the Sonarr API version supported by this library.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddSeriesInput

type AddSeriesInput struct {
	Monitored         bool           `json:"monitored"`
	SeasonFolder      bool           `json:"seasonFolder,omitempty"`
	UseSceneNumbering bool           `json:"useSceneNumbering,omitempty"`
	ID                int64          `json:"id,omitempty"`
	LanguageProfileID int64          `json:"languageProfileId,omitempty"`
	QualityProfileID  int64          `json:"qualityProfileId,omitempty"`
	TvdbID            int64          `json:"tvdbId,omitempty"`
	ImdbID            string         `json:"imdbId,omitempty"`
	TvMazeID          int64          `json:"tvMazeId,omitempty"`
	TvRageID          int64          `json:"tvRageId,omitempty"`
	Path              string         `json:"path,omitempty"`
	SeriesType        string         `json:"seriesType,omitempty"`
	Title             string         `json:"title,omitempty"`
	TitleSlug         string         `json:"titleSlug,omitempty"`
	RootFolderPath    string         `json:"rootFolderPath,omitempty"`
	Tags              []int          `json:"tags,omitempty"`
	Seasons           []*Season      `json:"seasons,omitempty"`
	Images            []*starr.Image `json:"images,omitempty"`
	// to be used only on POST, not for PUT
	AddOptions *AddSeriesOptions `json:"addOptions,omitempty"`
}

AddSeriesInput is the input for /api/v3/series endpoint.

type AddSeriesOptions

type AddSeriesOptions struct {
	SearchForMissingEpisodes     bool `json:"searchForMissingEpisodes"`
	SearchForCutoffUnmetEpisodes bool `json:"searchForCutoffUnmetEpisodes,omitempty"`
	IgnoreEpisodesWithFiles      bool `json:"ignoreEpisodesWithFiles,omitempty"`
	IgnoreEpisodesWithoutFiles   bool `json:"ignoreEpisodesWithoutFiles,omitempty"`
}

AddSeriesOptions is part of AddSeriesInput.

type AlternateTitle

type AlternateTitle struct {
	SeasonNumber int    `json:"seasonNumber"`
	Title        string `json:"title"`
}

AlternateTitle is part of a AddSeriesInput.

type Calendar

type Calendar struct {
	Start                time.Time
	End                  time.Time
	Unmonitored          bool
	IncludeSeries        bool
	IncludeEpisodeFile   bool
	IncludeEpisodeImages bool
}

Calendar defines the filters for fetching calendar items.

type CommandRequest

type CommandRequest struct {
	Name       string  `json:"name"`
	Files      []int64 `json:"files,omitempty"` // RenameFiles only
	SeriesIDs  []int64 `json:"seriesIds,omitempty"`
	SeriesID   int64   `json:"seriesId,omitempty"`
	EpisodeIDs []int64 `json:"episodeIds,omitempty"`
	EpisodeID  int64   `json:"episodeId,omitempty"`
}

CommandRequest goes into the /api/v3/command endpoint. This was created from the search command and may not support other commands yet.

type CommandResponse

type CommandResponse struct {
	ID                  int64                  `json:"id"`
	Name                string                 `json:"name"`
	CommandName         string                 `json:"commandName"`
	Message             string                 `json:"message,omitempty"`
	Priority            string                 `json:"priority"`
	Status              string                 `json:"status"`
	Queued              time.Time              `json:"queued"`
	Started             time.Time              `json:"started,omitempty"`
	Ended               time.Time              `json:"ended,omitempty"`
	StateChangeTime     time.Time              `json:"stateChangeTime,omitempty"`
	LastExecutionTime   time.Time              `json:"lastExecutionTime,omitempty"`
	Duration            string                 `json:"duration,omitempty"`
	Trigger             string                 `json:"trigger"`
	SendUpdatesToClient bool                   `json:"sendUpdatesToClient"`
	UpdateScheduledTask bool                   `json:"updateScheduledTask"`
	Body                map[string]interface{} `json:"body"`
}

CommandResponse comes from the /api/v3/command endpoint.

type CustomFormat

type CustomFormat struct {
	ID                    int                 `json:"id"`
	Name                  string              `json:"name"`
	IncludeCFWhenRenaming bool                `json:"includeCustomFormatWhenRenaming"`
	Specifications        []*CustomFormatSpec `json:"specifications"`
}

CustomFormat is the api/customformat endpoint payload. This data and these endpoints do not exist in Sonarr v3; this is v4 only.

type CustomFormatField

type CustomFormatField struct {
	Order    int         `json:"order"`
	Name     string      `json:"name"`
	Label    string      `json:"label"`
	Value    interface{} `json:"value"` // should be a string, but sometimes it's a number.
	Type     string      `json:"type"`
	Advanced bool        `json:"advanced"`
}

CustomFormatField is part of a CustomFormat Specification.

type CustomFormatSpec

type CustomFormatSpec struct {
	Name               string               `json:"name"`
	Implementation     string               `json:"implementation"`
	Implementationname string               `json:"implementationName"`
	Infolink           string               `json:"infoLink"`
	Negate             bool                 `json:"negate"`
	Required           bool                 `json:"required"`
	Fields             []*CustomFormatField `json:"fields"`
}

CustomFormatSpec is part of a CustomFormat.

type DelayProfile

type DelayProfile struct {
	EnableUsenet           bool   `json:"enableUsenet"`
	EnableTorrent          bool   `json:"enableTorrent"`
	BypassIfHighestQuality bool   `json:"bypassIfHighestQuality"`
	UsenetDelay            int64  `json:"usenetDelay"`
	TorrentDelay           int64  `json:"torrentDelay"`
	ID                     int64  `json:"id,omitempty"`
	Order                  int64  `json:"order"`
	Tags                   []int  `json:"tags"`
	PreferredProtocol      string `json:"preferredProtocol"`
}

DelayProfile is the /api/v3/delayprofile endpoint.

type DownloadClientConfig

type DownloadClientConfig struct {
	EnableCompletedDownloadHandling bool   `json:"enableCompletedDownloadHandling"`
	AutoRedownloadFailed            bool   `json:"autoRedownloadFailed"`
	ID                              int64  `json:"id"`
	DownloadClientWorkingFolders    string `json:"downloadClientWorkingFolders"`
}

DownloadClientConfig is the /api/v3/config/downloadClientConfig endpoint.

type DownloadClientInput

type DownloadClientInput struct {
	Enable                   bool                `json:"enable"`
	RemoveCompletedDownloads bool                `json:"removeCompletedDownloads"`
	RemoveFailedDownloads    bool                `json:"removeFailedDownloads"`
	Priority                 int                 `json:"priority"`
	ID                       int64               `json:"id,omitempty"`
	ConfigContract           string              `json:"configContract"`
	Implementation           string              `json:"implementation"`
	Name                     string              `json:"name"`
	Protocol                 string              `json:"protocol"`
	Tags                     []int               `json:"tags"`
	Fields                   []*starr.FieldInput `json:"fields"`
}

DownloadClientInput is the input for a new or updated download client.

type DownloadClientOutput

type DownloadClientOutput struct {
	Enable                   bool                 `json:"enable"`
	RemoveCompletedDownloads bool                 `json:"removeCompletedDownloads"`
	RemoveFailedDownloads    bool                 `json:"removeFailedDownloads"`
	Priority                 int                  `json:"priority"`
	ID                       int64                `json:"id,omitempty"`
	ConfigContract           string               `json:"configContract"`
	Implementation           string               `json:"implementation"`
	ImplementationName       string               `json:"implementationName"`
	InfoLink                 string               `json:"infoLink"`
	Name                     string               `json:"name"`
	Protocol                 string               `json:"protocol"`
	Tags                     []int                `json:"tags"`
	Fields                   []*starr.FieldOutput `json:"fields"`
}

DownloadClientOutput is the output from the download client methods.

type Episode

type Episode struct {
	ID                       int64          `json:"id"`
	SeriesID                 int64          `json:"seriesId"`
	TvdbID                   int64          `json:"tvdbId"`
	AbsoluteEpisodeNumber    int64          `json:"absoluteEpisodeNumber"`
	EpisodeFileID            int64          `json:"episodeFileId"`
	SeasonNumber             int64          `json:"seasonNumber"`
	EpisodeNumber            int64          `json:"episodeNumber"`
	AirDateUtc               time.Time      `json:"airDateUtc"`
	AirDate                  string         `json:"airDate"`
	Title                    string         `json:"title"`
	Overview                 string         `json:"overview"`
	UnverifiedSceneNumbering bool           `json:"unverifiedSceneNumbering"`
	HasFile                  bool           `json:"hasFile"`
	Monitored                bool           `json:"monitored"`
	Images                   []*starr.Image `json:"images"`
	Series                   *Series        `json:"series"`
}

Episode is the /api/v3/episode endpoint.

type EpisodeFile

type EpisodeFile struct {
	ID                   int64           `json:"id"`
	SeriesID             int64           `json:"seriesId"`
	SeasonNumber         int             `json:"seasonNumber"`
	RelativePath         string          `json:"relativePath"`
	Path                 string          `json:"path"`
	Size                 int64           `json:"size"`
	DateAdded            time.Time       `json:"dateAdded"`
	SceneName            string          `json:"sceneName"`
	ReleaseGroup         string          `json:"releaseGroup"`
	Language             *starr.Value    `json:"language"`
	Quality              *starr.Quality  `json:"quality"`
	MediaInfo            *MediaInfo      `json:"mediaInfo"`
	QualityCutoffNotMet  bool            `json:"qualityCutoffNotMet"`
	LanguageCutoffNotMet bool            `json:"languageCutoffNotMet"`
	CustomFormats        []*CustomFormat `json:"customFormats"` // v4 only
}

EpisodeFile is the output from the /api/v3/episodeFile endpoint.

type History

type History struct {
	Page          int              `json:"page"`
	PageSize      int              `json:"pageSize"`
	SortKey       string           `json:"sortKey"`
	SortDirection string           `json:"sortDirection"`
	TotalRecords  int              `json:"totalRecords"`
	Records       []*HistoryRecord `json:"records"`
}

History is the data from the /api/v3/history endpoint.

type HistoryRecord

type HistoryRecord struct {
	ID                   int64          `json:"id"`
	EpisodeID            int64          `json:"episodeId"`
	SeriesID             int64          `json:"seriesId"`
	SourceTitle          string         `json:"sourceTitle"`
	Language             Language       `json:"language"`
	Quality              *starr.Quality `json:"quality"`
	QualityCutoffNotMet  bool           `json:"qualityCutoffNotMet"`
	LanguageCutoffNotMet bool           `json:"languageCutoffNotMet"`
	Date                 time.Time      `json:"date"`
	DownloadID           string         `json:"downloadId,omitempty"`
	EventType            string         `json:"eventType"`
	Data                 struct {
		Age                string    `json:"age"`
		AgeHours           string    `json:"ageHours"`
		AgeMinutes         string    `json:"ageMinutes"`
		DownloadClient     string    `json:"downloadClient"`
		DownloadClientName string    `json:"downloadClientName"`
		DownloadURL        string    `json:"downloadUrl"`
		DroppedPath        string    `json:"droppedPath"`
		FileID             string    `json:"fileId"`
		GUID               string    `json:"guid"`
		ImportedPath       string    `json:"importedPath"`
		Indexer            string    `json:"indexer"`
		Message            string    `json:"message"`
		NzbInfoURL         string    `json:"nzbInfoUrl"`
		PreferredWordScore string    `json:"preferredWordScore"`
		Protocol           string    `json:"protocol"`
		PublishedDate      time.Time `json:"publishedDate"`
		Reason             string    `json:"reason"`
		ReleaseGroup       string    `json:"releaseGroup"`
		Size               string    `json:"size"`
		TorrentInfoHash    string    `json:"torrentInfoHash"`
		TvRageID           string    `json:"tvRageId"`
		TvdbID             string    `json:"tvdbId"`
	} `json:"data"`
}

HistoryRecord is part of the History data. Not all items have all Data members. Check EventType for what you need.

type IndexerConfig

type IndexerConfig struct {
	ID              int64 `json:"id"`
	MaximumSize     int64 `json:"maximumSize"`
	MinimumAge      int64 `json:"minimumAge"`
	Retention       int64 `json:"retention"`
	RssSyncInterval int64 `json:"rssSyncInterval"`
}

IndexerConfig represents the /config/indexer endpoint.

type IndexerInput

type IndexerInput struct {
	EnableAutomaticSearch   bool                `json:"enableAutomaticSearch"`
	EnableInteractiveSearch bool                `json:"enableInteractiveSearch"`
	EnableRss               bool                `json:"enableRss"`
	DownloadClientID        int64               `json:"downloadClientId"`
	Priority                int64               `json:"priority"`
	ID                      int64               `json:"id,omitempty"`
	ConfigContract          string              `json:"configContract"`
	Implementation          string              `json:"implementation"`
	Name                    string              `json:"name"`
	Protocol                string              `json:"protocol"`
	Tags                    []int               `json:"tags"`
	Fields                  []*starr.FieldInput `json:"fields"`
}

IndexerInput is the input for a new or updated indexer.

type IndexerOutput

type IndexerOutput struct {
	EnableAutomaticSearch   bool                 `json:"enableAutomaticSearch"`
	EnableInteractiveSearch bool                 `json:"enableInteractiveSearch"`
	EnableRss               bool                 `json:"enableRss"`
	SupportsRss             bool                 `json:"supportsRss"`
	SupportsSearch          bool                 `json:"supportsSearch"`
	DownloadClientID        int64                `json:"DownloadClientID"`
	Priority                int64                `json:"priority"`
	ID                      int64                `json:"id,omitempty"`
	ConfigContract          string               `json:"configContract"`
	Implementation          string               `json:"implementation"`
	ImplementationName      string               `json:"implementationName"`
	InfoLink                string               `json:"infoLink"`
	Name                    string               `json:"name"`
	Protocol                string               `json:"protocol"`
	Tags                    []int                `json:"tags"`
	Fields                  []*starr.FieldOutput `json:"fields"`
}

IndexerOutput is the output from the indexer methods.

type Language

type Language struct {
	Allowed  bool         `json:"allowed"`
	Language *starr.Value `json:"language"`
}

Language is part of LanguageProfile.

type LanguageProfile

type LanguageProfile struct {
	UpgradeAllowed bool         `json:"upgradeAllowed"`
	ID             int64        `json:"id,omitempty"`
	Name           string       `json:"name"`
	Cutoff         *starr.Value `json:"cutoff"`
	Languages      []Language   `json:"languages"`
}

LanguageProfile is the /api/v3/languageprofile endpoint.

type MediaInfo

type MediaInfo struct {
	AudioBitrate     int            `json:"audioBitrate"`
	AudioChannels    float64        `json:"audioChannels"`
	AudioCodec       string         `json:"audioCodec"`
	AudioLanguages   string         `json:"audioLanguages"`
	AudioStreamCount int            `json:"audioStreamCount"`
	VideoBitDepth    int            `json:"videoBitDepth"`
	VideoBitrate     int            `json:"videoBitrate"`
	VideoCodec       string         `json:"videoCodec"`
	VideoFPS         float64        `json:"videoFps"`
	Resolution       string         `json:"resolution"`
	RunTime          starr.PlayTime `json:"runTime"`
	ScanType         string         `json:"scanType"`
	Subtitles        string         `json:"subtitles"`
}

MediaInfo is part of an EpisodeFile.

type MediaManagement

type MediaManagement struct {
	AutoUnmonitorPreviouslyDownloadedEpisodes bool   `json:"autoUnmonitorPreviouslyDownloadedEpisodes,omitempty"`
	CopyUsingHardlinks                        bool   `json:"copyUsingHardlinks,omitempty"`
	CreateEmptySeriesFolders                  bool   `json:"createEmptySeriesFolders,omitempty"`
	DeleteEmptyFolders                        bool   `json:"deleteEmptyFolders,omitempty"`
	EnableMediaInfo                           bool   `json:"enableMediaInfo,omitempty"`
	ImportExtraFiles                          bool   `json:"importExtraFiles,omitempty"`
	SetPermissionsLinux                       bool   `json:"setPermissionsLinux,omitempty"`
	SkipFreeSpaceCheckWhenImporting           bool   `json:"skipFreeSpaceCheckWhenImporting,omitempty"`
	ID                                        int64  `json:"id"`
	MinimumFreeSpaceWhenImporting             int64  `json:"minimumFreeSpaceWhenImporting"` // 0 or empty not allowed
	RecycleBinCleanupDays                     int64  `json:"recycleBinCleanupDays,omitempty"`
	ChmodFolder                               string `json:"chmodFolder,omitempty"`
	ChownGroup                                string `json:"chownGroup"` // empty string is valid
	DownloadPropersAndRepacks                 string `json:"downloadPropersAndRepacks,omitempty"`
	EpisodeTitleRequired                      string `json:"episodeTitleRequired,omitempty"`
	ExtraFileExtensions                       string `json:"extraFileExtensions,omitempty"`
	FileDate                                  string `json:"fileDate,omitempty"`
	RecycleBin                                string `json:"recycleBin"` // empty string is valid
	RescanAfterRefresh                        string `json:"rescanAfterRefresh,omitempty"`
}

MediaManagement represents the /config/mediamanagement endpoint.

type MonitoredSeries

type MonitoredSeries struct {
	ID        int  `json:"id"`
	Monitored bool `json:"monitored"`
}

MonitoredSeries is part of the SeasonPass payload.

type MonitoringOptions

type MonitoringOptions struct {
	// Valid values for Monitor are: all, future, missing, existing, firstSeason, latestSeason, and none.
	Monitor string `json:"monitor"`
}

MonitoringOptions is part of the SeasonPass payload.

type Naming

type Naming struct {
	RenameEpisodes           bool   `json:"renameEpisodes,omitempty"`
	ReplaceIllegalCharacters bool   `json:"replaceIllegalCharacters,omitempty"`
	IncludeQuality           bool   `json:"includeQuality,omitempty"`
	IncludeSeriesTitle       bool   `json:"includeSeriesTitle,omitempty"`
	IncludeEpisodeTitle      bool   `json:"includeEpisodeTitle,omitempty"`
	ReplaceSpaces            bool   `json:"replaceSpaces,omitempty"`
	ID                       int64  `json:"id,omitempty"`
	MultiEpisodeStyle        int64  `json:"multiEpisodeStyle,omitempty"`
	Separator                string `json:"separator,omitempty"`
	NumberStyle              string `json:"numberStyle,omitempty"`
	DailyEpisodeFormat       string `json:"dailyEpisodeFormat,omitempty"`
	AnimeEpisodeFormat       string `json:"animeEpisodeFormat,omitempty"`
	SeriesFolderFormat       string `json:"seriesFolderFormat,omitempty"`
	SeasonFolderFormat       string `json:"seasonFolderFormat,omitempty"`
	SpecialsFolderFormat     string `json:"specialsFolderFormat,omitempty"`
	StandardEpisodeFormat    string `json:"standardEpisodeFormat,omitempty"`
}

Naming represents the config/naming endpoint in Sonarr.

type NotificationInput

type NotificationInput struct {
	OnGrab                        bool                `json:"onGrab,omitempty"`
	OnDownload                    bool                `json:"onDownload,omitempty"`
	OnUpgrade                     bool                `json:"onUpgrade,omitempty"`
	OnRename                      bool                `json:"onRename,omitempty"`
	OnSeriesDelete                bool                `json:"onSeriesDelete,omitempty"`
	OnEpisodeFileDelete           bool                `json:"onEpisodeFileDelete,omitempty"`
	OnEpisodeFileDeleteForUpgrade bool                `json:"onEpisodeFileDeleteForUpgrade,omitempty"`
	OnHealthIssue                 bool                `json:"onHealthIssue,omitempty"`
	OnApplicationUpdate           bool                `json:"onApplicationUpdate,omitempty"`
	IncludeHealthWarnings         bool                `json:"includeHealthWarnings,omitempty"`
	ID                            int64               `json:"id,omitempty"`
	Name                          string              `json:"name"`
	Implementation                string              `json:"implementation"`
	ConfigContract                string              `json:"configContract"`
	Tags                          []int               `json:"tags,omitempty"`
	Fields                        []*starr.FieldInput `json:"fields"`
}

NotificationInput is the input for a new or updated notification.

type NotificationOutput

type NotificationOutput struct {
	OnGrab                                bool                 `json:"onGrab"`
	OnDownload                            bool                 `json:"onDownload"`
	OnUpgrade                             bool                 `json:"onUpgrade"`
	OnRename                              bool                 `json:"onRename"`
	OnSeriesDelete                        bool                 `json:"onSeriesDelete"`
	OnEpisodeFileDelete                   bool                 `json:"onEpisodeFileDelete"`
	OnEpisodeFileDeleteForUpgrade         bool                 `json:"onEpisodeFileDeleteForUpgrade"`
	OnHealthIssue                         bool                 `json:"onHealthIssue"`
	OnApplicationUpdate                   bool                 `json:"onApplicationUpdate"`
	SupportsOnGrab                        bool                 `json:"supportsOnGrab"`
	SupportsOnDownload                    bool                 `json:"supportsOnDownload"`
	SupportsOnUpgrade                     bool                 `json:"supportsOnUpgrade"`
	SupportsOnRename                      bool                 `json:"supportsOnRename"`
	SupportsOnSeriesDelete                bool                 `json:"supportsOnSeriesDelete"`
	SupportsOnEpisodeFileDelete           bool                 `json:"supportsOnEpisodeFileDelete"`
	SupportsOnEpisodeFileDeleteForUpgrade bool                 `json:"supportsOnEpisodeFileDeleteForUpgrade"`
	SupportsOnHealthIssue                 bool                 `json:"supportsOnHealthIssue"`
	SupportsOnApplicationUpdate           bool                 `json:"supportsOnApplicationUpdate"`
	IncludeHealthWarnings                 bool                 `json:"includeHealthWarnings"`
	ID                                    int64                `json:"id"`
	Name                                  string               `json:"name"`
	ImplementationName                    string               `json:"implementationName"`
	Implementation                        string               `json:"implementation"`
	ConfigContract                        string               `json:"configContract"`
	InfoLink                              string               `json:"infoLink"`
	Tags                                  []int                `json:"tags"`
	Fields                                []*starr.FieldOutput `json:"fields"`
}

NotificationOutput is the output from the notification methods.

type QualityDefinition

type QualityDefinition struct {
	ID       int64              `json:"id,omitempty"`
	Weight   int64              `json:"weight"` // This should not be changed.
	MinSize  float64            `json:"minSize"`
	MaxSize  float64            `json:"maxSize"`
	PrefSize float64            `json:"preferredSize"` // v4 only.
	Title    string             `json:"title"`
	Quality  *starr.BaseQuality `json:"quality"`
}

QualityDefinition is the /api/v3/qualitydefinition endpoint.

type QualityProfile

type QualityProfile struct {
	UpgradeAllowed    bool                `json:"upgradeAllowed"`
	ID                int64               `json:"id"`
	Cutoff            int64               `json:"cutoff"`
	Name              string              `json:"name"`
	Qualities         []*starr.Quality    `json:"items"`
	MinFormatScore    int64               `json:"minFormatScore"`        // v4 only.
	CutoffFormatScore int64               `json:"cutoffFormatScore"`     // v4 only.
	FormatItems       []*starr.FormatItem `json:"formatItems,omitempty"` // v4 only.
	Language          *starr.Value        `json:"language,omitempty"`    // v4 only.
}

QualityProfile is the /api/v3/qualityprofile endpoint.

type Queue

type Queue 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"`
}

Queue is the /api/v3/queue endpoint.

type QueueRecord

type QueueRecord struct {
	ID                      int64                  `json:"id"`
	SeriesID                int64                  `json:"seriesId"`
	EpisodeID               int64                  `json:"episodeId"`
	Language                *starr.Value           `json:"language"`
	Quality                 *starr.Quality         `json:"quality"`
	Size                    float64                `json:"size"`
	Title                   string                 `json:"title"`
	Sizeleft                float64                `json:"sizeleft"`
	Timeleft                string                 `json:"timeleft"`
	EstimatedCompletionTime time.Time              `json:"estimatedCompletionTime"`
	Status                  string                 `json:"status"`
	TrackedDownloadStatus   string                 `json:"trackedDownloadStatus"`
	TrackedDownloadState    string                 `json:"trackedDownloadState"`
	StatusMessages          []*starr.StatusMessage `json:"statusMessages"`
	DownloadID              string                 `json:"downloadId"`
	Protocol                string                 `json:"protocol"`
	DownloadClient          string                 `json:"downloadClient"`
	Indexer                 string                 `json:"indexer"`
	OutputPath              string                 `json:"outputPath"`
	ErrorMessage            string                 `json:"errorMessage"`
}

QueueRecord is part of Queue.

type ReleaseProfile

type ReleaseProfile struct {
	Name            string            `json:"name"`
	Enabled         bool              `json:"enabled"`
	Required        []string          `json:"required"`
	Ignored         []string          `json:"ignored"`
	IndexerID       int64             `json:"indexerId"`
	Tags            []int             `json:"tags"`
	ID              int64             `json:"id,omitempty"`
	IncPrefOnRename *bool             `json:"includePreferredWhenRenaming,omitempty"` // V3 only, removed from v4.
	Preferred       []*starr.KeyValue `json:"preferred,omitempty"`                    // V3 only, removed from v4.
}

ReleaseProfile defines a release profile's data from Sonarr.

type RemotePathMapping

type RemotePathMapping struct {
	ID         int64  `json:"id,omitempty"`
	Host       string `json:"host"`
	RemotePath string `json:"remotePath"`
	LocalPath  string `json:"localPath"`
}

RemotePathMapping is the /api/v3/remotePathMapping endpoint.

type RootFolder

type RootFolder struct {
	Accessible      bool          `json:"accessible,omitempty"`
	ID              int64         `json:"id,omitempty"`
	FreeSpace       int64         `json:"freeSpace,omitempty"`
	Path            string        `json:"path"`
	UnmappedFolders []*starr.Path `json:"unmappedFolders,omitempty"`
}

RootFolder is the /api/v3/rootfolder endpoint.

type Season

type Season struct {
	Monitored    bool        `json:"monitored"`
	SeasonNumber int         `json:"seasonNumber"`
	Statistics   *Statistics `json:"statistics,omitempty"`
}

Season is part of AddSeriesInput and Queue and used in a few places.

type SeasonPass

type SeasonPass struct {
	Series            []*MonitoredSeries `json:"series"`
	MonitoringOptions *MonitoringOptions `json:"monitoringOptions"`
}

SeasonPass is the input payload for a seasonPass update.

type Series

type Series struct {
	Ended             bool              `json:"ended,omitempty"`
	Monitored         bool              `json:"monitored"`
	SeasonFolder      bool              `json:"seasonFolder,omitempty"`
	UseSceneNumbering bool              `json:"useSceneNumbering,omitempty"`
	Runtime           int               `json:"runtime,omitempty"`
	Year              int               `json:"year,omitempty"`
	ID                int64             `json:"id,omitempty"`
	LanguageProfileID int64             `json:"languageProfileId,omitempty"`
	QualityProfileID  int64             `json:"qualityProfileId,omitempty"`
	TvdbID            int64             `json:"tvdbId,omitempty"`
	TvMazeID          int64             `json:"tvMazeId,omitempty"`
	TvRageID          int64             `json:"tvRageId,omitempty"`
	AirTime           string            `json:"airTime,omitempty"`
	Certification     string            `json:"certification,omitempty"`
	CleanTitle        string            `json:"cleanTitle,omitempty"`
	ImdbID            string            `json:"imdbId,omitempty"`
	Network           string            `json:"network,omitempty"`
	Overview          string            `json:"overview,omitempty"`
	Path              string            `json:"path,omitempty"`
	SeriesType        string            `json:"seriesType,omitempty"`
	SortTitle         string            `json:"sortTitle,omitempty"`
	Status            string            `json:"status,omitempty"`
	Title             string            `json:"title,omitempty"`
	TitleSlug         string            `json:"titleSlug,omitempty"`
	RootFolderPath    string            `json:"rootFolderPath,omitempty"`
	Added             time.Time         `json:"added,omitempty"`
	FirstAired        time.Time         `json:"firstAired,omitempty"`
	NextAiring        time.Time         `json:"nextAiring,omitempty"`
	PreviousAiring    time.Time         `json:"previousAiring,omitempty"`
	Ratings           *starr.Ratings    `json:"ratings,omitempty"`
	Statistics        *Statistics       `json:"statistics,omitempty"`
	Tags              []int             `json:"tags,omitempty"`
	Genres            []string          `json:"genres,omitempty"`
	AlternateTitles   []*AlternateTitle `json:"alternateTitles,omitempty"`
	Seasons           []*Season         `json:"seasons,omitempty"`
	Images            []*starr.Image    `json:"images,omitempty"`
}

Series is the output of /api/v3/series endpoint.

type Sonarr

type Sonarr struct {
	starr.APIer
}

Sonarr contains all the methods to interact with a Sonarr server.

func New

func New(config *starr.Config) *Sonarr

New returns a Sonarr object used to interact with the Sonarr API.

func (*Sonarr) AddCustomFormat

func (s *Sonarr) AddCustomFormat(format *CustomFormat) (*CustomFormat, error)

AddCustomFormat creates a new custom format and returns the response (with ID). This data and these endpoints do not exist in Sonarr v3; this is v4 only.

func (*Sonarr) AddCustomFormatContext

func (s *Sonarr) AddCustomFormatContext(ctx context.Context, format *CustomFormat) (*CustomFormat, error)

AddCustomFormatContext creates a new custom format and returns the response (with ID). This data and these endpoints do not exist in Sonarr v3; this is v4 only.

func (*Sonarr) AddDelayProfile

func (s *Sonarr) AddDelayProfile(profile *DelayProfile) (*DelayProfile, error)

AddDelayProfile creates a delay profile.

func (*Sonarr) AddDelayProfileContext

func (s *Sonarr) AddDelayProfileContext(ctx context.Context, profile *DelayProfile) (*DelayProfile, error)

AddDelayProfileContext creates a delay profile.

func (*Sonarr) AddDownloadClient

func (s *Sonarr) AddDownloadClient(downloadclient *DownloadClientInput) (*DownloadClientOutput, error)

AddDownloadClient creates a download client.

func (*Sonarr) AddDownloadClientContext

func (s *Sonarr) AddDownloadClientContext(ctx context.Context,
	client *DownloadClientInput,
) (*DownloadClientOutput, error)

AddDownloadClientContext creates a download client.

func (*Sonarr) AddIndexer

func (s *Sonarr) AddIndexer(indexer *IndexerInput) (*IndexerOutput, error)

AddIndexer creates a indexer.

func (*Sonarr) AddIndexerContext

func (s *Sonarr) AddIndexerContext(ctx context.Context, indexer *IndexerInput) (*IndexerOutput, error)

AddIndexerContext creates a indexer.

func (*Sonarr) AddLanguageProfile

func (s *Sonarr) AddLanguageProfile(profile *LanguageProfile) (*LanguageProfile, error)

AddLanguageProfile creates a language profile.

func (*Sonarr) AddLanguageProfileContext

func (s *Sonarr) AddLanguageProfileContext(ctx context.Context, profile *LanguageProfile) (*LanguageProfile, error)

AddLanguageProfileContext creates a language profile.

func (*Sonarr) AddNotification

func (s *Sonarr) AddNotification(notification *NotificationInput) (*NotificationOutput, error)

AddNotification creates a notification.

func (*Sonarr) AddNotificationContext

func (s *Sonarr) AddNotificationContext(ctx context.Context, client *NotificationInput) (*NotificationOutput, error)

AddNotificationContext creates a notification.

func (*Sonarr) AddQualityProfile

func (s *Sonarr) AddQualityProfile(profile *QualityProfile) (*QualityProfile, error)

AddQualityProfile creates a quality profile.

func (*Sonarr) AddQualityProfileContext

func (s *Sonarr) AddQualityProfileContext(ctx context.Context, profile *QualityProfile) (*QualityProfile, error)

AddQualityProfileContext creates a quality profile.

func (*Sonarr) AddReleaseProfile

func (s *Sonarr) AddReleaseProfile(profile *ReleaseProfile) (*ReleaseProfile, error)

AddReleaseProfile creates a release profile.

func (*Sonarr) AddReleaseProfileContext

func (s *Sonarr) AddReleaseProfileContext(ctx context.Context, profile *ReleaseProfile) (*ReleaseProfile, error)

AddReleaseProfileContext creates a release profile.

func (*Sonarr) AddRemotePathMapping

func (s *Sonarr) AddRemotePathMapping(mapping *RemotePathMapping) (*RemotePathMapping, error)

AddRemotePathMapping creates a remote path mapping.

func (*Sonarr) AddRemotePathMappingContext

func (s *Sonarr) AddRemotePathMappingContext(ctx context.Context,
	mapping *RemotePathMapping,
) (*RemotePathMapping, error)

AddRemotePathMappingContext creates a remote path mapping.

func (*Sonarr) AddRootFolder

func (s *Sonarr) AddRootFolder(folder *RootFolder) (*RootFolder, error)

AddRootFolder creates a root folder.

func (*Sonarr) AddRootFolderContext

func (s *Sonarr) AddRootFolderContext(ctx context.Context, folder *RootFolder) (*RootFolder, error)

AddRootFolderContext creates a root folder.

func (*Sonarr) AddSeries

func (s *Sonarr) AddSeries(series *AddSeriesInput) (*Series, error)

AddSeries adds a new series to Sonarr.

func (*Sonarr) AddSeriesContext

func (s *Sonarr) AddSeriesContext(ctx context.Context, series *AddSeriesInput) (*Series, error)

AddSeriesContext adds a new series to Sonarr.

func (*Sonarr) AddTag

func (s *Sonarr) AddTag(tag *starr.Tag) (*starr.Tag, error)

AddTag creates a tag.

func (*Sonarr) AddTagContext

func (s *Sonarr) AddTagContext(ctx context.Context, tag *starr.Tag) (*starr.Tag, error)

AddTagContext creates a tag.

func (*Sonarr) DeleteCustomFormat

func (s *Sonarr) DeleteCustomFormat(cfID int) error

DeleteCustomFormat deletes a custom format. This data and these endpoints do not exist in Sonarr v3; this is v4 only.

func (*Sonarr) DeleteCustomFormatContext

func (s *Sonarr) DeleteCustomFormatContext(ctx context.Context, cfID int) error

DeleteCustomFormatContext deletes a custom format. This data and these endpoints do not exist in Sonarr v3; this is v4 only.

func (*Sonarr) DeleteDelayProfile

func (s *Sonarr) DeleteDelayProfile(profileID int64) error

DeleteDelayProfile removes a single delay profile.

func (*Sonarr) DeleteDelayProfileContext

func (s *Sonarr) DeleteDelayProfileContext(ctx context.Context, profileID int64) error

DeleteDelayProfileContext removes a single delay profile.

func (*Sonarr) DeleteDownloadClient

func (s *Sonarr) DeleteDownloadClient(downloadclientID int64) error

DeleteDownloadClient removes a single download client.

func (*Sonarr) DeleteDownloadClientContext

func (s *Sonarr) DeleteDownloadClientContext(ctx context.Context, downloadclientID int64) error

DeleteDownloadClientContext removes a single download client.

func (*Sonarr) DeleteEpisodeFile

func (s *Sonarr) DeleteEpisodeFile(episodeFileID int64) error

DeleteEpisodeFile deletes an episode file.

func (*Sonarr) DeleteEpisodeFileContext

func (s *Sonarr) DeleteEpisodeFileContext(ctx context.Context, episodeFileID int64) error

DeleteEpisodeFileContext deletes an episode file, and takes a context.

func (*Sonarr) DeleteIndexer

func (s *Sonarr) DeleteIndexer(indexerID int64) error

DeleteIndexer removes a single indexer.

func (*Sonarr) DeleteIndexerContext

func (s *Sonarr) DeleteIndexerContext(ctx context.Context, indexerID int64) error

DeleteIndexerContext removes a single indexer.

func (*Sonarr) DeleteLanguageProfile

func (s *Sonarr) DeleteLanguageProfile(profileID int64) error

DeleteLanguageProfile removes a single language profile.

func (*Sonarr) DeleteLanguageProfileContext

func (s *Sonarr) DeleteLanguageProfileContext(ctx context.Context, profileID int64) error

DeleteLanguageProfileContext removes a single language profile.

func (*Sonarr) DeleteNotification

func (s *Sonarr) DeleteNotification(notificationID int64) error

DeleteNotification removes a single notification.

func (*Sonarr) DeleteNotificationContext

func (s *Sonarr) DeleteNotificationContext(ctx context.Context, notificationID int64) error

func (*Sonarr) DeleteQualityProfile

func (s *Sonarr) DeleteQualityProfile(profileID int64) error

DeleteQualityProfile removes a single quality profile.

func (*Sonarr) DeleteQualityProfileContext

func (s *Sonarr) DeleteQualityProfileContext(ctx context.Context, profileID int64) error

DeleteQualityProfileContext removes a single quality profile.

func (*Sonarr) DeleteReleaseProfile

func (s *Sonarr) DeleteReleaseProfile(profileID int64) error

DeleteReleaseProfile removes a single release profile.

func (*Sonarr) DeleteReleaseProfileContext

func (s *Sonarr) DeleteReleaseProfileContext(ctx context.Context, profileID int64) error

DeleteReleaseProfileContext removes a single release profile.

func (*Sonarr) DeleteRemotePathMapping

func (s *Sonarr) DeleteRemotePathMapping(mappingID int64) error

DeleteRemotePathMapping removes a single remote path mapping.

func (*Sonarr) DeleteRemotePathMappingContext

func (s *Sonarr) DeleteRemotePathMappingContext(ctx context.Context, mappingID int64) error

DeleteRemotePathMappingContext removes a single remote path mapping.

func (*Sonarr) DeleteRootFolder

func (s *Sonarr) DeleteRootFolder(folderID int64) error

DeleteRootFolder removes a single root folder.

func (*Sonarr) DeleteRootFolderContext

func (s *Sonarr) DeleteRootFolderContext(ctx context.Context, folderID int64) error

DeleteRootFolderContext removes a single root folder.

func (*Sonarr) DeleteSeries

func (s *Sonarr) DeleteSeries(seriesID int, deleteFiles bool, importExclude bool) error

DeleteSeries removes a single Series. deleteFiles flag defines the deleteFiles query paramenter. importExclude defines the addImportListExclusion query paramenter.

func (*Sonarr) DeleteSeriesContext

func (s *Sonarr) DeleteSeriesContext(ctx context.Context, seriesID int, deleteFiles bool, importExclude bool) error

DeleteSeries removes a single Series. deleteFiles flag defines the deleteFiles query paramenter. importExclude defines the addImportListExclusion query paramenter.

func (*Sonarr) DeleteSeriesDefault

func (s *Sonarr) DeleteSeriesDefault(seriesID int) error

DeleteSeriesDefault defines the behaviour to set deleteFiles to true and addImportListExclusion to false.

func (*Sonarr) DeleteTag

func (s *Sonarr) DeleteTag(tagID int) error

DeleteTag removes a single tag.

func (*Sonarr) DeleteTagContext

func (s *Sonarr) DeleteTagContext(ctx context.Context, tagID int) error

DeleteTagContext removes a single tag.

func (*Sonarr) Fail

func (s *Sonarr) Fail(historyID int64) error

Fail marks the given history item as failed by id.

func (*Sonarr) FailContext

func (s *Sonarr) FailContext(ctx context.Context, historyID int64) error

FailContext marks the given history item as failed by id.

func (*Sonarr) GetAllSeries

func (s *Sonarr) GetAllSeries() ([]*Series, error)

GetAllSeries returns all configured series. This may not deal well with pagination atm, let us know?

func (*Sonarr) GetAllSeriesContext

func (s *Sonarr) GetAllSeriesContext(ctx context.Context) ([]*Series, error)

GetAllSeriesContext returns all configured series. This may not deal well with pagination atm, let us know?

func (*Sonarr) GetBackupFiles

func (s *Sonarr) GetBackupFiles() ([]*starr.BackupFile, error)

GetBackupFiles returns all available Sonarr backup files. Use Get to download a file using BackupFile.Path.

func (*Sonarr) GetBackupFilesContext

func (s *Sonarr) GetBackupFilesContext(ctx context.Context) ([]*starr.BackupFile, error)

GetBackupFilesContext returns all available Sonarr backup files. Use Get() to download a file using BackupFile.Path.

func (*Sonarr) GetCalendar

func (s *Sonarr) GetCalendar(filter Calendar) ([]*Episode, error)

GetCalendar returns calendars based on filters.

func (*Sonarr) GetCalendarContext

func (s *Sonarr) GetCalendarContext(ctx context.Context, filter Calendar) ([]*Episode, error)

GetCalendarContext returns calendars based on filters.

func (*Sonarr) GetCalendarID

func (s *Sonarr) GetCalendarID(calendarID int64) (*Episode, error)

GetCalendarID returns a single calendar by ID.

func (*Sonarr) GetCalendarIDContext

func (s *Sonarr) GetCalendarIDContext(ctx context.Context, calendarID int64) (*Episode, error)

GetCalendarIDContext returns a single calendar by ID.

func (*Sonarr) GetCommandStatus

func (s *Sonarr) GetCommandStatus(commandID int64) (*CommandResponse, error)

GetCommandStatus returns the status of an already started command.

func (*Sonarr) GetCommandStatusContext

func (s *Sonarr) GetCommandStatusContext(ctx context.Context, commandID int64) (*CommandResponse, error)

GetCommandStatusContext returns the status of an already started command.

func (*Sonarr) GetCommands

func (s *Sonarr) GetCommands() ([]*CommandResponse, error)

GetCommands returns all available Sonarr commands. These can be used with SendCommand.

func (*Sonarr) GetCommandsContext

func (s *Sonarr) GetCommandsContext(ctx context.Context) ([]*CommandResponse, error)

GetCommands returns all available Sonarr commands. These can be used with SendCommand.

func (*Sonarr) GetCustomFormats

func (s *Sonarr) GetCustomFormats() ([]*CustomFormat, error)

GetCustomFormats returns all configured Custom Formats. This data and these endpoints do not exist in Sonarr v3; this is v4 only.

func (*Sonarr) GetCustomFormatsContext

func (s *Sonarr) GetCustomFormatsContext(ctx context.Context) ([]*CustomFormat, error)

GetCustomFormatsContext returns all configured Custom Formats. This data and these endpoints do not exist in Sonarr v3; this is v4 only.

func (*Sonarr) GetDelayProfile

func (s *Sonarr) GetDelayProfile(profileID int64) (*DelayProfile, error)

GetDelayProfile returns a single delay profile.

func (*Sonarr) GetDelayProfileContext

func (s *Sonarr) GetDelayProfileContext(ctx context.Context, profileID int64) (*DelayProfile, error)

GetDelayProfileContext returns a single delay profile.

func (*Sonarr) GetDelayProfiles

func (s *Sonarr) GetDelayProfiles() ([]*DelayProfile, error)

GetDelayProfiles returns all configured delay profiles.

func (*Sonarr) GetDelayProfilesContext

func (s *Sonarr) GetDelayProfilesContext(ctx context.Context) ([]*DelayProfile, error)

GetDelayProfilesContext returns all configured delay profiles.

func (*Sonarr) GetDownloadClient

func (s *Sonarr) GetDownloadClient(downloadclientID int64) (*DownloadClientOutput, error)

GetDownloadClient returns a single download client.

func (*Sonarr) GetDownloadClientConfig

func (s *Sonarr) GetDownloadClientConfig() (*DownloadClientConfig, error)

GetDownloadClientConfig returns the download client config.

func (*Sonarr) GetDownloadClientConfigContext

func (s *Sonarr) GetDownloadClientConfigContext(ctx context.Context) (*DownloadClientConfig, error)

GetDownloadClientConfig returns the download client config.

func (*Sonarr) GetDownloadClientContext

func (s *Sonarr) GetDownloadClientContext(ctx context.Context, downloadclientID int64) (*DownloadClientOutput, error)

GetDownloadClientContext returns a single download client.

func (*Sonarr) GetDownloadClients

func (s *Sonarr) GetDownloadClients() ([]*DownloadClientOutput, error)

GetDownloadClients returns all configured download clients.

func (*Sonarr) GetDownloadClientsContext

func (s *Sonarr) GetDownloadClientsContext(ctx context.Context) ([]*DownloadClientOutput, error)

GetDownloadClientsContext returns all configured download clients.

func (*Sonarr) GetEpisodeFiles

func (s *Sonarr) GetEpisodeFiles(episodeFileIDs ...int64) ([]*EpisodeFile, error)

GetEpisodeFiles returns information about episode files by episode file IDs.

func (*Sonarr) GetEpisodeFilesContext

func (s *Sonarr) GetEpisodeFilesContext(ctx context.Context, episodeFileIDs ...int64) ([]*EpisodeFile, error)

GetEpisodeFilesContext returns information about episode files by episode file IDs.

func (*Sonarr) GetHistory

func (s *Sonarr) GetHistory(records, perPage int) (*History, error)

GetHistory returns the Sonarr History (grabs/failures/completed). WARNING: 12/30/2021 - this method changed. If you need control over the page, use sonarr.GetHistoryPage(). This function simply returns the number of history records desired, up to the number of records present in the application. It grabs records in (paginated) batches of perPage, and concatenates them into one list. Passing zero for records will return all of them.

func (*Sonarr) GetHistoryContext

func (s *Sonarr) GetHistoryContext(ctx context.Context, records, perPage int) (*History, error)

func (*Sonarr) GetHistoryPage

func (s *Sonarr) GetHistoryPage(params *starr.PageReq) (*History, error)

GetHistoryPage returns a single page from the Sonarr History (grabs/failures/completed). The page size and number is configurable with the input request parameters.

func (*Sonarr) GetHistoryPageContext

func (s *Sonarr) GetHistoryPageContext(ctx context.Context, params *starr.PageReq) (*History, error)

func (*Sonarr) GetIndexer

func (s *Sonarr) GetIndexer(indexerID int64) (*IndexerOutput, error)

GetIndexer returns a single indexer.

func (*Sonarr) GetIndexerConfig

func (s *Sonarr) GetIndexerConfig() (*IndexerConfig, error)

GetIndexerConfig returns an Indexer Config.

func (*Sonarr) GetIndexerConfigContext

func (s *Sonarr) GetIndexerConfigContext(ctx context.Context) (*IndexerConfig, error)

GetIndexerConfigContext returns the indexer Config.

func (*Sonarr) GetIndexerContext

func (s *Sonarr) GetIndexerContext(ctx context.Context, indexerID int64) (*IndexerOutput, error)

GetIndGetIndexerContextexer returns a single indexer.

func (*Sonarr) GetIndexers

func (s *Sonarr) GetIndexers() ([]*IndexerOutput, error)

GetIndexers returns all configured indexers.

func (*Sonarr) GetIndexersContext

func (s *Sonarr) GetIndexersContext(ctx context.Context) ([]*IndexerOutput, error)

GetIndexersContext returns all configured indexers.

func (*Sonarr) GetLanguageProfile

func (s *Sonarr) GetLanguageProfile(profileID int64) (*LanguageProfile, error)

GetLanguageProfile returns a single language profile.

func (*Sonarr) GetLanguageProfileContext

func (s *Sonarr) GetLanguageProfileContext(ctx context.Context, profileID int64) (*LanguageProfile, error)

GetLanguageProfileContext returns a single language profile.

func (*Sonarr) GetLanguageProfiles

func (s *Sonarr) GetLanguageProfiles() ([]*LanguageProfile, error)

GetLanguageProfiles returns all configured language profiles.

func (*Sonarr) GetLanguageProfilesContext

func (s *Sonarr) GetLanguageProfilesContext(ctx context.Context) ([]*LanguageProfile, error)

GetLanguageProfilesContext returns all configured language profiles.

func (*Sonarr) GetMediaManagement

func (s *Sonarr) GetMediaManagement() (*MediaManagement, error)

GetMediaManagement returns the mediaManagement.

func (*Sonarr) GetMediaManagementContext

func (s *Sonarr) GetMediaManagementContext(ctx context.Context) (*MediaManagement, error)

GetMediaManagement returns the Media Management.

func (*Sonarr) GetNaming

func (s *Sonarr) GetNaming() (*Naming, error)

GetNaming returns the naming.

func (*Sonarr) GetNamingContext

func (s *Sonarr) GetNamingContext(ctx context.Context) (*Naming, error)

GetNamingContext returns the naming.

func (*Sonarr) GetNotification

func (s *Sonarr) GetNotification(notificationID int) (*NotificationOutput, error)

GetNotification returns a single notification.

func (*Sonarr) GetNotificationContext

func (s *Sonarr) GetNotificationContext(ctx context.Context, notificationID int) (*NotificationOutput, error)

GetNotificationContext returns a single notification.

func (*Sonarr) GetNotifications

func (s *Sonarr) GetNotifications() ([]*NotificationOutput, error)

GetNotifications returns all configured notifications.

func (*Sonarr) GetNotificationsContext

func (s *Sonarr) GetNotificationsContext(ctx context.Context) ([]*NotificationOutput, error)

GetNotificationsContext returns all configured notifications.

func (*Sonarr) GetQualityDefinition

func (s *Sonarr) GetQualityDefinition(qualityDefinitionID int64) (*QualityDefinition, error)

GetQualityDefinition returns a single quality definition.

func (*Sonarr) GetQualityDefinitionContext

func (s *Sonarr) GetQualityDefinitionContext(ctx context.Context, qdID int64) (*QualityDefinition, error)

GetQualityDefinitionContext returns a single quality definition.

func (*Sonarr) GetQualityDefinitions

func (s *Sonarr) GetQualityDefinitions() ([]*QualityDefinition, error)

GetQualityDefinitions returns all configured quality definitions.

func (*Sonarr) GetQualityDefinitionsContext

func (s *Sonarr) GetQualityDefinitionsContext(ctx context.Context) ([]*QualityDefinition, error)

GetQualityDefinitionsContext returns all configured quality definitions.

func (*Sonarr) GetQualityProfile

func (s *Sonarr) GetQualityProfile(profileID int64) (*QualityProfile, error)

GetQualityProfile returns a single quality profile.

func (*Sonarr) GetQualityProfileContext

func (s *Sonarr) GetQualityProfileContext(ctx context.Context, profileID int64) (*QualityProfile, error)

GetQualityProfileContext returns a single quality profile.

func (*Sonarr) GetQualityProfiles

func (s *Sonarr) GetQualityProfiles() ([]*QualityProfile, error)

GetQualityProfiles returns all configured quality profiles.

func (*Sonarr) GetQualityProfilesContext

func (s *Sonarr) GetQualityProfilesContext(ctx context.Context) ([]*QualityProfile, error)

GetQualityProfilesContext returns all configured quality profiles.

func (*Sonarr) GetQueue

func (s *Sonarr) GetQueue(records, perPage int) (*Queue, error)

GetQueue returns a single page from the Sonarr Queue (processing, but not yet imported). WARNING: 12/30/2021 - this method changed. If you need control over the page, use sonarr.GetQueuePage(). This function simply returns the number of queue records desired, up to the number of records present in the application. It grabs records in (paginated) batches of perPage, and concatenates them into one list. Passing zero for records will return all of them.

func (*Sonarr) GetQueueContext

func (s *Sonarr) GetQueueContext(ctx context.Context, records, perPage int) (*Queue, error)

GetQueue returns a single page from the Sonarr Queue (processing, but not yet imported). If you need control over the page, use sonarr.GetQueuePageContext().

func (*Sonarr) GetQueuePage

func (s *Sonarr) GetQueuePage(params *starr.PageReq) (*Queue, error)

GetQueuePage returns a single page from the Sonarr Queue. The page size and number is configurable with the input request parameters.

func (*Sonarr) GetQueuePageContext

func (s *Sonarr) GetQueuePageContext(ctx context.Context, params *starr.PageReq) (*Queue, error)

GetQueuePageContext returns a single page from the Sonarr Queue. The page size and number is configurable with the input request parameters.

func (*Sonarr) GetReleaseProfile

func (s *Sonarr) GetReleaseProfile(profileID int64) (*ReleaseProfile, error)

GetReleaseProfile returns a single release profile.

func (*Sonarr) GetReleaseProfileContext

func (s *Sonarr) GetReleaseProfileContext(ctx context.Context, profileID int64) (*ReleaseProfile, error)

GetReleaseProfileContext returns a single release profile.

func (*Sonarr) GetReleaseProfiles

func (s *Sonarr) GetReleaseProfiles() ([]*ReleaseProfile, error)

GetReleaseProfiles returns all configured release profiles.

func (*Sonarr) GetReleaseProfilesContext

func (s *Sonarr) GetReleaseProfilesContext(ctx context.Context) ([]*ReleaseProfile, error)

GetReleaseProfilesContext returns all configured release profiles.

func (*Sonarr) GetRemotePathMapping

func (s *Sonarr) GetRemotePathMapping(mappingID int64) (*RemotePathMapping, error)

GetRemotePathMapping returns a single remote path mapping.

func (*Sonarr) GetRemotePathMappingContext

func (s *Sonarr) GetRemotePathMappingContext(ctx context.Context, mappingID int64) (*RemotePathMapping, error)

GetRemotePathMappingContext returns a single remote path mapping.

func (*Sonarr) GetRemotePathMappings

func (s *Sonarr) GetRemotePathMappings() ([]*RemotePathMapping, error)

GetRemotePathMappings returns all configured remote path mappings.

func (*Sonarr) GetRemotePathMappingsContext

func (s *Sonarr) GetRemotePathMappingsContext(ctx context.Context) ([]*RemotePathMapping, error)

GetRemotePathMappingsContext returns all configured remote path mappings.

func (*Sonarr) GetRootFolder

func (s *Sonarr) GetRootFolder(folderID int64) (*RootFolder, error)

GetRootFolder returns a single root folder.

func (*Sonarr) GetRootFolderContext

func (s *Sonarr) GetRootFolderContext(ctx context.Context, folderID int64) (*RootFolder, error)

GetRootFolderContext returns a single root folder.

func (*Sonarr) GetRootFolders

func (s *Sonarr) GetRootFolders() ([]*RootFolder, error)

GetRootFolders returns all configured root folders.

func (*Sonarr) GetRootFoldersContext

func (s *Sonarr) GetRootFoldersContext(ctx context.Context) ([]*RootFolder, error)

GetRootFoldersContext returns all configured root folders.

func (*Sonarr) GetSeries

func (s *Sonarr) GetSeries(tvdbID int64) ([]*Series, error)

GetSeries locates and returns a series by tvdbID. If tvdbID is 0, returns all series.

func (*Sonarr) GetSeriesByID

func (s *Sonarr) GetSeriesByID(seriesID int64) (*Series, error)

GetSeriesByID locates and returns a series by DB [series] ID.

func (*Sonarr) GetSeriesByIDContext

func (s *Sonarr) GetSeriesByIDContext(ctx context.Context, seriesID int64) (*Series, error)

GetSeriesByIDContext locates and returns a series by DB [series] ID.

func (*Sonarr) GetSeriesContext

func (s *Sonarr) GetSeriesContext(ctx context.Context, tvdbID int64) ([]*Series, error)

GetSeriesContext locates and returns a series by tvdbID. If tvdbID is 0, returns all series.

func (*Sonarr) GetSeriesEpisodeFiles

func (s *Sonarr) GetSeriesEpisodeFiles(seriesID int64) ([]*EpisodeFile, error)

GetSeriesEpisodeFile returns information about all episode files in a series.

func (*Sonarr) GetSeriesEpisodeFilesContext

func (s *Sonarr) GetSeriesEpisodeFilesContext(ctx context.Context, seriesID int64) ([]*EpisodeFile, error)

GetSeriesEpisodeFilesContext returns information about episode files by episode file ID.

func (*Sonarr) GetSeriesEpisodes

func (s *Sonarr) GetSeriesEpisodes(seriesID int64) ([]*Episode, error)

GetSeriesEpisodes returns all episodes for a series by series ID. You can get series IDs from GetAllSeries() and GetSeries().

func (*Sonarr) GetSeriesEpisodesContext

func (s *Sonarr) GetSeriesEpisodesContext(ctx context.Context, seriesID int64) ([]*Episode, error)

GetSeriesEpisodesContext returns all episodes for a series by series ID. You can get series IDs from GetAllSeries() and GetSeries().

func (*Sonarr) GetSeriesLookup

func (s *Sonarr) GetSeriesLookup(term string, tvdbID int64) ([]*Series, error)

GetSeriesLookup searches for a series [in Servarr] using a search term or a tvdbid. Provide a search term or a tvdbid. If you provide both, tvdbID is used.

func (*Sonarr) GetSeriesLookupContext

func (s *Sonarr) GetSeriesLookupContext(ctx context.Context, term string, tvdbID int64) ([]*Series, error)

GetSeriesLookupContext searches for a series [in Servarr] using a search term or a tvdbid. Provide a search term or a tvdbid. If you provide both, tvdbID is used.

func (*Sonarr) GetSystemStatus

func (s *Sonarr) GetSystemStatus() (*SystemStatus, error)

GetSystemStatus returns system status.

func (*Sonarr) GetSystemStatusContext

func (s *Sonarr) GetSystemStatusContext(ctx context.Context) (*SystemStatus, error)

GetSystemStatusContext returns system status.

func (*Sonarr) GetTag

func (s *Sonarr) GetTag(tagID int) (*starr.Tag, error)

GetTag returns a single tag.

func (*Sonarr) GetTagContext

func (s *Sonarr) GetTagContext(ctx context.Context, tagID int) (*starr.Tag, error)

GetTagContext returns a single tag.

func (*Sonarr) GetTags

func (s *Sonarr) GetTags() ([]*starr.Tag, error)

GetTags returns all configured tags.

func (*Sonarr) GetTagsContext

func (s *Sonarr) GetTagsContext(ctx context.Context) ([]*starr.Tag, error)

GetTagsContext returns all configured tags.

func (*Sonarr) Lookup

func (s *Sonarr) Lookup(term string) ([]*Series, error)

Lookup will search for series matching the specified search term. Searches for new shows on TheTVDB.com utilizing sonarr.tv's caching and augmentation proxy.

func (*Sonarr) LookupContext

func (s *Sonarr) LookupContext(ctx context.Context, term string) ([]*Series, error)

Lookup will search for series matching the specified search term. Searches for new shows on TheTVDB.com utilizing sonarr.tv's caching and augmentation proxy.

func (*Sonarr) MonitorEpisode

func (s *Sonarr) MonitorEpisode(episodeIDs []int64, monitor bool) ([]*Episode, error)

MonitorEpisode sends a request to monitor (true) or unmonitor (false) a list of episodes by ID. You can get episode IDs from GetSeriesEpisodes().

func (*Sonarr) MonitorEpisodeContext

func (s *Sonarr) MonitorEpisodeContext(ctx context.Context, episodeIDs []int64, monitor bool) ([]*Episode, error)

MonitorEpisodeContext sends a request to monitor (true) or unmonitor (false) a list of episodes by ID. You can get episode IDs from GetSeriesEpisodes().

func (*Sonarr) SendCommand

func (s *Sonarr) SendCommand(cmd *CommandRequest) (*CommandResponse, error)

SendCommand sends a command to Sonarr.

func (*Sonarr) SendCommandContext

func (s *Sonarr) SendCommandContext(ctx context.Context, cmd *CommandRequest) (*CommandResponse, error)

SendCommandContext sends a command to Sonarr.

func (*Sonarr) UpdateCustomFormat

func (s *Sonarr) UpdateCustomFormat(cf *CustomFormat, cfID int) (*CustomFormat, error)

UpdateCustomFormat updates an existing custom format and returns the response. This data and these endpoints do not exist in Sonarr v3; this is v4 only.

func (*Sonarr) UpdateCustomFormatContext

func (s *Sonarr) UpdateCustomFormatContext(ctx context.Context, format *CustomFormat, cfID int) (*CustomFormat, error)

UpdateCustomFormatContext updates an existing custom format and returns the response. This data and these endpoints do not exist in Sonarr v3; this is v4 only.

func (*Sonarr) UpdateDelayProfile

func (s *Sonarr) UpdateDelayProfile(profile *DelayProfile) (*DelayProfile, error)

UpdateDelayProfile updates the delay profile.

func (*Sonarr) UpdateDelayProfileContext

func (s *Sonarr) UpdateDelayProfileContext(ctx context.Context, profile *DelayProfile) (*DelayProfile, error)

UpdateDelayProfileContext updates the delay profile.

func (*Sonarr) UpdateDownloadClient

func (s *Sonarr) UpdateDownloadClient(downloadclient *DownloadClientInput) (*DownloadClientOutput, error)

UpdateDownloadClient updates the download client.

func (*Sonarr) UpdateDownloadClientConfig

func (s *Sonarr) UpdateDownloadClientConfig(downloadClientConfig *DownloadClientConfig) (*DownloadClientConfig, error)

UpdateDownloadClientConfig update the single download client config.

func (*Sonarr) UpdateDownloadClientConfigContext

func (s *Sonarr) UpdateDownloadClientConfigContext(ctx context.Context,
	config *DownloadClientConfig,
) (*DownloadClientConfig, error)

UpdateDownloadClientConfig update the single download client config.

func (*Sonarr) UpdateDownloadClientContext

func (s *Sonarr) UpdateDownloadClientContext(ctx context.Context,
	client *DownloadClientInput,
) (*DownloadClientOutput, error)

UpdateDownloadClientContext updates the download client.

func (*Sonarr) UpdateEpisodeFileQuality

func (s *Sonarr) UpdateEpisodeFileQuality(episodeFileID, qualityID int64) (*EpisodeFile, error)

UpdateEpisodeFile updates an episode file's quality. Use GetQualityProfiles() to find the available IDs.

func (*Sonarr) UpdateEpisodeFileQualityContext

func (s *Sonarr) UpdateEpisodeFileQualityContext(
	ctx context.Context,
	episodeFileID int64,
	qualityID int64,
) (*EpisodeFile, error)

UpdateEpisodeFileQualityContext updates an episode file, and takes a context.

func (*Sonarr) UpdateIndexer

func (s *Sonarr) UpdateIndexer(indexer *IndexerInput) (*IndexerOutput, error)

UpdateIndexer updates the indexer.

func (*Sonarr) UpdateIndexerConfig

func (s *Sonarr) UpdateIndexerConfig(indexerConfig *IndexerConfig) (*IndexerConfig, error)

UpdateIndexerConfig update the single indexerConfig.

func (*Sonarr) UpdateIndexerConfigContext

func (s *Sonarr) UpdateIndexerConfigContext(ctx context.Context, indexerConfig *IndexerConfig) (*IndexerConfig, error)

UpdateIndexerConfigContext update the single indexerConfig.

func (*Sonarr) UpdateIndexerContext

func (s *Sonarr) UpdateIndexerContext(ctx context.Context, indexer *IndexerInput) (*IndexerOutput, error)

UpdateIndexerContext updates the indexer.

func (*Sonarr) UpdateLanguageProfile

func (s *Sonarr) UpdateLanguageProfile(profile *LanguageProfile) (*LanguageProfile, error)

UpdateLanguageProfile updates the language profile.

func (*Sonarr) UpdateLanguageProfileContext

func (s *Sonarr) UpdateLanguageProfileContext(ctx context.Context, profile *LanguageProfile) (*LanguageProfile, error)

UpdateLanguageProfileContext updates the language profile.

func (*Sonarr) UpdateMediaManagement

func (s *Sonarr) UpdateMediaManagement(mMgt *MediaManagement) (*MediaManagement, error)

UpdateMediaManagement updates the Media Management.

func (*Sonarr) UpdateMediaManagementContext

func (s *Sonarr) UpdateMediaManagementContext(ctx context.Context, mMgt *MediaManagement) (*MediaManagement, error)

UpdateMediaManagementContext updates the Media Management.

func (*Sonarr) UpdateNaming

func (s *Sonarr) UpdateNaming(naming *Naming) (*Naming, error)

UpdateNaming updates the naming.

func (*Sonarr) UpdateNamingContext

func (s *Sonarr) UpdateNamingContext(ctx context.Context, naming *Naming) (*Naming, error)

UpdateNamingContext updates the naming.

func (*Sonarr) UpdateNotification

func (s *Sonarr) UpdateNotification(notification *NotificationInput) (*NotificationOutput, error)

UpdateNotification updates the notification.

func (*Sonarr) UpdateNotificationContext

func (s *Sonarr) UpdateNotificationContext(ctx context.Context,
	client *NotificationInput,
) (*NotificationOutput, error)

UpdateNotificationContext updates the notification.

func (*Sonarr) UpdateQualityDefinition

func (s *Sonarr) UpdateQualityDefinition(definition *QualityDefinition) (*QualityDefinition, error)

UpdateQualityDefinition updates a quality definition.

func (*Sonarr) UpdateQualityDefinitionContext

func (s *Sonarr) UpdateQualityDefinitionContext(
	ctx context.Context,
	definition *QualityDefinition,
) (*QualityDefinition, error)

UpdateQualityDefinitionContext updates a quality definition.

func (*Sonarr) UpdateQualityDefinitions

func (s *Sonarr) UpdateQualityDefinitions(definitions []*QualityDefinition) ([]*QualityDefinition, error)

UpdateQualityDefinition updates all quality definitions.

func (*Sonarr) UpdateQualityDefinitionsContext

func (s *Sonarr) UpdateQualityDefinitionsContext(
	ctx context.Context,
	definitions []*QualityDefinition,
) ([]*QualityDefinition, error)

UpdateQualityDefinitionsContext updates all quality definitions.

func (*Sonarr) UpdateQualityProfile

func (s *Sonarr) UpdateQualityProfile(profile *QualityProfile) (*QualityProfile, error)

UpdateQualityProfile updates the quality profile.

func (*Sonarr) UpdateQualityProfileContext

func (s *Sonarr) UpdateQualityProfileContext(ctx context.Context, profile *QualityProfile) (*QualityProfile, error)

UpdateQualityProfileContext updates the quality profile.

func (*Sonarr) UpdateReleaseProfile

func (s *Sonarr) UpdateReleaseProfile(profile *ReleaseProfile) (*ReleaseProfile, error)

UpdateReleaseProfile updates the release profile.

func (*Sonarr) UpdateReleaseProfileContext

func (s *Sonarr) UpdateReleaseProfileContext(ctx context.Context, profile *ReleaseProfile) (*ReleaseProfile, error)

UpdateReleaseProfileContext updates the release profile.

func (*Sonarr) UpdateRemotePathMapping

func (s *Sonarr) UpdateRemotePathMapping(mapping *RemotePathMapping) (*RemotePathMapping, error)

UpdateRemotePathMapping updates the remote path mapping.

func (*Sonarr) UpdateRemotePathMappingContext

func (s *Sonarr) UpdateRemotePathMappingContext(ctx context.Context,
	mapping *RemotePathMapping,
) (*RemotePathMapping, error)

UpdateRemotePathMappingContext updates the remote path mapping.

func (*Sonarr) UpdateSeasonPass

func (s *Sonarr) UpdateSeasonPass(seasonPass *SeasonPass) error

UpdateSeasonPass allows monitoring many Series and episodes at once.

func (*Sonarr) UpdateSeasonPassContext

func (s *Sonarr) UpdateSeasonPassContext(ctx context.Context, seasonPass *SeasonPass) error

UpdateSeasonPassContext allows monitoring many series and episodes at once.

func (*Sonarr) UpdateSeries

func (s *Sonarr) UpdateSeries(series *AddSeriesInput) (*Series, error)

UpdateSeries updates a series in place.

func (*Sonarr) UpdateSeriesContext

func (s *Sonarr) UpdateSeriesContext(ctx context.Context, series *AddSeriesInput) (*Series, error)

UpdateSeriesContext updates a series in place.

func (*Sonarr) UpdateTag

func (s *Sonarr) UpdateTag(tag *starr.Tag) (*starr.Tag, error)

UpdateTag updates the tag.

func (*Sonarr) UpdateTagContext

func (s *Sonarr) UpdateTagContext(ctx context.Context, tag *starr.Tag) (*starr.Tag, error)

UpdateTagContext updates the tag.

type Statistics

type Statistics struct {
	SeasonCount       int       `json:"seasonCount"`
	EpisodeFileCount  int       `json:"episodeFileCount"`
	EpisodeCount      int       `json:"episodeCount"`
	TotalEpisodeCount int       `json:"totalEpisodeCount"`
	SizeOnDisk        int64     `json:"sizeOnDisk"`
	PercentOfEpisodes float64   `json:"percentOfEpisodes"`
	PreviousAiring    time.Time `json:"previousAiring"`
}

Statistics is part of AddSeriesInput and Queue.

type SystemStatus

type SystemStatus struct {
	AppData                string    `json:"appData"`
	AppName                string    `json:"appName"`
	Authentication         string    `json:"authentication"`
	Branch                 string    `json:"branch"`
	BuildTime              time.Time `json:"buildTime"`
	InstanceName           string    `json:"instanceName"`
	IsAdmin                bool      `json:"isAdmin"`
	IsDebug                bool      `json:"isDebug"`
	IsLinux                bool      `json:"isLinux"`
	IsMono                 bool      `json:"isMono"`
	IsMonoRuntime          bool      `json:"isMonoRuntime"`
	IsOsx                  bool      `json:"isOsx"`
	IsProduction           bool      `json:"isProduction"`
	IsUserInteractive      bool      `json:"isUserInteractive"`
	IsWindows              bool      `json:"isWindows"`
	Mode                   string    `json:"mode"`
	OsName                 string    `json:"osName"`
	OsVersion              string    `json:"osVersion"`
	PackageAuthor          string    `json:"packageAuthor"`
	PackageUpdateMechanism string    `json:"packageUpdateMechanism"`
	PackageVersion         string    `json:"packageVersion"`
	RuntimeName            string    `json:"runtimeName"`
	RuntimeVersion         string    `json:"runtimeVersion"`
	SqliteVersion          string    `json:"sqliteVersion"`
	StartTime              time.Time `json:"startTime"`
	StartupPath            string    `json:"startupPath"`
	URLBase                string    `json:"urlBase"`
	Version                string    `json:"version"`
}

SystemStatus is the /api/v3/system/status endpoint.

Jump to

Keyboard shortcuts

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