sources

package
v0.0.0-...-c89b607 Latest Latest
Warning

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

Go to latest
Published: Oct 17, 2023 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const RadarrSource = "Radarr"
View Source
const RadarrSourceIconURL = "https://raw.githubusercontent.com/Radarr/Radarr/develop/Logo/256.png"

https://github.com/Radarr/Radarr/blob/471a34eabfe875fc7bd2976d440c09d59df2236d/src/NzbDrone.Core/Notifications/Discord/Discord.cs#LL35C22-L35C22

View Source
const SonarrIconURL = "https://raw.githubusercontent.com/Sonarr/Sonarr/develop/Logo/256.png"
View Source
const SonarrSource = "Sonarr"

Variables

This section is empty.

Functions

func NewGenericWebhook

func NewGenericWebhook(_ yaml.Node) source.Source

func NewRadarr

func NewRadarr(conf yaml.Node) source.Source

TODO: Error propagation

func NewSonarrWebhook

func NewSonarrWebhook(conf yaml.Node) source.Source

func ValidateGenericWebhookConfig

func ValidateGenericWebhookConfig(_ yaml.Node) error

func ValidateRadarrConfig

func ValidateRadarrConfig(conf yaml.Node) error

func ValidateSonarrConfig

func ValidateSonarrConfig(_ yaml.Node) error

Types

type GenericWebhook

type GenericWebhook struct{}

func (*GenericWebhook) HandleHTTP

func (g *GenericWebhook) HandleHTTP(w http.ResponseWriter, r *http.Request) (event.Event, error)

type Radarr

type Radarr struct {
	// contains filtered or unexported fields
}

func (*Radarr) HandleApplicationUpdate

func (rd *Radarr) HandleApplicationUpdate(r RadarrEvent) (event.Event, error)

func (*Radarr) HandleHTTP

func (rd *Radarr) HandleHTTP(w http.ResponseWriter, r *http.Request) (event.Event, error)

func (*Radarr) HandleHealthIssue

func (rd *Radarr) HandleHealthIssue(r RadarrEvent) (event.Event, error)

func (*Radarr) HandleMovieEvent

func (rd *Radarr) HandleMovieEvent(r RadarrEvent) (event.Event, error)

type RadarrApplicationUpdateEvent

type RadarrApplicationUpdateEvent struct {
	EventType       string `json:"eventType"`
	PreviousVersion string `json:"previousVersion"`
	NewVersion      string `json:"newVersion"`
	Message         string `json:"message"`
}

type RadarrConfig

type RadarrConfig struct {
	ApiKey string `yaml:"api-key"`
	URL    string `yaml:"url"`
}

type RadarrEvent

type RadarrEvent struct {
	DownloadClient     string             `json:"downloadClient,omitempty"`
	DownloadClientType string             `json:"downloadClientType,omitempty"`
	DownloadID         string             `json:"downloadId,omitempty"`
	IsUpgrade          bool               `json:"isUpgrade,omitempty"`
	DeleteReason       string             `json:"deleteReason,omitempty"`
	Level              string             `json:"level,omitempty"`
	Message            string             `json:"message,omitempty"`
	Type               string             `json:"type,omitempty"`
	WikiUrl            string             `json:"wikiUrl,omitempty"`
	PreviousVersion    string             `json:"previousVersion,omitempty"`
	NewVersion         string             `json:"newVersion,omitempty"`
	EventType          RadarrEventType    `json:"eventType"`
	Movie              *RadarrMovie       `json:"movie,omitempty"`
	MovieFile          *RadarrMovieFile   `json:"movieFile,omitempty"`
	RemoteMovie        *RadarrRemoteMovie `json:"remoteMovie,omitempty"`
	Release            *RadarrRelease     `json:"release,omitempty"`
	RenamedMovieFiles  []RadarrMovieFile  `json:"renamedMovieFiles,omitempty"`
	InstanceName       string             `json:"instanceName,omitempty"`
	ApplicationURL     string             `json:"applicationUrl,omitempty"`
}

func (RadarrEvent) Bind

func (e RadarrEvent) Bind(r *http.Request) error

type RadarrEventType

type RadarrEventType string
const (
	RadarrEventGrab           RadarrEventType = "Grab"
	RadarrEventDownload       RadarrEventType = "Download"
	RadarrEventRename         RadarrEventType = "Rename"
	RadarrEventAdded          RadarrEventType = "MovieAdded"
	RadarrEventFileDeleted    RadarrEventType = "MovieFileDelete"
	RadarrEventMovieDelete    RadarrEventType = "MovieDelete"
	RadarrEventHealth         RadarrEventType = "Health"
	RadarrEventHealthRestored RadarrEventType = "HealthRestored"
	RadarrEventUpdate         RadarrEventType = "ApplicationUpdate"
	RadarrEventTest           RadarrEventType = "Test"
)

func (RadarrEventType) Description

func (e RadarrEventType) Description() string

func (RadarrEventType) Event

func (e RadarrEventType) Event() event.EventType

func (RadarrEventType) MarshalJSON

func (e RadarrEventType) MarshalJSON() ([]byte, error)

func (RadarrEventType) String

func (e RadarrEventType) String() string

func (*RadarrEventType) UnmarshalJSON

func (e *RadarrEventType) UnmarshalJSON(b []byte) error

type RadarrHealthCheckEvent

type RadarrHealthCheckEvent struct {
	Type      RadarrHealthCheckType `json:"type"`
	Level     RadarrHealthLevel     `json:"level"`
	Message   string                `json:"message"`
	WikiURL   string                `json:"wikiUrl"`
	EventType string                `json:"eventType"`
}

type RadarrHealthCheckType

type RadarrHealthCheckType string
const (
	RadarrIndexerRSSCheck            RadarrHealthCheckType = "IndexerRssCheck"
	RadarrIndexerSearchCheck         RadarrHealthCheckType = "IndexerSearchCheck"
	RadarrIndexerStatusCheck         RadarrHealthCheckType = "IndexerStatusCheck"
	RadarrIndexerJackettAllCheck     RadarrHealthCheckType = "IndexerJackettAllCheck"
	RadarrIndexerLongTermStatusCheck RadarrHealthCheckType = "IndexerLongTermStatusCheck"
	RadarrDownloadClientCheck        RadarrHealthCheckType = "DownloadClientCheck"
	RadarrDownloadClientStatusCheck  RadarrHealthCheckType = "DownloadClientStatusCheck"
	RadarrImportMechanismCheck       RadarrHealthCheckType = "ImportMechanismCheck"
	RadarrRootFolderCheck            RadarrHealthCheckType = "RootFolderCheck"
	RadarrUpdateCheck                RadarrHealthCheckType = "UpdateCheck"
)

func (RadarrHealthCheckType) MarshalJSON

func (r RadarrHealthCheckType) MarshalJSON() ([]byte, error)

func (RadarrHealthCheckType) String

func (r RadarrHealthCheckType) String() string

func (*RadarrHealthCheckType) UnmarshalJSON

func (r *RadarrHealthCheckType) UnmarshalJSON(b []byte) error

type RadarrHealthLevel

type RadarrHealthLevel string
const (
	RadarrHealthOK      RadarrHealthLevel = "ok"
	RadarrHealthNotice  RadarrHealthLevel = "notice"
	RadarrHealthWarning RadarrHealthLevel = "warning"
	RadarrHealthError   RadarrHealthLevel = "error"
)

func (RadarrHealthLevel) MarshalJSON

func (r RadarrHealthLevel) MarshalJSON() ([]byte, error)

func (RadarrHealthLevel) String

func (r RadarrHealthLevel) String() string

func (*RadarrHealthLevel) UnmarshalJSON

func (r *RadarrHealthLevel) UnmarshalJSON(b []byte) error

type RadarrMediaInfo

type RadarrMediaInfo struct {
	AudioChannels         float64  `json:"audioChannels"`
	AudioCodec            string   `json:"audioCodec"`
	AudioLanguages        []string `json:"audioLanguages"`
	Height                int      `json:"height"`
	Width                 int      `json:"width"`
	Subtitles             []string `json:"subtitles"`
	VideoCodec            string   `json:"videoCodec"`
	VideoDynamicRange     string   `json:"videoDynamicRange"`
	VideoDynamicRangeType string   `json:"videoDynamicRangeType"`
}

type RadarrMovie

type RadarrMovie struct {
	ID          int64  `json:"id"`
	Title       string `json:"title"`
	Year        int    `json:"year"`
	ReleaseDate string `json:"releaseDate"`
	FolderPath  string `json:"folderPath"`
	TMDBID      int64  `json:"tmdbId"`
	IMDBID      string `json:"imdbId"`
}

type RadarrMovieFile

type RadarrMovieFile struct {
	ID             int64           `json:"id"`
	RelativePath   string          `json:"relativePath"`
	Path           string          `json:"path"`
	Quality        string          `json:"quality"`
	QualityVersion int             `json:"qualityVersion"`
	ReleaseGroup   string          `json:"releaseGroup"`
	SceneName      string          `json:"sceneName"`
	IndexerFlags   string          `json:"indexerFlags"`
	SizeBytes      int64           `json:"size"`
	DateAdded      string          `json:"dateAdded"` // TODO: Parse as DateTime
	MediaInfo      RadarrMediaInfo `json:"mediaInfo"`
}

type RadarrRelease

type RadarrRelease struct {
	Quality           string   `json:"quality"`
	QualityVersion    int64    `json:"qualityVersion"`
	ReleaseGroup      string   `json:"releaseGroup"`
	ReleaseTitle      string   `json:"releaseTitle"`
	Indexer           string   `json:"indexer"`
	SizeBytes         int64    `json:"size"`
	CustomFormatScore int64    `json:"customFormatScore"`
	CustomFormats     []string `json:"customFormats"`
}

type RadarrRemoteMovie

type RadarrRemoteMovie struct {
	Title  string `json:"title"`
	Year   int    `json:"year"`
	TMDBID int    `json:"tmdbId"`
	IMDBID string `json:"imdbId"`
}

type Readarr

type Readarr struct {
	// contains filtered or unexported fields
}

func NewReadarr

func NewReadarr(conf yaml.Node) *Readarr

func (*Readarr) HandleHTTP

func (r *Readarr) HandleHTTP(w http.ResponseWriter, req *http.Request) (event.Event, error)

type ReadarrConfig

type ReadarrConfig struct {
	ApiKey string `yaml:"api-key"`
	URL    string `yaml:"url"`
}

type ReadarrEvent

type ReadarrEvent struct {
	EventType          ReadarrEventType         `json:"eventType"`
	InstanceName       string                   `json:"instanceName"`
	Author             *ReadarrWebhookAuthor    `json:"author"`
	Book               *ReadarrWebhookBook      `json:"book"`
	Books              []ReadarrWebhookBook     `json:"books"`
	BookFile           *RedearrWebhookBookFile  `json:"bookFile"`
	BookFiles          []RedearrWebhookBookFile `json:"bookFiles"`
	DeletedFiles       []RedearrWebhookBookFile `json:"deletedFiles"`
	RenamedBookFiles   []RedearrWebhookBookFile `json:"renamedBookFiles"`
	IsUpgrade          bool                     `json:"isUpgrade"`
	Release            *ReadarrWebhookRelease   `json:"release"`
	DownloadClient     string                   `json:"downloadClient"`
	DownloadClientType string                   `json:"downloadClientType"`
	DownloadID         string                   `json:"downloadId"`

	Level   string `json:"level"`
	Message string `json:"message"`
	Type    string `json:"type"`
	WikiURL string `json:"wikiUrl"`

	PreviousVersion string `json:"previousVersion"`
	NewVersion      string `json:"newVersion"`
}

type ReadarrEventType

type ReadarrEventType string
const (
	ReadarrEventTest           ReadarrEventType = "Test"
	ReadarrEventGrabbed        ReadarrEventType = "Grab"
	ReadarrEventReleaseImport  ReadarrEventType = "ReleaseImport"
	ReadarrEventRename         ReadarrEventType = "Rename"
	ReadarrEventAuthorDelete   ReadarrEventType = "AuthorDelete"
	ReadarrEventBookDelete     ReadarrEventType = "BookDelete"
	ReadarrEventBookFileDelete ReadarrEventType = "BookFileDelete"
	ReadarrEventBookRetag      ReadarrEventType = "Retag"
	ReadarrEventHealthIssue    ReadarrEventType = "Health"
	ReadarrEventUpgrade        ReadarrEventType = "ApplicationUpdate"
)

func (ReadarrEventType) Description

func (e ReadarrEventType) Description() string

func (ReadarrEventType) Event

func (e ReadarrEventType) Event() event.EventType

func (ReadarrEventType) MarshalJSON

func (e ReadarrEventType) MarshalJSON() ([]byte, error)

func (ReadarrEventType) String

func (e ReadarrEventType) String() string

func (*ReadarrEventType) UnmarshalJSON

func (e *ReadarrEventType) UnmarshalJSON(b []byte) error

type ReadarrWebhookAuthor

type ReadarrWebhookAuthor struct {
	ID          int64  `json:"id"`
	Name        string `json:"name"`
	Path        string `json:"path"`
	GoodreadsID int64  `json:"goodreadsId"`
}

type ReadarrWebhookBook

type ReadarrWebhookBook struct {
	ID          int64                     `json:"id"`
	GoodreadsID int64                     `json:"goodreadsId"`
	Title       string                    `json:"title"`
	ReleaseDate string                    `json:"releaseDate"`
	Edition     ReadarrWebhookBookEdition `json:"edition"`
}

type ReadarrWebhookBookEdition

type ReadarrWebhookBookEdition struct {
	GoodreadsID int64  `json:"goodreadsId"`
	Title       string `json:"title"`
	ASIN        string `json:"asin"`
	ISBN13      string `json:"isbn13"`
}

type ReadarrWebhookRelease

type ReadarrWebhookRelease struct {
	Quality           string   `json:"quality"`
	QualityVersion    int      `json:"qualityVersion"`
	ReleaseGroup      string   `json:"releaseGroup"`
	ReleaseTitle      string   `json:"releaseTitle"`
	Indexer           string   `json:"indexer"`
	SizeBytes         int64    `json:"size"`
	CustomFormats     []string `json:"customFormats"`
	CustomFormatScore int      `json:"customFormatScore"`
}

type RedearrWebhookBookFile

type RedearrWebhookBookFile struct {
	ID             int64  `json:"id"`
	Path           string `json:"path"`
	Quality        string `json:"quality"`
	QualityVersion int    `json:"qualityVersion"`
	ReleaseGroup   string `json:"releaseGroup"`
	SceneName      string `json:"sceneName"`
	SizeBytes      int64  `json:"size"`
	DateAdded      string `json:"dateAdded"`
}

type Sonarr

type Sonarr struct {
	// contains filtered or unexported fields
}

func (*Sonarr) HandleApplicationUpdate

func (s *Sonarr) HandleApplicationUpdate(se SonarrEvent) (event.Event, error)

func (*Sonarr) HandleEpisodeEvent

func (s *Sonarr) HandleEpisodeEvent(se SonarrEvent) (event.Event, error)

func (*Sonarr) HandleHTTP

func (s *Sonarr) HandleHTTP(w http.ResponseWriter, r *http.Request) (event.Event, error)

func (*Sonarr) HandleHealthIssue

func (s *Sonarr) HandleHealthIssue(se SonarrEvent) (event.Event, error)

func (*Sonarr) HandleSeriesEvent

func (s *Sonarr) HandleSeriesEvent(se SonarrEvent) (event.Event, error)

type SonarrConfig

type SonarrConfig struct {
	ApiKey string `yaml:"api-key"`
	URL    string `yaml:"url"`
}

type SonarrCustomFormat

type SonarrCustomFormat struct {
	ID   int    `json:"id"`
	Name string `json:"name"`
}

type SonarrCustomFormatInfo

type SonarrCustomFormatInfo struct {
	CustomFormatScore int                  `json:"customFormatScore"`
	CustomFormats     []SonarrCustomFormat `json:"customFormats"`
}

type SonarrEpisodeFile

type SonarrEpisodeFile struct {
	ID             int64                      `json:"id"`
	RelativePath   string                     `json:"relativePath"`
	Path           string                     `json:"path"`
	Quality        string                     `json:"quality"`
	QualityVersion int                        `json:"qualityVersion"`
	ReleaseGroup   string                     `json:"releaseGroup"`
	SceneName      string                     `json:"sceneName"`
	Size           int64                      `json:"size"`
	DateAdded      string                     `json:"dateAdded"`
	MediaInfo      SonarrWebhookFileMediaInfo `json:"mediaInfo"`
}

type SonarrEvent

type SonarrEvent struct {
	EventType           SonarrEventType         `json:"eventType"`
	InstanceName        string                  `json:"instanceName"`
	ApplicationURL      string                  `json:"applicationUrl"`
	Series              *SonarrWebhookSeries    `json:"series"`
	Episodes            []SonarrWebhookEpisode  `json:"episodes"`
	EpisodeFile         *SonarrEpisodeFile      `json:"episodeFile"`
	DownloadClient      string                  `json:"downloadClient"`
	DownloadClientType  string                  `json:"downloadClientType"`
	DownloadID          string                  `json:"downloadId"`
	CustomFormatInfo    *SonarrCustomFormatInfo `json:"customFormatInfo"`
	IsUpgrade           bool                    `json:"isUpgrade"`
	DeletedFiles        []SonarrEpisodeFile     `json:"deletedFiles"`
	DeleteReason        string                  `json:"deleteReason"`
	RenamedEpisodeFiles []SonarrEpisodeFile     `json:"renamedEpisodeFiles"`

	Level   string `json:"level"`
	Type    string `json:"type"`
	Message string `json:"message"`
	WikiURL string `json:"wikiUrl"`

	PreviousVersion string `json:"previousVersion"`
	NewVersion      string `json:"newVersion"`
}

func (SonarrEvent) Bind

func (se SonarrEvent) Bind(r *http.Request) error

type SonarrEventType

type SonarrEventType string
const (
	SonarrEventGrab              SonarrEventType = "Grab"
	SonarrEventDownload          SonarrEventType = "Download"
	SonarrEventRename            SonarrEventType = "Rename"
	SonarrEventSeriesAdd         SonarrEventType = "SeriesAdd"
	SonarrEventSeriesDelete      SonarrEventType = "SeriesDelete"
	SonarrEventEpisodeFileDelete SonarrEventType = "EpisodeFileDelete"
	SonarrEventTest              SonarrEventType = "Test"
	SonarrEventHealth            SonarrEventType = "Health"
	SonarrEventHealthRestored    SonarrEventType = "HealthRestored"
	SonarrEventUpgrade           SonarrEventType = "Upgrade"
	SonarrEventUnknown           SonarrEventType = "Unknown"
)

func (SonarrEventType) Description

func (se SonarrEventType) Description() string

func (SonarrEventType) Event

func (se SonarrEventType) Event() event.EventType

func (SonarrEventType) String

func (se SonarrEventType) String() string

type SonarrRelease

type SonarrRelease struct {
	Quality           string   `json:"quality"`
	QualityVersion    int      `json:"qualityVersion"`
	ReleaseGroup      string   `json:"releaseGroup"`
	ReleaseTitle      string   `json:"releaseTitle"`
	Indexer           string   `json:"indexer"`
	SizeBytes         int      `json:"size"`
	CustomFormatScore int      `json:"customFormatScore"`
	CustomFormats     []string `json:"customFormats"`
}

type SonarrWebhookEpisode

type SonarrWebhookEpisode struct {
	ID            int64  `json:"id"`
	SeasonNumber  int    `json:"seasonNumber"`
	EpisodeNumber int    `json:"episodeNumber"`
	Title         string `json:"title"`
	Overview      string `json:"overview"`
	AirDate       string `json:"airDate"`
	AirDateUTC    string `json:"airDateUtc"`
	SeriesID      int    `json:"seriesId"`
}

type SonarrWebhookFileMediaInfo

type SonarrWebhookFileMediaInfo struct {
	AudioChannels         float64  `json:"audioChannels"`
	AudioCodec            string   `json:"audioCodec"`
	AudioLanguages        []string `json:"audioLanguages"`
	Height                int      `json:"height"`
	Width                 int      `json:"width"`
	Subtitles             []string `json:"subtitles"`
	VideoCodec            string   `json:"videoCodec"`
	VideoDynamicRange     string   `json:"videoDynamicRange"`
	VideoDynamicRangeType string   `json:"videoDynamicRangeType"`
}

type SonarrWebhookSeries

type SonarrWebhookSeries struct {
	ID         int64  `json:"id"`
	Title      string `json:"title"`
	TitleSlug  string `json:"titleSlug"`
	Path       string `json:"path"`
	TVDBID     int    `json:"tvdbId"`
	TVMazeID   int    `json:"tvMazeId"`
	IMDBID     string `json:"imdbId"`
	SeriesType string `json:"seriesType"`
	Year       int    `json:"year"`
}

Jump to

Keyboard shortcuts

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