readarr

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Aug 29, 2023 License: MIT Imports: 9 Imported by: 9

Documentation

Index

Constants

View Source
const (
	FilterAll starr.Filtering = iota
	FilterGrabbed

	FilterBookFileImported
	FilterDownloadFailed
	FilterDeleted
	FilterRenamed
	FilterImportFailed
	FilterDownloadImported
	FilterRetagged
	FilterIgnored
)

Filter values are integers. Given names for ease of discovery. https://github.com/Readarr/Readarr/blob/de72cfcaaa22495c7ce9fcb596a93beff6efb3d6/src/NzbDrone.Core/History/EntityHistory.cs#L31-L43

View Source
const APIver = "v1"

APIver is the Readarr API version supported by this library.

Variables

This section is empty.

Functions

This section is empty.

Types

type AddAuthorOptions

type AddAuthorOptions struct {
	SearchForMissingBooks bool    `json:"searchForMissingBooks"`
	Monitored             bool    `json:"monitored"`
	Monitor               string  `json:"monitor"`
	BooksToMonitor        []int64 `json:"booksToMonitor"`
}

AddAuthorOptions is part of AddBookAuthor.

type AddBookAuthor

type AddBookAuthor struct {
	Monitored         bool              `json:"monitored"`         // true?
	QualityProfileID  int64             `json:"qualityProfileId"`  // required
	MetadataProfileID int64             `json:"metadataProfileId"` // required
	ForeignAuthorID   string            `json:"foreignAuthorId"`   // required
	RootFolderPath    string            `json:"rootFolderPath"`    // required
	Tags              []int             `json:"tags"`
	AddOptions        *AddAuthorOptions `json:"addOptions"`
}

AddBookAuthor is part of AddBookInput.

type AddBookEdition

type AddBookEdition struct {
	Title            string         `json:"title"`            // Edition Title
	TitleSlug        string         `json:"titleSlug"`        // Slugs are dumb
	Images           []*starr.Image `json:"images"`           // this is dumb too
	ForeignEditionID string         `json:"foreignEditionId"` // GRID ID
	Monitored        bool           `json:"monitored"`        // true
	ManualAdd        bool           `json:"manualAdd"`        // true
}

AddBookEdition is part of AddBookInput.

type AddBookInput

type AddBookInput struct {
	Monitored     bool              `json:"monitored"`
	Tags          []int             `json:"tags"`
	AddOptions    *AddBookOptions   `json:"addOptions"`    // Contains Search.
	Author        *AddBookAuthor    `json:"author"`        // Contains Author ID
	Editions      []*AddBookEdition `json:"editions"`      // contains GRID Edition ID
	ForeignBookID string            `json:"foreignBookId"` // GRID Book ID.
}

AddBookInput is the input to add a book.

type AddBookOptions

type AddBookOptions struct {
	AddType          string `json:"addType,omitempty"`
	SearchForNewBook bool   `json:"searchForNewBook"`
}

AddBookOptions is part of AddBookInput.

type AudioCountry added in v1.0.0

type AudioCountry struct {
	TwoLetterCode string `json:"twoLetterCode"`
	Name          string `json:"name"`
}

AudioCountry is part of AudioTags.

type AudioMediaInfo added in v1.0.0

type AudioMediaInfo struct {
	AudioFormat     string `json:"audioFormat"`
	AudioBitrate    int    `json:"audioBitrate"`
	AudioChannels   int    `json:"audioChannels"`
	AudioBits       int    `json:"audioBits"`
	AudioSampleRate int    `json:"audioSampleRate"`
}

AudioMediaInfo is part of AudioTags.

type AudioTags added in v1.0.0

type AudioTags struct {
	Title          string          `json:"title"`
	CleanTitle     string          `json:"cleanTitle"`
	Authors        []string        `json:"authors"`
	AuthorTitle    string          `json:"authorTitle"`
	BookTitle      string          `json:"bookTitle"`
	SeriesTitle    string          `json:"seriesTitle"`
	SeriesIndex    string          `json:"seriesIndex"`
	ISBN           string          `json:"isbn"`
	ASIN           string          `json:"asin"`
	GoodreadsID    string          `json:"goodreadsId"`
	AuthorMBID     string          `json:"authorMBId"`
	BookMBID       string          `json:"bookMBId"`
	ReleaseMBID    string          `json:"releaseMBId"`
	RecordingMBID  string          `json:"recordingMBId"`
	TrackMBID      string          `json:"trackMBId"`
	DiscNumber     int             `json:"discNumber"`
	DiscCount      int             `json:"discCount"`
	Country        *AudioCountry   `json:"country"`
	Year           int             `json:"year"`
	Publisher      string          `json:"publisher"`
	Label          string          `json:"label"`
	Source         string          `json:"source"`
	CatalogNumber  string          `json:"catalogNumber"`
	Disambiguation string          `json:"disambiguation"`
	Duration       *starr.TimeSpan `json:"duration"`
	Quality        *starr.Quality  `json:"quality"`
	MediaInfo      *AudioMediaInfo `json:"mediaInfo"`
	TrackNumbers   []int           `json:"trackNumbers"`
	Language       string          `json:"language"`
	ReleaseGroup   string          `json:"releaseGroup"`
	ReleaseHash    string          `json:"releaseHash"`
}

AudioTags are part of a bookfile.

type Author

type Author struct {
	ID                  int64          `json:"id"`
	Status              string         `json:"status,omitempty"`
	AuthorName          string         `json:"authorName,omitempty"`
	ForeignAuthorID     string         `json:"foreignAuthorId,omitempty"`
	TitleSlug           string         `json:"titleSlug,omitempty"`
	Overview            string         `json:"overview,omitempty"`
	Links               []*starr.Link  `json:"links,omitempty"`
	Images              []*starr.Image `json:"images,omitempty"`
	Path                string         `json:"path,omitempty"`
	QualityProfileID    int            `json:"qualityProfileId,omitempty"`
	MetadataProfileID   int            `json:"metadataProfileId,omitempty"`
	Genres              []string       `json:"genres,omitempty"`
	CleanName           string         `json:"cleanName,omitempty"`
	SortName            string         `json:"sortName,omitempty"`
	Tags                []int          `json:"tags,omitempty"`
	Added               time.Time      `json:"added,omitempty"`
	Ratings             *starr.Ratings `json:"ratings,omitempty"`
	Statistics          *Statistics    `json:"statistics,omitempty"`
	LastBook            *AuthorBook    `json:"lastBook,omitempty"`
	NextBook            *AuthorBook    `json:"nextBook,omitempty"`
	Ended               bool           `json:"ended,omitempty"`
	Monitored           bool           `json:"monitored"`
	AuthorMetadataID    int64          `json:"authorMetadataId"`
	AuthorNameLastFirst string         `json:"authorNameLastFirst"`
	MonitorNewItems     string         `json:"monitorNewItems"`
	SortNameLastFirst   string         `json:"sortNameLastFirst"`
}

Author is the /api/v1/author endpoint.

type AuthorBook

type AuthorBook struct {
	ID               int64           `json:"id"`
	AuthorMetadataID int             `json:"authorMetadataId"`
	ForeignBookID    string          `json:"foreignBookId"`
	TitleSlug        string          `json:"titleSlug"`
	Title            string          `json:"title"`
	ReleaseDate      time.Time       `json:"releaseDate"`
	Links            []*starr.Link   `json:"links"`
	Genres           []string        `json:"genres"`
	Ratings          *starr.Ratings  `json:"ratings"`
	CleanTitle       string          `json:"cleanTitle"`
	Monitored        bool            `json:"monitored"`
	AnyEditionOk     bool            `json:"anyEditionOk"`
	LastInfoSync     time.Time       `json:"lastInfoSync"`
	Added            time.Time       `json:"added"`
	AddOptions       *AddBookOptions `json:"addOptions"`
	AuthorMetadata   *starr.IsLoaded `json:"authorMetadata"`
	Author           *starr.IsLoaded `json:"author"`
	Editions         *starr.IsLoaded `json:"editions"`
	BookFiles        *starr.IsLoaded `json:"bookFiles"`
	SeriesLinks      *starr.IsLoaded `json:"seriesLinks"`
}

AuthorBook is part of an Author, and is very different from a normal Book type.

type BlockList added in v1.0.0

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

BlockList represents the /api/v1/blocklist endpoint.

type BlockListRecord added in v1.0.0

type BlockListRecord struct {
	Author        *Author        `json:"author"`
	Quality       *starr.Quality `json:"quality"`
	CustomFormats []interface{}  `json:"customFormats"`
	BookIDs       []int64        `json:"bookIds"`
	ID            int64          `json:"id"`
	AuthorID      int64          `json:"authorId"`
	Date          time.Time      `json:"date"`
	SourceTitle   string         `json:"sourceTitle"`
	Protocol      string         `json:"protocol"`
	Indexer       string         `json:"indexer"`
	Message       string         `json:"message"`
}

BlockListRecord represents a single block list item.

type Book

type Book struct {
	Added          time.Time      `json:"added"`
	AnyEditionOk   bool           `json:"anyEditionOk"`
	AuthorID       int64          `json:"authorId"`
	AuthorTitle    string         `json:"authorTitle"`
	Disambiguation string         `json:"disambiguation,omitempty"`
	Editions       []*Edition     `json:"editions"`
	ForeignBookID  string         `json:"foreignBookId"`
	Genres         []string       `json:"genres"`
	ID             int64          `json:"id"`
	Images         []*starr.Image `json:"images"`
	Links          []*starr.Link  `json:"links"`
	Monitored      bool           `json:"monitored"`
	Grabbed        bool           `json:"grabbed"`
	Overview       string         `json:"overview"`
	PageCount      int            `json:"pageCount"`
	Ratings        *starr.Ratings `json:"ratings"`
	ReleaseDate    time.Time      `json:"releaseDate"`
	RemoteCover    string         `json:"remoteCover,omitempty"`
	SeriesTitle    string         `json:"seriesTitle"`
	Statistics     *Statistics    `json:"statistics,omitempty"`
	Title          string         `json:"title"`
	TitleSlug      string         `json:"titleSlug"`
	Author         *Author        `json:"author"`
}

Book is the /api/v1/book endpoint among others, and gets used across this package.

type BookFile added in v1.0.0

type BookFile struct {
	AuthorID            int64          `json:"authorId"`
	BookID              int64          `json:"bookId"`
	Path                string         `json:"path"`
	Size                int            `json:"size,omitempty"`
	DateAdded           time.Time      `json:"dateAdded,omitempty"`
	Quality             *starr.Quality `json:"quality"`
	QualityWeight       int            `json:"qualityWeight,omitempty"`
	QualityCutoffNotMet bool           `json:"qualityCutoffNotMet"`
	ID                  int64          `json:"id"`
	AudioTags           *AudioTags     `json:"audioTags,omitempty"`
}

BookFile represents the data from the bookfile endpoint.

type Calendar added in v1.0.0

type Calendar struct {
	Start         time.Time
	End           time.Time
	Unmonitored   bool
	IncludeAuthor bool
}

Calendar defines the filters for fetching calendar items.

type CommandRequest added in v0.9.10

type CommandRequest struct {
	Name    string  `json:"name"`
	BookIDs []int64 `json:"bookIds,omitempty"`
	BookID  int64   `json:"bookId,omitempty"`
}

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

type CommandResponse added in v0.9.10

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/v1/command endpoint.

type DownloadClientConfig added in v1.0.0

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

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

type DownloadClientInput added in v1.0.0

type DownloadClientInput struct {
	Enable             bool                `json:"enable"`
	Priority           int                 `json:"priority"`
	ID                 int64               `json:"id,omitempty"`
	ConfigContract     string              `json:"configContract"`
	Implementation     string              `json:"implementation"`
	ImplementationName string              `json:"implementationName"`
	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 added in v1.0.0

type DownloadClientOutput struct {
	Enable             bool                 `json:"enable"`
	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 Edition

type Edition struct {
	ID               int64          `json:"id"`
	BookID           int64          `json:"bookId"`
	ForeignEditionID string         `json:"foreignEditionId"`
	TitleSlug        string         `json:"titleSlug"`
	Isbn13           string         `json:"isbn13"`
	Asin             string         `json:"asin"`
	Title            string         `json:"title"`
	Overview         string         `json:"overview"`
	Format           string         `json:"format"`
	Publisher        string         `json:"publisher"`
	PageCount        int            `json:"pageCount"`
	ReleaseDate      time.Time      `json:"releaseDate"`
	Images           []*starr.Image `json:"images"`
	Links            []*starr.Link  `json:"links"`
	Ratings          *starr.Ratings `json:"ratings"`
	Monitored        bool           `json:"monitored"`
	ManualAdd        bool           `json:"manualAdd"`
	IsEbook          bool           `json:"isEbook"`
}

Edition is more Book meta data.

type Exclusion added in v1.0.0

type Exclusion struct {
	ForeignID  string `json:"foreignId"`
	AuthorName string `json:"authorName"`
	ID         int64  `json:"id,omitempty"`
}

Exclusion is a Readarr excluded item.

type History added in v0.10.6

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 /api/v1/history endpoint.

type HistoryRecord added in v0.10.6

type HistoryRecord struct {
	ID                  int64          `json:"id"`
	BookID              int64          `json:"bookId"`
	AuthorID            int64          `json:"authorId"`
	SourceTitle         string         `json:"sourceTitle"`
	Quality             *starr.Quality `json:"quality"`
	QualityCutoffNotMet bool           `json:"qualityCutoffNotMet"`
	Date                time.Time      `json:"date"`
	DownloadID          string         `json:"downloadId"`
	EventType           string         `json:"eventType"`
	Data                struct {
		Age             string    `json:"age"`
		AgeHours        string    `json:"ageHours"`
		AgeMinutes      string    `json:"ageMinutes"`
		DownloadClient  string    `json:"downloadClient"`
		DownloadForced  string    `json:"downloadForced"`
		DownloadURL     string    `json:"downloadUrl"`
		DroppedPath     string    `json:"droppedPath"`
		GUID            string    `json:"guid"`
		ImportedPath    string    `json:"importedPath"`
		Indexer         string    `json:"indexer"`
		Message         string    `json:"message"`
		NzbInfoURL      string    `json:"nzbInfoUrl"`
		Protocol        string    `json:"protocol"`
		PublishedDate   time.Time `json:"publishedDate"`
		Reason          string    `json:"reason"`
		ReleaseGroup    string    `json:"releaseGroup"`
		Size            string    `json:"size"`
		StatusMessages  string    `json:"statusMessages"`
		TorrentInfoHash string    `json:"torrentInfoHash"`
	} `json:"data"`
}

HistoryRecord is part of the history. Not all items have all Data members. Check EventType for events you need.

type ImportListInput added in v1.0.0

type ImportListInput struct {
	EnableAutomaticAdd    bool                `json:"enableAutomaticAdd"`
	ShouldMonitorExisting bool                `json:"shouldMonitorExisting"`
	ShouldSearch          bool                `json:"shouldSearch"`
	ListOrder             int                 `json:"listOrder"`
	ID                    int64               `json:"id,omitempty"` // for update not add.
	MetadataProfileID     int64               `json:"metadataProfileId,omitempty"`
	QualityProfileID      int64               `json:"qualityProfileId,omitempty"`
	ListType              string              `json:"listType,omitempty"`
	ConfigContract        string              `json:"configContract,omitempty"`
	Implementation        string              `json:"implementation,omitempty"`
	Name                  string              `json:"name,omitempty"`
	RootFolderPath        string              `json:"rootFolderPath,omitempty"`
	ShouldMonitor         string              `json:"shouldMonitor,omitempty"`
	MonitorNewItems       string              `json:"monitorNewItems,omitempty"`
	Tags                  []int               `json:"tags,omitempty"`
	Fields                []*starr.FieldInput `json:"fields,omitempty"`
}

ImportListInput is the input for a new or updated import list.

type ImportListOutput added in v1.0.0

type ImportListOutput struct {
	EnableAutomaticAdd    bool                 `json:"enableAutomaticAdd"`
	ShouldMonitorExisting bool                 `json:"shouldMonitorExisting"`
	ShouldSearch          bool                 `json:"shouldSearch"`
	ID                    int64                `json:"id"`
	ListOrder             int64                `json:"listOrder"`
	MetadataProfileID     int64                `json:"metadataProfileId"`
	QualityProfileID      int64                `json:"qualityProfileId"`
	ConfigContract        string               `json:"configContract"`
	Implementation        string               `json:"implementation"`
	ImplementationName    string               `json:"implementationName"`
	InfoLink              string               `json:"infoLink"`
	ListType              string               `json:"listType"`
	MonitorNewItems       string               `json:"monitorNewItems"`
	Name                  string               `json:"name"`
	RootFolderPath        string               `json:"rootFolderPath"`
	ShouldMonitor         string               `json:"shouldMonitor"`
	Tags                  []int                `json:"tags"`
	Fields                []*starr.FieldOutput `json:"fields"`
}

ImportListOutput is the output from the import list methods.

type IndexerConfig added in v1.0.0

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 added in v1.0.0

type IndexerInput struct {
	EnableAutomaticSearch   bool                `json:"enableAutomaticSearch"`
	EnableInteractiveSearch bool                `json:"enableInteractiveSearch"`
	EnableRss               bool                `json:"enableRss"`
	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 added in v1.0.0

type IndexerOutput struct {
	EnableAutomaticSearch   bool                 `json:"enableAutomaticSearch"`
	EnableInteractiveSearch bool                 `json:"enableInteractiveSearch"`
	EnableRss               bool                 `json:"enableRss"`
	SupportsRss             bool                 `json:"supportsRss"`
	SupportsSearch          bool                 `json:"supportsSearch"`
	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 ManualImportInput added in v1.0.0

type ManualImportInput struct {
	ID                      int64          `json:"id"`
	Path                    string         `json:"path"`
	Name                    string         `json:"name"`
	AuthorID                int64          `json:"authorID"`
	BookID                  int64          `json:"bookID"`
	ForeignEditionID        int64          `json:"foreignEditionId"`
	Quality                 *starr.Quality `json:"quality"`
	ReleaseGroup            string         `json:"releaseGroup"`
	DownloadID              string         `json:"downloadId"`
	AdditionalFile          bool           `json:"additionalFile"`
	ReplaceExistingFiles    bool           `json:"replaceExistingFiles"`
	DisableReleaseSwitching bool           `json:"disableReleaseSwitching"`
	Rejections              []*Rejection   `json:"rejections"`
}

ManualImportInput is the input data for a manual import request using a POST request.

type ManualImportOutput added in v1.0.0

type ManualImportOutput struct {
	ID                      int64          `json:"id"`
	Path                    string         `json:"path"`
	Name                    string         `json:"name"`
	Size                    int            `json:"size"`
	Author                  *Author        `json:"author"`
	Book                    *Book          `json:"book"`
	ForeignEditionID        int64          `json:"foreignEditionId"`
	Quality                 *starr.Quality `json:"quality"`
	ReleaseGroup            string         `json:"releaseGroup"`
	QualityWeight           int64          `json:"qualityWeight"`
	DownloadID              string         `json:"downloadId"`
	AudioTags               *AudioTags     `json:"audioTags"`
	AdditionalFile          bool           `json:"additionalFile"`
	ReplaceExistingFiles    bool           `json:"replaceExistingFiles"`
	DisableReleaseSwitching bool           `json:"disableReleaseSwitching"`
	Rejections              []*Rejection   `json:"rejections"`
}

ManualImportOutput is the output data for a manual import request.

type ManualImportParams added in v1.0.0

type ManualImportParams struct {
	Folder               string
	DownloadID           string
	AuthorID             int64
	ReplaceExistingFiles bool
	FilterExistingFiles  bool
}

ManualImportParams provides the input parameters for the GET /manualimport API.

type MetadataProfile

type MetadataProfile struct {
	ID                  int64   `json:"id"`
	Name                string  `json:"name"`
	MinPopularity       float64 `json:"minPopularity"`
	SkipMissingDate     bool    `json:"skipMissingDate"`
	SkipMissingIsbn     bool    `json:"skipMissingIsbn"`
	SkipPartsAndSets    bool    `json:"skipPartsAndSets"`
	SkipSeriesSecondary bool    `json:"skipSeriesSecondary"`
	AllowedLanguages    string  `json:"allowedLanguages,omitempty"`
}

MetadataProfile is the /api/v1/metadataProfile endpoint.

type NotificationInput added in v1.0.0

type NotificationInput struct {
	OnGrab                     bool                `json:"onGrab,omitempty"`
	OnReleaseImport            bool                `json:"onReleaseImport,omitempty"`
	OnUpgrade                  bool                `json:"onUpgrade,omitempty"`
	OnRename                   bool                `json:"onRename,omitempty"`
	OnAuthorDelete             bool                `json:"onAuthorDelete,omitempty"`
	OnBookDelete               bool                `json:"onBookDelete,omitempty"`
	OnBookFileDelete           bool                `json:"onBookFileDelete,omitempty"`
	OnBookFileDeleteForUpgrade bool                `json:"onBookFileDeleteForUpgrade,omitempty"`
	OnHealthIssue              bool                `json:"onHealthIssue,omitempty"`
	OnDownloadFailure          bool                `json:"onDownloadFailure,omitempty"`
	OnImportFailure            bool                `json:"onImportFailure,omitempty"`
	OnBookRetag                bool                `json:"onBookRetag,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 added in v1.0.0

type NotificationOutput struct {
	OnGrab                             bool                 `json:"onGrab,omitempty"`
	OnReleaseImport                    bool                 `json:"onReleaseImport,omitempty"`
	OnUpgrade                          bool                 `json:"onUpgrade,omitempty"`
	OnRename                           bool                 `json:"onRename,omitempty"`
	OnAuthorDelete                     bool                 `json:"onAuthorDelete,omitempty"`
	OnBookDelete                       bool                 `json:"onBookDelete,omitempty"`
	OnBookFileDelete                   bool                 `json:"onBookFileDelete,omitempty"`
	OnBookFileDeleteForUpgrade         bool                 `json:"onBookFileDeleteForUpgrade,omitempty"`
	OnHealthIssue                      bool                 `json:"onHealthIssue,omitempty"`
	OnDownloadFailure                  bool                 `json:"onDownloadFailure,omitempty"`
	OnImportFailure                    bool                 `json:"onImportFailure,omitempty"`
	OnBookRetag                        bool                 `json:"onBookRetag,omitempty"`
	OnApplicationUpdate                bool                 `json:"onApplicationUpdate,omitempty"`
	SupportsOnGrab                     bool                 `json:"supportsOnGrab"`
	SupportsOnReleaseImport            bool                 `json:"supportsOnReleaseImport"`
	SupportsOnUpgrade                  bool                 `json:"supportsOnUpgrade"`
	SupportsOnRename                   bool                 `json:"supportsOnRename"`
	SupportsOnAuthorDelete             bool                 `json:"supportsOnAuthorDelete"`
	SupportsOnBookDelete               bool                 `json:"supportsOnBookDelete"`
	SupportsOnBookFileDelete           bool                 `json:"supportsOnBookFileDelete"`
	SupportsOnBookFileDeleteForUpgrade bool                 `json:"supportsOnBookFileDeleteForUpgrade"`
	SupportsOnApplicationUpdate        bool                 `json:"supportsOnApplicationUpdate"`
	SupportsOnDownloadFailure          bool                 `json:"supportsOnDownloadFailure"`
	SupportsOnImportFailure            bool                 `json:"supportsOnImportFailure"`
	SupportsOnBookRetag                bool                 `json:"supportsOnBookRetag"`
	SupportsOnHealthIssue              bool                 `json:"supportsOnHealthIssue"`
	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 QualityProfile

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

QualityProfile is the /api/v1/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/v1/queue endpoint.

type QueueRecord added in v0.10.4

type QueueRecord struct {
	AuthorID                int64                  `json:"authorId"`
	BookID                  int64                  `json:"bookId"`
	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,omitempty"`
	TrackedDownloadState    string                 `json:"trackedDownloadState,omitempty"`
	StatusMessages          []*starr.StatusMessage `json:"statusMessages,omitempty"`
	DownloadID              string                 `json:"downloadId,omitempty"`
	Protocol                string                 `json:"protocol"`
	DownloadClient          string                 `json:"downloadClient,omitempty"`
	Indexer                 string                 `json:"indexer"`
	OutputPath              string                 `json:"outputPath,omitempty"`
	DownloadForced          bool                   `json:"downloadForced"`
	ID                      int64                  `json:"id"`
	ErrorMessage            string                 `json:"errorMessage"`
}

QueueRecord is a book from the queue API path.

type Readarr

type Readarr struct {
	starr.APIer
}

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

func New

func New(config *starr.Config) *Readarr

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

func (*Readarr) AddBook

func (r *Readarr) AddBook(book *AddBookInput) (*Book, error)

AddBook adds a new book to the library.

func (*Readarr) AddBookContext added in v0.13.0

func (r *Readarr) AddBookContext(ctx context.Context, book *AddBookInput) (*Book, error)

AddBookContext adds a new book to the library.

func (*Readarr) AddDownloadClient added in v1.0.0

func (r *Readarr) AddDownloadClient(downloadclient *DownloadClientInput) (*DownloadClientOutput, error)

AddDownloadClient creates a download client.

func (*Readarr) AddDownloadClientContext added in v1.0.0

func (r *Readarr) AddDownloadClientContext(ctx context.Context,
	client *DownloadClientInput,
) (*DownloadClientOutput, error)

AddDownloadClientContext creates a download client.

func (*Readarr) AddImportList added in v1.0.0

func (r *Readarr) AddImportList(importList *ImportListInput) (*ImportListOutput, error)

AddImportList creates a import list.

func (*Readarr) AddImportListContext added in v1.0.0

func (r *Readarr) AddImportListContext(ctx context.Context, importList *ImportListInput) (*ImportListOutput, error)

AddImportListContext creates a import list.

func (*Readarr) AddIndexer added in v1.0.0

func (r *Readarr) AddIndexer(indexer *IndexerInput) (*IndexerOutput, error)

AddIndexer creates a indexer.

func (*Readarr) AddIndexerContext added in v1.0.0

func (r *Readarr) AddIndexerContext(ctx context.Context, indexer *IndexerInput) (*IndexerOutput, error)

AddIndexerContext creates a indexer.

func (*Readarr) AddNotification added in v1.0.0

func (r *Readarr) AddNotification(notification *NotificationInput) (*NotificationOutput, error)

AddNotification creates a notification.

func (*Readarr) AddNotificationContext added in v1.0.0

func (r *Readarr) AddNotificationContext(ctx context.Context, client *NotificationInput) (*NotificationOutput, error)

AddNotificationContext creates a notification.

func (*Readarr) AddQualityProfile added in v0.9.11

func (r *Readarr) AddQualityProfile(profile *QualityProfile) (int64, error)

AddQualityProfile updates a quality profile in place.

func (*Readarr) AddQualityProfileContext added in v0.13.0

func (r *Readarr) AddQualityProfileContext(ctx context.Context, profile *QualityProfile) (int64, error)

AddQualityProfileContext updates a quality profile in place.

func (*Readarr) AddRemotePathMapping added in v1.0.0

func (r *Readarr) AddRemotePathMapping(mapping *starr.RemotePathMapping) (*starr.RemotePathMapping, error)

AddRemotePathMapping creates a remote path mapping.

func (*Readarr) AddRemotePathMappingContext added in v1.0.0

func (r *Readarr) AddRemotePathMappingContext(ctx context.Context,
	mapping *starr.RemotePathMapping,
) (*starr.RemotePathMapping, error)

AddRemotePathMappingContext creates a remote path mapping.

func (*Readarr) AddTag

func (r *Readarr) AddTag(tag *starr.Tag) (*starr.Tag, error)

AddTag creates a tag.

func (*Readarr) AddTagContext added in v0.13.0

func (r *Readarr) AddTagContext(ctx context.Context, tag *starr.Tag) (*starr.Tag, error)

AddTagContext creates a tag.

func (*Readarr) DeleteAuthor added in v1.0.0

func (r *Readarr) DeleteAuthor(authorID int64, deleteFiles, addImportExclusion bool) error

DeleteAuthor removes an Author from the database. Setting deleteFiles true will delete all content for the Author.

func (*Readarr) DeleteAuthorContext added in v1.0.0

func (r *Readarr) DeleteAuthorContext(ctx context.Context, authorID int64, deleteFiles, addImportExclusion bool) error

DeleteAuthorContext removes na Author from the database. Setting deleteFiles true will delete all content for the Author.

func (*Readarr) DeleteBlockList added in v1.0.0

func (r *Readarr) DeleteBlockList(listID int64) error

DeleteBlockList removes a single block list item.

func (*Readarr) DeleteBlockListContext added in v1.0.0

func (r *Readarr) DeleteBlockListContext(ctx context.Context, listID int64) error

DeleteBlockListContext removes a single block list item with a context.

func (*Readarr) DeleteBlockLists added in v1.0.0

func (r *Readarr) DeleteBlockLists(ids []int64) error

DeleteBlockLists removes multiple block list items.

func (*Readarr) DeleteBlockListsContext added in v1.0.0

func (r *Readarr) DeleteBlockListsContext(ctx context.Context, ids []int64) error

DeleteBlockListsContext removes multiple block list items with a context.

func (*Readarr) DeleteBook added in v1.0.0

func (r *Readarr) DeleteBook(bookID int64, deleteFiles, addImportExclusion bool) error

DeleteBook removes a Book from the database. Setting deleteFiles true will delete all content for the Book.

func (*Readarr) DeleteBookContext added in v1.0.0

func (r *Readarr) DeleteBookContext(ctx context.Context, bookID int64, deleteFiles, addImportExclusion bool) error

DeleteBookContext removes a Book from the database. Setting deleteFiles true will delete all content for the Book.

func (*Readarr) DeleteBookFile added in v1.0.0

func (r *Readarr) DeleteBookFile(bookFileID int64) error

DeleteBookFile deletes a book file.

func (*Readarr) DeleteBookFileContext added in v1.0.0

func (r *Readarr) DeleteBookFileContext(ctx context.Context, bookFileID int64) error

DeleteBookFileContext deletes a book file.

func (*Readarr) DeleteBookFiles added in v1.0.0

func (r *Readarr) DeleteBookFiles(bookFileIDs []int64) error

DeleteBookFiles bulk deletes book files by their IDs.

func (*Readarr) DeleteBookFilesContext added in v1.0.0

func (r *Readarr) DeleteBookFilesContext(ctx context.Context, bookFileIDs []int64) error

DeleteBookFilesContext bulk deletes book files by their IDs.

func (*Readarr) DeleteDownloadClient added in v1.0.0

func (r *Readarr) DeleteDownloadClient(downloadclientID int64) error

DeleteDownloadClient removes a single download client.

func (*Readarr) DeleteDownloadClientContext added in v1.0.0

func (r *Readarr) DeleteDownloadClientContext(ctx context.Context, downloadclientID int64) error

DeleteDownloadClientContext removes a single download client.

func (*Readarr) DeleteExclusions added in v1.0.0

func (r *Readarr) DeleteExclusions(ids []int64) error

DeleteExclusions removes exclusions from Readarr.

func (*Readarr) DeleteExclusionsContext added in v1.0.0

func (r *Readarr) DeleteExclusionsContext(ctx context.Context, ids []int64) error

DeleteExclusionsContext removes exclusions from Readarr.

func (*Readarr) DeleteImportList added in v1.0.0

func (r *Readarr) DeleteImportList(importListID int64) error

DeleteImportList removes a single import list.

func (*Readarr) DeleteImportListContext added in v1.0.0

func (r *Readarr) DeleteImportListContext(ctx context.Context, importListID int64) error

DeleteImportListContext removes a single import list.

func (*Readarr) DeleteIndexer added in v1.0.0

func (r *Readarr) DeleteIndexer(indexerID int64) error

DeleteIndexer removes a single indexer.

func (*Readarr) DeleteIndexerContext added in v1.0.0

func (r *Readarr) DeleteIndexerContext(ctx context.Context, indexerID int64) error

DeleteIndexerContext removes a single indexer.

func (*Readarr) DeleteNotification added in v1.0.0

func (r *Readarr) DeleteNotification(notificationID int64) error

DeleteNotification removes a single notification.

func (*Readarr) DeleteNotificationContext added in v1.0.0

func (r *Readarr) DeleteNotificationContext(ctx context.Context, notificationID int64) error

func (*Readarr) DeleteQualityProfile added in v1.0.0

func (r *Readarr) DeleteQualityProfile(profileID int64) error

DeleteQualityProfile deletes a quality profile.

func (*Readarr) DeleteQualityProfileContext added in v1.0.0

func (r *Readarr) DeleteQualityProfileContext(ctx context.Context, profileID int64) error

DeleteQualityProfileContext deletes a quality profile.

func (*Readarr) DeleteQueue added in v1.0.0

func (r *Readarr) DeleteQueue(queueID int64, opts *starr.QueueDeleteOpts) error

DeleteQueue deletes an item from the Activity Queue.

func (*Readarr) DeleteQueueContext added in v1.0.0

func (r *Readarr) DeleteQueueContext(ctx context.Context, queueID int64, opts *starr.QueueDeleteOpts) error

DeleteQueueContext deletes an item from the Activity Queue.

func (*Readarr) DeleteRemotePathMapping added in v1.0.0

func (r *Readarr) DeleteRemotePathMapping(mappingID int64) error

DeleteRemotePathMapping removes a single remote path mapping.

func (*Readarr) DeleteRemotePathMappingContext added in v1.0.0

func (r *Readarr) DeleteRemotePathMappingContext(ctx context.Context, mappingID int64) error

DeleteRemotePathMappingContext removes a single remote path mapping.

func (*Readarr) DeleteTag added in v0.14.0

func (r *Readarr) DeleteTag(tagID int) error

DeleteTag removes a single tag.

func (*Readarr) DeleteTagContext added in v0.14.0

func (r *Readarr) DeleteTagContext(ctx context.Context, tagID int) error

DeleteTagContext removes a single tag.

func (*Readarr) Fail added in v0.12.0

func (r *Readarr) Fail(historyID int64) error

Fail marks the given history item as failed by id.

func (*Readarr) FailContext added in v0.13.0

func (r *Readarr) FailContext(ctx context.Context, historyID int64) error

FailContext marks the given history item as failed by id.

func (*Readarr) GetAuthorByID

func (r *Readarr) GetAuthorByID(authorID int64) (*Author, error)

GetAuthorByID returns an author.

func (*Readarr) GetAuthorByIDContext added in v0.13.0

func (r *Readarr) GetAuthorByIDContext(ctx context.Context, authorID int64) (*Author, error)

GetAuthorByIDContext returns an author.

func (*Readarr) GetBackupFiles added in v0.12.0

func (r *Readarr) GetBackupFiles() ([]*starr.BackupFile, error)

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

func (*Readarr) GetBackupFilesContext added in v0.13.0

func (r *Readarr) GetBackupFilesContext(ctx context.Context) ([]*starr.BackupFile, error)

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

func (*Readarr) GetBlockList added in v1.0.0

func (r *Readarr) GetBlockList(count int) (*BlockList, error)

GetBlockList returns the count of block list items requested. If you need control over the page, use GetBlockListPage().

func (*Readarr) GetBlockListContext added in v1.0.0

func (r *Readarr) GetBlockListContext(ctx context.Context, records int) (*BlockList, error)

GetBlockListContext returns block list items.

func (*Readarr) GetBlockListPage added in v1.0.0

func (r *Readarr) GetBlockListPage(params *starr.PageReq) (*BlockList, error)

GetBlockListPage returns block list items based on filters.

func (*Readarr) GetBlockListPageContext added in v1.0.0

func (r *Readarr) GetBlockListPageContext(ctx context.Context, params *starr.PageReq) (*BlockList, error)

GetBlockListPageContext returns block list items based on filters.

func (*Readarr) GetBook

func (r *Readarr) GetBook(gridID string) ([]*Book, error)

GetBook returns books. All books are returned if gridID is empty.

func (*Readarr) GetBookByID

func (r *Readarr) GetBookByID(bookID int64) (*Book, error)

GetBookByID returns a book.

func (*Readarr) GetBookByIDContext added in v0.13.0

func (r *Readarr) GetBookByIDContext(ctx context.Context, bookID int64) (*Book, error)

GetBookByIDContext returns a book.

func (*Readarr) GetBookContext added in v0.13.0

func (r *Readarr) GetBookContext(ctx context.Context, gridID string) ([]*Book, error)

GetBookContext returns books. All books are returned if gridID is empty.

func (*Readarr) GetBookFiles added in v1.0.0

func (r *Readarr) GetBookFiles(bookFileIDs []int64) ([]*BookFile, error)

GetBookFiles returns the requested book files by ID.

func (*Readarr) GetBookFilesContext added in v1.0.0

func (r *Readarr) GetBookFilesContext(ctx context.Context, bookFileIDs []int64) ([]*BookFile, error)

GetBookFilesContext returns the requested book files by their IDs.

func (*Readarr) GetBookFilesForAuthor added in v1.0.0

func (r *Readarr) GetBookFilesForAuthor(authorID int64) ([]*BookFile, error)

GetBookFilesForAuthor returns the book files for an author.

func (*Readarr) GetBookFilesForAuthorContext added in v1.0.0

func (r *Readarr) GetBookFilesForAuthorContext(ctx context.Context, authorID int64) ([]*BookFile, error)

GetBookFilesForAuthorContext returns the book files for an author.

func (*Readarr) GetBookFilesForBook added in v1.0.0

func (r *Readarr) GetBookFilesForBook(bookID ...int64) ([]*BookFile, error)

GetBookFilesForBook returns the book files for a book or books.

func (*Readarr) GetBookFilesForBookContext added in v1.0.0

func (r *Readarr) GetBookFilesForBookContext(ctx context.Context, bookID ...int64) ([]*BookFile, error)

GetBookFilesForBookContext returns the book files for a book or books.

func (*Readarr) GetCalendar added in v1.0.0

func (r *Readarr) GetCalendar(filter Calendar) ([]*Book, error)

GetCalendar returns calendars based on filters.

func (*Readarr) GetCalendarContext added in v1.0.0

func (r *Readarr) GetCalendarContext(ctx context.Context, filter Calendar) ([]*Book, error)

GetCalendarContext returns calendars based on filters.

func (*Readarr) GetCalendarID added in v1.0.0

func (r *Readarr) GetCalendarID(calendarID int64) (*Book, error)

GetCalendarID returns a single calendar by ID.

func (*Readarr) GetCalendarIDContext added in v1.0.0

func (r *Readarr) GetCalendarIDContext(ctx context.Context, calendarID int64) (*Book, error)

GetCalendarIDContext returns a single calendar by ID.

func (*Readarr) GetCommands added in v0.9.10

func (r *Readarr) GetCommands() ([]*CommandResponse, error)

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

func (*Readarr) GetCommandsContext added in v0.13.0

func (r *Readarr) GetCommandsContext(ctx context.Context) ([]*CommandResponse, error)

GetCommandsContext returns all available Readarr commands. These can be used with SendCommand.

func (*Readarr) GetDownloadClient added in v1.0.0

func (r *Readarr) GetDownloadClient(downloadclientID int64) (*DownloadClientOutput, error)

GetDownloadClient returns a single download client.

func (*Readarr) GetDownloadClientConfig added in v1.0.0

func (r *Readarr) GetDownloadClientConfig() (*DownloadClientConfig, error)

GetDownloadClientConfig returns the download client config.

func (*Readarr) GetDownloadClientConfigContext added in v1.0.0

func (r *Readarr) GetDownloadClientConfigContext(ctx context.Context) (*DownloadClientConfig, error)

GetDownloadClientConfig returns the download client config.

func (*Readarr) GetDownloadClientContext added in v1.0.0

func (r *Readarr) GetDownloadClientContext(ctx context.Context, downloadclientID int64) (*DownloadClientOutput, error)

GetDownloadClientContext returns a single download client.

func (*Readarr) GetDownloadClients added in v1.0.0

func (r *Readarr) GetDownloadClients() ([]*DownloadClientOutput, error)

GetDownloadClients returns all configured download clients.

func (*Readarr) GetDownloadClientsContext added in v1.0.0

func (r *Readarr) GetDownloadClientsContext(ctx context.Context) ([]*DownloadClientOutput, error)

GetDownloadClientsContext returns all configured download clients.

func (*Readarr) GetExclusions added in v1.0.0

func (r *Readarr) GetExclusions() ([]*Exclusion, error)

GetExclusions returns all configured exclusions from Readarr.

func (*Readarr) GetExclusionsContext added in v1.0.0

func (r *Readarr) GetExclusionsContext(ctx context.Context) ([]*Exclusion, error)

GetExclusionsContext returns all configured exclusions from Readarr.

func (*Readarr) GetHistory added in v0.10.6

func (r *Readarr) GetHistory(records, perPage int) (*History, error)

GetHistory returns the Readarr History (grabs/failures/completed). If you need control over the page, use readarr.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 (*Readarr) GetHistoryContext added in v0.13.0

func (r *Readarr) GetHistoryContext(ctx context.Context, records, perPage int) (*History, error)

GetHistoryContext returns the Readarr History (grabs/failures/completed). If you need control over the page, use readarr.GetHistoryPageContext().

func (*Readarr) GetHistoryPage added in v0.12.0

func (r *Readarr) GetHistoryPage(params *starr.PageReq) (*History, error)

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

func (*Readarr) GetHistoryPageContext added in v0.13.0

func (r *Readarr) GetHistoryPageContext(ctx context.Context, params *starr.PageReq) (*History, error)

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

func (*Readarr) GetImportList added in v1.0.0

func (r *Readarr) GetImportList(importListID int64) (*ImportListOutput, error)

GetImportList returns a single import list.

func (*Readarr) GetImportListContext added in v1.0.0

func (r *Readarr) GetImportListContext(ctx context.Context, importListID int64) (*ImportListOutput, error)

GetIndGetImportListContextexer returns a single import list.

func (*Readarr) GetImportLists added in v1.0.0

func (r *Readarr) GetImportLists() ([]*ImportListOutput, error)

GetImportLists returns all configured import lists.

func (*Readarr) GetImportListsContext added in v1.0.0

func (r *Readarr) GetImportListsContext(ctx context.Context) ([]*ImportListOutput, error)

GetImportListsContext returns all configured import lists.

func (*Readarr) GetIndexer added in v1.0.0

func (r *Readarr) GetIndexer(indexerID int64) (*IndexerOutput, error)

GetIndexer returns a single indexer.

func (*Readarr) GetIndexerConfig added in v1.0.0

func (r *Readarr) GetIndexerConfig() (*IndexerConfig, error)

GetIndexerConfig returns an Indexer Config.

func (*Readarr) GetIndexerConfigContext added in v1.0.0

func (r *Readarr) GetIndexerConfigContext(ctx context.Context) (*IndexerConfig, error)

GetIndexerConfigContext returns the indexer Config.

func (*Readarr) GetIndexerContext added in v1.0.0

func (r *Readarr) GetIndexerContext(ctx context.Context, indexerID int64) (*IndexerOutput, error)

GetIndGetIndexerContextexer returns a single indexer.

func (*Readarr) GetIndexers added in v1.0.0

func (r *Readarr) GetIndexers() ([]*IndexerOutput, error)

GetIndexers returns all configured indexers.

func (*Readarr) GetIndexersContext added in v1.0.0

func (r *Readarr) GetIndexersContext(ctx context.Context) ([]*IndexerOutput, error)

GetIndexersContext returns all configured indexers.

func (*Readarr) GetMetadataProfiles

func (r *Readarr) GetMetadataProfiles() ([]*MetadataProfile, error)

GetMetadataProfiles returns the metadata profiles.

func (*Readarr) GetMetadataProfilesContext added in v0.13.0

func (r *Readarr) GetMetadataProfilesContext(ctx context.Context) ([]*MetadataProfile, error)

GetMetadataProfilesContext returns the metadata profiles.

func (*Readarr) GetNotification added in v1.0.0

func (r *Readarr) GetNotification(notificationID int) (*NotificationOutput, error)

GetNotification returns a single notification.

func (*Readarr) GetNotificationContext added in v1.0.0

func (r *Readarr) GetNotificationContext(ctx context.Context, notificationID int) (*NotificationOutput, error)

GetNotificationContext returns a single notification.

func (*Readarr) GetNotifications added in v1.0.0

func (r *Readarr) GetNotifications() ([]*NotificationOutput, error)

GetNotifications returns all configured notifications.

func (*Readarr) GetNotificationsContext added in v1.0.0

func (r *Readarr) GetNotificationsContext(ctx context.Context) ([]*NotificationOutput, error)

GetNotificationsContext returns all configured notifications.

func (*Readarr) GetQualityProfiles

func (r *Readarr) GetQualityProfiles() ([]*QualityProfile, error)

GetQualityProfiles returns the quality profiles.

func (*Readarr) GetQualityProfilesContext added in v0.13.0

func (r *Readarr) GetQualityProfilesContext(ctx context.Context) ([]*QualityProfile, error)

GetQualityProfilesContext returns the quality profiles.

func (*Readarr) GetQueue

func (r *Readarr) GetQueue(records, perPage int) (*Queue, error)

GetQueue returns a single page from the Readarr Queue (processing, but not yet imported). If you need control over the page, use readarr.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 (*Readarr) GetQueueContext added in v0.13.0

func (r *Readarr) GetQueueContext(ctx context.Context, records, perPage int) (*Queue, error)

GetQueueContext returns a single page from the Readarr Queue (processing, but not yet imported). If you need control over the page, use readarr.GetQueuePageContext().

func (*Readarr) GetQueuePage added in v0.12.0

func (r *Readarr) GetQueuePage(params *starr.PageReq) (*Queue, error)

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

func (*Readarr) GetQueuePageContext added in v0.13.0

func (r *Readarr) GetQueuePageContext(ctx context.Context, params *starr.PageReq) (*Queue, error)

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

func (*Readarr) GetRemotePathMapping added in v1.0.0

func (r *Readarr) GetRemotePathMapping(mappingID int64) (*starr.RemotePathMapping, error)

GetRemotePathMapping returns a single remote path mapping.

func (*Readarr) GetRemotePathMappingContext added in v1.0.0

func (r *Readarr) GetRemotePathMappingContext(ctx context.Context, mappingID int64) (*starr.RemotePathMapping, error)

GetRemotePathMappingContext returns a single remote path mapping.

func (*Readarr) GetRemotePathMappings added in v1.0.0

func (r *Readarr) GetRemotePathMappings() ([]*starr.RemotePathMapping, error)

GetRemotePathMappings returns all configured remote path mappings.

func (*Readarr) GetRemotePathMappingsContext added in v1.0.0

func (r *Readarr) GetRemotePathMappingsContext(ctx context.Context) ([]*starr.RemotePathMapping, error)

GetRemotePathMappingsContext returns all configured remote path mappings.

func (*Readarr) GetRootFolders

func (r *Readarr) GetRootFolders() ([]*RootFolder, error)

GetRootFolders returns all configured root folders.

func (*Readarr) GetRootFoldersContext added in v0.13.0

func (r *Readarr) GetRootFoldersContext(ctx context.Context) ([]*RootFolder, error)

GetRootFoldersContext returns all configured root folders.

func (*Readarr) GetSystemStatus

func (r *Readarr) GetSystemStatus() (*SystemStatus, error)

GetSystemStatus returns system status.

func (*Readarr) GetSystemStatusContext added in v0.13.0

func (r *Readarr) GetSystemStatusContext(ctx context.Context) (*SystemStatus, error)

GetSystemStatusContext returns system status.

func (*Readarr) GetTag added in v0.14.0

func (r *Readarr) GetTag(tagID int) (*starr.Tag, error)

GetTag returns a single tag.

func (*Readarr) GetTagContext added in v0.14.0

func (r *Readarr) GetTagContext(ctx context.Context, tagID int) (*starr.Tag, error)

GetTagContext returns a single tag.

func (*Readarr) GetTags

func (r *Readarr) GetTags() ([]*starr.Tag, error)

GetTags returns all configured tags.

func (*Readarr) GetTagsContext added in v0.13.0

func (r *Readarr) GetTagsContext(ctx context.Context) ([]*starr.Tag, error)

GetTagsContext returns all configured tags.

func (*Readarr) Lookup added in v0.12.0

func (r *Readarr) Lookup(term string) ([]*Book, error)

Lookup will search for books matching the specified search term.

func (*Readarr) LookupContext added in v0.13.0

func (r *Readarr) LookupContext(ctx context.Context, term string) ([]*Book, error)

LookupContext will search for books matching the specified search term.

func (*Readarr) ManualImport added in v1.0.0

func (r *Readarr) ManualImport(params *ManualImportParams) (*ManualImportOutput, error)

ManualImport initiates a manual import (GET).

func (*Readarr) ManualImportContext added in v1.0.0

func (r *Readarr) ManualImportContext(ctx context.Context, params *ManualImportParams) (*ManualImportOutput, error)

ManualImportContext initiates a manual import (GET).

func (*Readarr) ManualImportReprocess added in v1.0.0

func (r *Readarr) ManualImportReprocess(manualimport *ManualImportInput) error

ManualImportReprocess reprocesses a manual import (POST).

func (*Readarr) ManualImportReprocessContext added in v1.0.0

func (r *Readarr) ManualImportReprocessContext(ctx context.Context, manualimport *ManualImportInput) error

ManualImportReprocessContext reprocesses a manual import (POST).

func (*Readarr) QueueGrab added in v1.0.0

func (r *Readarr) QueueGrab(ids ...int64) error

QueueGrab tells the app to grab an item that's in queue. Most often used on items with a delay set from a delay profile.

func (*Readarr) QueueGrabContext added in v1.0.0

func (r *Readarr) QueueGrabContext(ctx context.Context, ids ...int64) error

QueueGrabContext tells the app to grab an item that's in queue, probably set to a delay. Most often used on items with a delay set from a delay profile.

func (*Readarr) SendCommand added in v0.9.10

func (r *Readarr) SendCommand(cmd *CommandRequest) (*CommandResponse, error)

SendCommand sends a command to Readarr.

func (*Readarr) SendCommandContext added in v0.13.0

func (r *Readarr) SendCommandContext(ctx context.Context, cmd *CommandRequest) (*CommandResponse, error)

SendCommandContext sends a command to Readarr.

func (*Readarr) TestDownloadClient added in v1.0.0

func (r *Readarr) TestDownloadClient(client *DownloadClientInput) error

TestDownloadClient tests a download client.

func (*Readarr) TestDownloadClientContext added in v1.0.0

func (r *Readarr) TestDownloadClientContext(ctx context.Context, client *DownloadClientInput) error

TestDownloadClientContext tests a download client.

func (*Readarr) TestImportList added in v1.0.0

func (r *Readarr) TestImportList(list *ImportListInput) error

TestImportList tests an import list.

func (*Readarr) TestImportListContextt added in v1.0.0

func (r *Readarr) TestImportListContextt(ctx context.Context, list *ImportListInput) error

TestImportListContextt tests an import list.

func (*Readarr) TestIndexer added in v1.0.0

func (r *Readarr) TestIndexer(indexer *IndexerInput) error

TestIndexer tests an indexer.

func (*Readarr) TestIndexerContext added in v1.0.0

func (r *Readarr) TestIndexerContext(ctx context.Context, indexer *IndexerInput) error

TestIndexerContext tests an indexer.

func (*Readarr) UpdateAuthor

func (r *Readarr) UpdateAuthor(author *Author, moveFiles bool) (*Author, error)

UpdateAuthor updates an author in place.

func (*Readarr) UpdateAuthorContext added in v0.13.0

func (r *Readarr) UpdateAuthorContext(ctx context.Context, author *Author, moveFiles bool) (*Author, error)

UpdateAuthorContext updates an author in place.

func (*Readarr) UpdateBook

func (r *Readarr) UpdateBook(bookID int64, book *Book, moveFiles bool) error

UpdateBook updates a book in place.

func (*Readarr) UpdateBookContext added in v0.13.0

func (r *Readarr) UpdateBookContext(ctx context.Context, bookID int64, book *Book, moveFiles bool) error

UpdateBookContext updates a book in place.

func (*Readarr) UpdateBookFile added in v1.0.0

func (r *Readarr) UpdateBookFile(bookFile *BookFile) (*BookFile, error)

UpdateBookFile updates a book file.

func (*Readarr) UpdateBookFileContext added in v1.0.0

func (r *Readarr) UpdateBookFileContext(ctx context.Context, bookFile *BookFile) (*BookFile, error)

UpdateBookFileContext updates a book file.

func (*Readarr) UpdateDownloadClient added in v1.0.0

func (r *Readarr) UpdateDownloadClient(downloadclient *DownloadClientInput, force bool) (*DownloadClientOutput, error)

UpdateDownloadClient updates the download client.

func (*Readarr) UpdateDownloadClientConfig added in v1.0.0

func (r *Readarr) UpdateDownloadClientConfig(downloadConfig *DownloadClientConfig) (*DownloadClientConfig, error)

UpdateDownloadClientConfig update the single download client config.

func (*Readarr) UpdateDownloadClientConfigContext added in v1.0.0

func (r *Readarr) UpdateDownloadClientConfigContext(ctx context.Context,
	config *DownloadClientConfig,
) (*DownloadClientConfig, error)

UpdateDownloadClientConfig update the single download client config.

func (*Readarr) UpdateDownloadClientContext added in v1.0.0

func (r *Readarr) UpdateDownloadClientContext(ctx context.Context,
	client *DownloadClientInput,
	force bool,
) (*DownloadClientOutput, error)

UpdateDownloadClientContext updates the download client.

func (*Readarr) UpdateExclusion added in v1.0.0

func (r *Readarr) UpdateExclusion(exclusion *Exclusion) (*Exclusion, error)

UpdateExclusion changes an exclusions in Readarr.

func (*Readarr) UpdateExclusionContext added in v1.0.0

func (r *Readarr) UpdateExclusionContext(ctx context.Context, exclusion *Exclusion) (*Exclusion, error)

UpdateExclusionContext changes an exclusions in Readarr.

func (*Readarr) UpdateImportList added in v1.0.0

func (r *Readarr) UpdateImportList(importList *ImportListInput, force bool) (*ImportListOutput, error)

UpdateImportList updates the import list.

func (*Readarr) UpdateImportListContext added in v1.0.0

func (r *Readarr) UpdateImportListContext(
	ctx context.Context,
	importList *ImportListInput,
	force bool,
) (*ImportListOutput, error)

UpdateImportListContext updates the import list.

func (*Readarr) UpdateIndexer added in v1.0.0

func (r *Readarr) UpdateIndexer(indexer *IndexerInput, force bool) (*IndexerOutput, error)

UpdateIndexer updates the indexer.

func (*Readarr) UpdateIndexerConfig added in v1.0.0

func (r *Readarr) UpdateIndexerConfig(indexerConfig *IndexerConfig) (*IndexerConfig, error)

UpdateIndexerConfig update the single indexerConfig.

func (*Readarr) UpdateIndexerConfigContext added in v1.0.0

func (r *Readarr) UpdateIndexerConfigContext(ctx context.Context, config *IndexerConfig) (*IndexerConfig, error)

UpdateIndexerConfigContext update the single indexerConfig.

func (*Readarr) UpdateIndexerContext added in v1.0.0

func (r *Readarr) UpdateIndexerContext(ctx context.Context, indexer *IndexerInput, force bool) (*IndexerOutput, error)

UpdateIndexerContext updates the indexer.

func (*Readarr) UpdateNotification added in v1.0.0

func (r *Readarr) UpdateNotification(notification *NotificationInput) (*NotificationOutput, error)

UpdateNotification updates the notification.

func (*Readarr) UpdateNotificationContext added in v1.0.0

func (r *Readarr) UpdateNotificationContext(ctx context.Context,
	client *NotificationInput,
) (*NotificationOutput, error)

UpdateNotificationContext updates the notification.

func (*Readarr) UpdateQualityProfile added in v0.9.11

func (r *Readarr) UpdateQualityProfile(profile *QualityProfile) (*QualityProfile, error)

UpdateQualityProfile updates a quality profile in place.

func (*Readarr) UpdateQualityProfileContext added in v0.13.0

func (r *Readarr) UpdateQualityProfileContext(ctx context.Context, profile *QualityProfile) (*QualityProfile, error)

UpdateQualityProfileContext updates a quality profile in place.

func (*Readarr) UpdateRemotePathMapping added in v1.0.0

func (r *Readarr) UpdateRemotePathMapping(mapping *starr.RemotePathMapping) (*starr.RemotePathMapping, error)

UpdateRemotePathMapping updates the remote path mapping.

func (*Readarr) UpdateRemotePathMappingContext added in v1.0.0

func (r *Readarr) UpdateRemotePathMappingContext(ctx context.Context,
	mapping *starr.RemotePathMapping,
) (*starr.RemotePathMapping, error)

UpdateRemotePathMappingContext updates the remote path mapping.

func (*Readarr) UpdateTag

func (r *Readarr) UpdateTag(tag *starr.Tag) (*starr.Tag, error)

UpdateTag updates a tag.

func (*Readarr) UpdateTagContext added in v0.13.0

func (r *Readarr) UpdateTagContext(ctx context.Context, tag *starr.Tag) (*starr.Tag, error)

UpdateTagContext updates a tag.

type Rejection added in v1.0.0

type Rejection struct {
	Reason string `json:"reason"`
	// permanent or temporary
	Type string `json:"type"`
}

Rejection is part of the manual import payload.

type RootFolder

type RootFolder struct {
	ID                       int64  `json:"id"`
	Name                     string `json:"name"`
	Path                     string `json:"path"`
	DefaultMetadataProfileID int64  `json:"defaultMetadataProfileId"`
	DefaultQualityProfileID  int64  `json:"defaultQualityProfileId"`
	DefaultMonitorOption     string `json:"defaultMonitorOption"`
	DefaultTags              []int  `json:"defaultTags"`
	Port                     int    `json:"port"`
	OutputProfile            string `json:"outputProfile"`
	UseSsl                   bool   `json:"useSsl"`
	Accessible               bool   `json:"accessible"`
	IsCalibreLibrary         bool   `json:"isCalibreLibrary"`
	FreeSpace                int64  `json:"freeSpace"`
	TotalSpace               int64  `json:"totalSpace"`
}

RootFolder is the /api/v1/rootfolder endpoint.

type Statistics

type Statistics struct {
	BookCount          int     `json:"bookCount"`
	BookFileCount      int     `json:"bookFileCount"`
	TotalBookCount     int     `json:"totalBookCount"`
	SizeOnDisk         int     `json:"sizeOnDisk"`
	PercentOfBooks     float64 `json:"percentOfBooks"`
	AvailableBookCount int     `json:"availableBookCount"`
}

Statistics for a Book, or maybe an author.

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"`
	DatabaseType           string    `json:"databaseType"`
	DatabaseVersion        string    `json:"databaseVersion"`
	InstanceName           string    `json:"instanceName"`
	IsAdmin                bool      `json:"isAdmin"`
	IsDebug                bool      `json:"isDebug"`
	IsDocker               bool      `json:"isDocker"`
	IsLinux                bool      `json:"isLinux"`
	IsMono                 bool      `json:"isMono"`
	IsNetCore              bool      `json:"isNetCore"`
	IsOsx                  bool      `json:"isOsx"`
	IsProduction           bool      `json:"isProduction"`
	IsUserInteractive      bool      `json:"isUserInteractive"`
	IsWindows              bool      `json:"isWindows"`
	MigrationVersion       int64     `json:"migrationVersion"`
	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"`
	StartTime              time.Time `json:"startTime"`
	StartupPath            string    `json:"startupPath"`
	URLBase                string    `json:"urlBase"`
	Version                string    `json:"version"`
}

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

Jump to

Keyboard shortcuts

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