Documentation ¶
Index ¶
- type AddAuthorOptions
- type AddBookAuthor
- type AddBookEdition
- type AddBookInput
- type AddBookOptions
- type AddBookOutput
- type Author
- type AuthorBook
- type Book
- type BookAuthor
- type CommandRequest
- type CommandResponse
- type Edition
- type History
- type HistoryRecord
- type MetadataProfile
- type QualityProfile
- type Queue
- type QueueRecord
- type Readarr
- func (r *Readarr) AddBook(book *AddBookInput) (*AddBookOutput, error)
- func (r *Readarr) AddQualityProfile(profile *QualityProfile) (int64, error)
- func (r *Readarr) AddTag(label string) (int, error)
- func (r *Readarr) GetAuthorByID(authorID int64) (*Author, error)
- func (r *Readarr) GetBook(gridID string) ([]*Book, error)
- func (r *Readarr) GetBookByID(bookID int64) (*Book, error)
- func (r *Readarr) GetCommands() ([]*CommandResponse, error)
- func (r *Readarr) GetHistory(maxRecords int) (*History, error)
- func (r *Readarr) GetMetadataProfiles() ([]*MetadataProfile, error)
- func (r *Readarr) GetQualityProfiles() ([]*QualityProfile, error)
- func (r *Readarr) GetQueue(maxRecords int) (*Queue, error)
- func (r *Readarr) GetRootFolders() ([]*RootFolder, error)
- func (r *Readarr) GetSystemStatus() (*SystemStatus, error)
- func (r *Readarr) GetTags() ([]*starr.Tag, error)
- func (r *Readarr) SendCommand(cmd *CommandRequest) (*CommandResponse, error)
- func (r *Readarr) UpdateAuthor(authorID int64, author *Author) error
- func (r *Readarr) UpdateBook(bookID int64, book *Book) error
- func (r *Readarr) UpdateQualityProfile(profile *QualityProfile) error
- func (r *Readarr) UpdateTag(tagID int, label string) (int, error)
- type RootFolder
- type Statistics
- type SystemStatus
Constants ¶
This section is empty.
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 AddOptions *AddAuthorOptions `json:"addOptions"` }
AddBookAuthor is part of AddBookInput.
type AddBookEdition ¶
type AddBookEdition struct { Title string `json:"title"` // Edition Title TitleSlug interface{} `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 AddBookOutput ¶
type AddBookOutput struct { ID int64 `json:"id"` AuthorID int64 `json:"authorId"` PageCount int `json:"pageCount"` Title string `json:"title"` SeriesTitle string `json:"seriesTitle"` Overview string `json:"overview"` ForeignBookID string `json:"foreignBookId"` TitleSlug string `json:"titleSlug"` Ratings *starr.Ratings `json:"ratings"` ReleaseDate time.Time `json:"releaseDate"` Genres []interface{} `json:"genres"` Author *BookAuthor `json:"author"` Images []*starr.Image `json:"images"` Links []*starr.Link `json:"links"` Statistics *Statistics `json:"statistics"` Editions []*Edition `json:"editions"` Monitored bool `json:"monitored"` AnyEditionOk bool `json:"anyEditionOk"` }
AddBookOutput is returned when a book is added.
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 []interface{} `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"` }
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 []interface{} `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.
type Book ¶
type Book struct { Title string `json:"title"` SeriesTitle string `json:"seriesTitle"` Overview string `json:"overview"` AuthorID int64 `json:"authorId"` ForeignBookID string `json:"foreignBookId"` TitleSlug string `json:"titleSlug"` Monitored bool `json:"monitored"` AnyEditionOk bool `json:"anyEditionOk"` Ratings *starr.Ratings `json:"ratings"` ReleaseDate time.Time `json:"releaseDate"` PageCount int `json:"pageCount"` Genres []interface{} `json:"genres"` Author *BookAuthor `json:"author,omitempty"` Images []*starr.Image `json:"images"` Links []*starr.Link `json:"links"` Statistics *Statistics `json:"statistics,omitempty"` Editions []*Edition `json:"editions"` ID int64 `json:"id"` Disambiguation string `json:"disambiguation,omitempty"` }
Book is the /api/v1/book endpoint.
type BookAuthor ¶
type BookAuthor struct { ID int64 `json:"id"` Status string `json:"status"` AuthorName string `json:"authorName"` ForeignAuthorID string `json:"foreignAuthorId"` TitleSlug string `json:"titleSlug"` Overview string `json:"overview"` Links []*starr.Link `json:"links"` Images []*starr.Image `json:"images"` Path string `json:"path"` QualityProfileID int64 `json:"qualityProfileId"` MetadataProfileID int64 `json:"metadataProfileId"` Genres []interface{} `json:"genres"` CleanName string `json:"cleanName"` SortName string `json:"sortName"` Tags []int `json:"tags"` Added time.Time `json:"added"` Ratings *starr.Ratings `json:"ratings"` Statistics *Statistics `json:"statistics"` Monitored bool `json:"monitored"` Ended bool `json:"ended"` }
BookAuthor of a Book.
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 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 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 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 QualityProfile ¶
type QualityProfile struct { Name string `json:"name"` UpgradeAllowed bool `json:"upgradeAllowed"` Cutoff int64 `json:"cutoff"` Qualities []*starr.Quality `json:"items"` ID int64 `json:"id"` }
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 ¶
Readarr contains all the methods to interact with a Readarr server.
func (*Readarr) AddBook ¶
func (r *Readarr) AddBook(book *AddBookInput) (*AddBookOutput, error)
AddBook adds a new book to the library.
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) GetAuthorByID ¶
GetAuthorByID returns an author.
func (*Readarr) GetBookByID ¶
GetBookByID returns a book.
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) GetHistory ¶ added in v0.10.6
GetHistory returns the last few items from the history endpoint.
func (*Readarr) GetMetadataProfiles ¶
func (r *Readarr) GetMetadataProfiles() ([]*MetadataProfile, error)
GetMetadataProfiles returns the metadata profiles.
func (*Readarr) GetQualityProfiles ¶
func (r *Readarr) GetQualityProfiles() ([]*QualityProfile, error)
GetQualityProfiles returns the quality profiles.
func (*Readarr) GetRootFolders ¶
func (r *Readarr) GetRootFolders() ([]*RootFolder, error)
GetRootFolders returns all configured root folders.
func (*Readarr) GetSystemStatus ¶
func (r *Readarr) GetSystemStatus() (*SystemStatus, error)
GetSystemStatus returns system status.
func (*Readarr) SendCommand ¶ added in v0.9.10
func (r *Readarr) SendCommand(cmd *CommandRequest) (*CommandResponse, error)
SendCommand sends a command to Readarr.
func (*Readarr) UpdateAuthor ¶
UpdateAuthor updates an author in place.
func (*Readarr) UpdateBook ¶
UpdateBook updates a book in place.
func (*Readarr) UpdateQualityProfile ¶ added in v0.9.11
func (r *Readarr) UpdateQualityProfile(profile *QualityProfile) error
UpdateQualityProfile updates a quality profile in place.
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"` }
Statistics for a Book, or maybe an author.
type SystemStatus ¶
type SystemStatus struct { Version string `json:"version"` BuildTime time.Time `json:"buildTime"` IsDebug bool `json:"isDebug"` IsProduction bool `json:"isProduction"` IsAdmin bool `json:"isAdmin"` IsUserInteractive bool `json:"isUserInteractive"` StartupPath string `json:"startupPath"` AppData string `json:"appData"` OsName string `json:"osName"` OsVersion string `json:"osVersion"` IsNetCore bool `json:"isNetCore"` IsMono bool `json:"isMono"` IsLinux bool `json:"isLinux"` IsOsx bool `json:"isOsx"` IsWindows bool `json:"isWindows"` IsDocker bool `json:"isDocker"` Mode string `json:"mode"` Branch string `json:"branch"` Authentication string `json:"authentication"` SqliteVersion string `json:"sqliteVersion"` MigrationVersion int `json:"migrationVersion"` URLBase string `json:"urlBase"` RuntimeVersion string `json:"runtimeVersion"` RuntimeName string `json:"runtimeName"` StartTime time.Time `json:"startTime"` PackageVersion string `json:"packageVersion"` PackageAuthor string `json:"packageAuthor"` PackageUpdateMechanism string `json:"packageUpdateMechanism"` }
SystemStatus is the /api/v1/system/status endpoint.