Documentation ¶
Index ¶
- type AddAlbumInput
- type AddAlbumInputRelease
- type Album
- type AlbumAddOptions
- type AlbumType
- type Artist
- type ArtistAddOptions
- type CommandRequest
- type CommandResponse
- type History
- type HistoryRecord
- type Lidarr
- func (l *Lidarr) AddAlbum(album *AddAlbumInput) (*Album, error)
- func (l *Lidarr) AddArtist(artist *Artist) (*Artist, error)
- func (l *Lidarr) AddQualityProfile(profile *QualityProfile) (int64, error)
- func (l *Lidarr) AddTag(label string) (int, error)
- func (l *Lidarr) Fail(historyID int64) error
- func (l *Lidarr) GetAlbum(mbID string) ([]*Album, error)
- func (l *Lidarr) GetAlbumByID(albumID int64) (*Album, error)
- func (l *Lidarr) GetArtist(mbID string) ([]*Artist, error)
- func (l *Lidarr) GetArtistByID(artistID int64) (*Artist, error)
- func (l *Lidarr) GetBackupFiles() ([]*starr.BackupFile, error)
- func (l *Lidarr) GetCommands() ([]*CommandResponse, error)
- func (l *Lidarr) GetHistory(records, perPage int) (*History, error)
- func (l *Lidarr) GetHistoryPage(params *starr.Req) (*History, error)
- func (l *Lidarr) GetMetadataProfiles() ([]*MetadataProfile, error)
- func (l *Lidarr) GetQualityDefinition() ([]*QualityDefinition, error)
- func (l *Lidarr) GetQualityProfiles() ([]*QualityProfile, error)
- func (l *Lidarr) GetQueue(records, perPage int) (*Queue, error)
- func (l *Lidarr) GetQueuePage(params *starr.Req) (*Queue, error)
- func (l *Lidarr) GetRootFolders() ([]*RootFolder, error)
- func (l *Lidarr) GetSystemStatus() (*SystemStatus, error)
- func (l *Lidarr) GetTags() ([]*starr.Tag, error)
- func (l *Lidarr) Lookup(term string) ([]*Album, error)
- func (l *Lidarr) SendCommand(cmd *CommandRequest) (*CommandResponse, error)
- func (l *Lidarr) UpdateAlbum(albumID int64, album *Album) (*Album, error)
- func (l *Lidarr) UpdateArtist(artist *Artist) (*Artist, error)
- func (l *Lidarr) UpdateQualityProfile(profile *QualityProfile) error
- func (l *Lidarr) UpdateTag(tagID int, label string) (int, error)
- type Media
- type MetadataProfile
- type QualityDefinition
- type QualityProfile
- type Queue
- type QueueRecord
- type Release
- type ReleaseStatus
- type RootFolder
- type Statistics
- type SystemStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddAlbumInput ¶
type AddAlbumInput struct { ForeignAlbumID string `json:"foreignAlbumId"` Monitored bool `json:"monitored"` Releases []*AddAlbumInputRelease `json:"releases"` AddOptions *AlbumAddOptions `json:"addOptions"` Artist *Artist `json:"artist"` }
AddAlbumInput is currently unknown.
type AddAlbumInputRelease ¶
type AddAlbumInputRelease struct { ForeignReleaseID string `json:"foreignReleaseId"` Title string `json:"title"` Media []*Media `json:"media"` Monitored bool `json:"monitored"` }
AddAlbumInputRelease is part of AddAlbumInput.
type Album ¶
type Album struct { ID int64 `json:"id,omitempty"` Title string `json:"title"` Disambiguation string `json:"disambiguation"` Overview string `json:"overview"` ArtistID int64 `json:"artistId"` ForeignAlbumID string `json:"foreignAlbumId"` ProfileID int64 `json:"profileId"` Duration int `json:"duration"` AlbumType string `json:"albumType"` SecondaryTypes []interface{} `json:"secondaryTypes"` MediumCount int `json:"mediumCount"` Ratings *starr.Ratings `json:"ratings"` ReleaseDate time.Time `json:"releaseDate"` Releases []*Release `json:"releases"` Genres []interface{} `json:"genres"` Media []*Media `json:"media"` Artist *Artist `json:"artist"` Links []*starr.Link `json:"links"` Images []*starr.Image `json:"images"` Statistics *Statistics `json:"statistics"` RemoteCover string `json:"remoteCover,omitempty"` AddOptions *AlbumAddOptions `json:"addOptions,omitempty"` Monitored bool `json:"monitored"` AnyReleaseOk bool `json:"anyReleaseOk"` Grabbed bool `json:"grabbed"` }
Album is the /api/v1/album endpoint.
type AlbumAddOptions ¶
type AlbumAddOptions struct {
SearchForNewAlbum bool `json:"searchForNewAlbum,omitempty"`
}
AlbumAddOptions is part of an Album.
type Artist ¶
type Artist struct { ID int64 `json:"id"` Status string `json:"status,omitempty"` LastInfoSync time.Time `json:"lastInfoSync,omitempty"` ArtistName string `json:"artistName,omitempty"` ForeignArtistID string `json:"foreignArtistId,omitempty"` TadbID int64 `json:"tadbId,omitempty"` DiscogsID int64 `json:"discogsId,omitempty"` QualityProfileID int64 `json:"qualityProfileId,omitempty"` MetadataProfileID int64 `json:"metadataProfileId,omitempty"` Overview string `json:"overview,omitempty"` ArtistType string `json:"artistType,omitempty"` Disambiguation string `json:"disambiguation,omitempty"` RootFolderPath string `json:"rootFolderPath,omitempty"` Path string `json:"path,omitempty"` CleanName string `json:"cleanName,omitempty"` SortName string `json:"sortName,omitempty"` Links []*starr.Link `json:"links,omitempty"` Images []*starr.Image `json:"images,omitempty"` Genres []string `json:"genres,omitempty"` Tags []int `json:"tags,omitempty"` Added time.Time `json:"added,omitempty"` Ratings *starr.Ratings `json:"ratings,omitempty"` Statistics *Statistics `json:"statistics,omitempty"` LastAlbum *Album `json:"lastAlbum,omitempty"` NextAlbum *Album `json:"nextAlbum,omitempty"` AddOptions *ArtistAddOptions `json:"addOptions,omitempty"` AlbumFolder bool `json:"albumFolder,omitempty"` Monitored bool `json:"monitored"` Ended bool `json:"ended,omitempty"` }
Artist represents the /api/v1/artist endpoint, and it's part of an Album.
type ArtistAddOptions ¶
type ArtistAddOptions struct { Monitor string `json:"monitor,omitempty"` Monitored bool `json:"monitored,omitempty"` SearchForMissingAlbums bool `json:"searchForMissingAlbums,omitempty"` }
ArtistAddOptions is part of an artist and an album.
type CommandRequest ¶ added in v0.9.10
type CommandRequest struct { Name string `json:"name"` AlbumIDs []int64 `json:"albumIds,omitempty"` AlbumID int64 `json:"albumId,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 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 represents the /api/v1/history endpoint.
type HistoryRecord ¶ added in v0.10.6
type HistoryRecord struct { ID int64 `json:"id"` AlbumID int64 `json:"albumId"` ArtistID int64 `json:"artistId"` TrackID int64 `json:"trackId"` 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 Lidarr ¶
Lidarr contains all the methods to interact with a Lidarr server.
func (*Lidarr) AddAlbum ¶
func (l *Lidarr) AddAlbum(album *AddAlbumInput) (*Album, error)
AddAlbum adds a new album to Lidarr, and probably does not yet work.
func (*Lidarr) AddQualityProfile ¶ added in v0.9.11
func (l *Lidarr) AddQualityProfile(profile *QualityProfile) (int64, error)
AddQualityProfile updates a quality profile in place.
func (*Lidarr) GetAlbum ¶
GetAlbum returns an album or all albums if mbID is "" (empty). mbID is the music brainz UUID for a "release-group".
func (*Lidarr) GetAlbumByID ¶
GetAlbumByID returns an album by DB ID.
func (*Lidarr) GetArtistByID ¶
GetArtistByID returns an artist from an ID.
func (*Lidarr) GetBackupFiles ¶ added in v0.12.0
func (l *Lidarr) GetBackupFiles() ([]*starr.BackupFile, error)
GetBackupFiles returns all available Lidarr backup files. Use GetBody to download a file using BackupFile.Path.
func (*Lidarr) GetCommands ¶ added in v0.9.10
func (l *Lidarr) GetCommands() ([]*CommandResponse, error)
GetCommands returns all available Lidarr commands.
func (*Lidarr) GetHistory ¶ added in v0.10.6
GetHistory returns the Lidarr History (grabs/failures/completed). WARNING: 12/30/2021 - this method changed. If you need control over the page, use lidarr.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 (*Lidarr) GetHistoryPage ¶ added in v0.12.0
GetHistoryPage returns a single page from the Lidarr History (grabs/failures/completed). The page size and number is configurable with the input request parameters.
func (*Lidarr) GetMetadataProfiles ¶
func (l *Lidarr) GetMetadataProfiles() ([]*MetadataProfile, error)
GetMetadataProfiles returns the metadata profiles.
func (*Lidarr) GetQualityDefinition ¶
func (l *Lidarr) GetQualityDefinition() ([]*QualityDefinition, error)
GetQualityDefinition returns the Quality Definitions.
func (*Lidarr) GetQualityProfiles ¶
func (l *Lidarr) GetQualityProfiles() ([]*QualityProfile, error)
GetQualityProfiles returns the quality profiles.
func (*Lidarr) GetQueue ¶
GetQueue returns a single page from the Lidarr Queue (processing, but not yet imported). WARNING: 12/30/2021 - this method changed. If you need control over the page, use lidarr.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 (*Lidarr) GetQueuePage ¶ added in v0.12.0
GetQueuePage returns a single page from the Lidarr Queue. The page size and number is configurable with the input request parameters.
func (*Lidarr) GetRootFolders ¶
func (l *Lidarr) GetRootFolders() ([]*RootFolder, error)
GetRootFolders returns all configured root folders.
func (*Lidarr) GetSystemStatus ¶
func (l *Lidarr) GetSystemStatus() (*SystemStatus, error)
GetSystemStatus returns system status.
func (*Lidarr) Lookup ¶ added in v0.12.0
Lookup will search for albums matching the specified search term.
func (*Lidarr) SendCommand ¶ added in v0.9.10
func (l *Lidarr) SendCommand(cmd *CommandRequest) (*CommandResponse, error)
SendCommand sends a command to Lidarr.
func (*Lidarr) UpdateAlbum ¶
UpdateAlbum updates an album in place; the output of this is currently unknown!!!!
func (*Lidarr) UpdateArtist ¶
UpdateArtist updates an artist in place.
func (*Lidarr) UpdateQualityProfile ¶ added in v0.9.11
func (l *Lidarr) UpdateQualityProfile(profile *QualityProfile) error
UpdateQualityProfile updates a quality profile in place.
type Media ¶
type Media struct { MediumNumber int64 `json:"mediumNumber"` MediumName string `json:"mediumName"` MediumFormat string `json:"mediumFormat"` }
Media is part of an Album.
type MetadataProfile ¶
type MetadataProfile struct { Name string `json:"name"` ID int64 `json:"id"` PrimaryAlbumTypes []*AlbumType `json:"primaryAlbumTypes"` SecondaryAlbumTypes []*AlbumType `json:"secondaryAlbumTypes"` ReleaseStatuses []*ReleaseStatus `json:"releaseStatuses"` }
MetadataProfile is the /api/v1/metadataprofile endpoint.
type QualityDefinition ¶
type QualityDefinition struct { ID int64 `json:"id"` Quality *starr.Value `json:"quality"` Title string `json:"title"` Weight int64 `json:"weight"` MinSize float64 `json:"minSize"` MaxSize float64 `json:"maxSize,omitempty"` }
QualityDefinition is the /api/v1/qualitydefinition endpoint.
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"` }
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 { ArtistID int64 `json:"artistId"` AlbumID int64 `json:"albumId"` 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"` 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"` DownloadForced bool `json:"downloadForced"` ID int64 `json:"id"` ErrorMessage string `json:"errorMessage"` }
QueueRecord represents the records returns by the /api/v1/queue endpoint.
type Release ¶
type Release struct { ID int64 `json:"id"` AlbumID int64 `json:"albumId"` ForeignReleaseID string `json:"foreignReleaseId"` Title string `json:"title"` Status string `json:"status"` Duration int `json:"duration"` TrackCount int `json:"trackCount"` Media []*Media `json:"media"` MediumCount int `json:"mediumCount"` Disambiguation string `json:"disambiguation"` Country []string `json:"country"` Label []string `json:"label"` Format string `json:"format"` Monitored bool `json:"monitored"` }
Release is part of an Album.
type ReleaseStatus ¶
type ReleaseStatus struct { ReleaseStatus *starr.Value `json:"releaseStatus"` Allowed bool `json:"allowed"` }
ReleaseStatus is part of MetadataProfile.
type RootFolder ¶
type RootFolder struct { ID int64 `json:"id"` Path string `json:"path"` FreeSpace int64 `json:"freeSpace"` TotalSpace int64 `json:"totalSpace"` UnmappedFolders []*starr.Path `json:"unmappedFolders"` }
RootFolder is the /api/v1/rootfolder endpoint.
type Statistics ¶
type Statistics struct { AlbumCount int `json:"albumCount,omitempty"` TrackFileCount int `json:"trackFileCount"` TrackCount int `json:"trackCount"` TotalTrackCount int `json:"totalTrackCount"` SizeOnDisk int `json:"sizeOnDisk"` PercentOfTracks float64 `json:"percentOfTracks"` }
Statistics is part of Artist.
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"` IsMonoRuntime bool `json:"isMonoRuntime"` 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 int64 `json:"migrationVersion"` URLBase string `json:"urlBase"` RuntimeVersion string `json:"runtimeVersion"` RuntimeName string `json:"runtimeName"` StartTime time.Time `json:"startTime"` }
SystemStatus is the /api/v1/system/status endpoint.