Documentation
¶
Index ¶
- type API
- type Actor
- type Cleaner
- type Config
- type Episode
- type Fanart
- type General
- type Image
- type Indexer
- type LogoDetails
- type Media
- type MediaMetrics
- type MetricsMediaRequest
- type MovieData
- type MovieDetail
- type MovieSearch
- type Network
- type Result
- type Season
- type Server
- type Settings
- type ShowData
- type Source
- type Store
- type Tmdb
- type Transcoder
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Cleaner ¶
type Cleaner struct {
Interval int `json:"interval"`
MaxAge int `json:"max_age"`
CleanOnStart bool `json:"clean_on_start"`
}
Cleaner describes cleaner-specific parameters
type Config ¶
type Config struct {
Domain string `json:"domain"`
WebRoot string `json:"web_root"`
BaseURL string `json:"base_url"`
ImageURL string `json:"image_url"`
MediaURL string `json:"media_url"`
UseSSL bool `json:"use_ssl"`
LogPath string `json:"log_path"`
General General `json:"general"`
Store Store `json:"store"`
Sources []Source `json:"sources"`
API API `json:"api"`
Server Server `json:"server"`
Indexer Indexer `json:"indexer"`
Transcoder Transcoder `json:"transcoder"`
Cleaner Cleaner `json:"cleaner"`
}
Config represents the structure of the config.json file.
func (*Config) Extensions ¶
func (c *Config) Extensions()
Extensions compiles regular expressions for file extensions
type Episode ¶
type Episode struct {
gorm.Model
SeasonID uint `json:"season_id"`
UID string `json:"uid"`
Hash string `json:"hash"`
Name string `json:"name"`
Overview string `json:"overview" gorm:"size:1000"`
AirDate string `json:"air_date"`
SourcePath string `json:"-"`
StillPath []Image `json:"still_path"`
EpisodeNumber int `json:"episode_number"`
MediaMetrics MediaMetrics `json:"media_metrics"`
}
Episode contains data about season episodes
type Fanart ¶
type Fanart struct {
Key string `json:"key"`
}
Fanart describes the Tmdb portion of the api parameters
type General ¶
type General struct {
Name string `json:"name"`
}
General describes some general parameters
type Indexer ¶
type Indexer struct {
Interval int `json:"interval"`
Concurrency int `json:"concurrency"`
Retries int `json:"retries"`
Log bool `json:"log"`
}
Indexer describes indexer-specific parameters
type LogoDetails ¶
type LogoDetails struct {
Name string `json:"name"`
TmdbID string `json:"tmdb_id"`
ImdbID string `json:"imdb_id"`
Hdmovieclearart []struct {
ID string `json:"id"`
URL string `json:"url"`
Lang string `json:"lang"`
Likes string `json:"likes"`
} `json:"hdmovieclearart"`
Hdmovielogo []struct {
ID string `json:"id"`
URL string `json:"url"`
Lang string `json:"lang"`
Likes string `json:"likes"`
} `json:"hdmovielogo"`
Movieposter []struct {
ID string `json:"id"`
URL string `json:"url"`
Lang string `json:"lang"`
Likes string `json:"likes"`
} `json:"movieposter"`
Moviebackground []struct {
ID string `json:"id"`
URL string `json:"url"`
Lang string `json:"lang"`
Likes string `json:"likes"`
} `json:"moviebackground"`
Moviedisc []struct {
ID string `json:"id"`
URL string `json:"url"`
Lang string `json:"lang"`
Likes string `json:"likes"`
Disc string `json:"disc"`
DiscType string `json:"disc_type"`
} `json:"moviedisc"`
Moviethumb []struct {
ID string `json:"id"`
URL string `json:"url"`
Lang string `json:"lang"`
Likes string `json:"likes"`
} `json:"moviethumb"`
Movieart []struct {
ID string `json:"id"`
URL string `json:"url"`
Lang string `json:"lang"`
Likes string `json:"likes"`
} `json:"movieart"`
ID string `json:"id"`
URL string `json:"url"`
Lang string `json:"lang"`
Likes string `json:"likes"`
} `json:"moviebanner"`
Movielogo []struct {
ID string `json:"id"`
URL string `json:"url"`
Lang string `json:"lang"`
Likes string `json:"likes"`
} `json:"movielogo"`
}
type Media ¶
type Media struct {
gorm.Model `json:"-"`
WatchingID uint `json:"-"`
UID int `json:"uid"`
Hash string `json:"hash"`
ContentType string `json:"content_type"`
Title string `json:"title"`
Website string `json:"website"`
Genre string `json:"genre" gorm:"size:1000"`
Plot string `json:"plot" gorm:"size:1000"`
Images []*Image `json:"images,omitempty"`
MovieData *MovieData `json:"movie_data,omitempty" sql:"DEFAULT:NULL" gorm:"default:NULL"`
ShowData *ShowData `json:"show_data,omitempty" sql:"DEFAULT:NULL" gorm:"default:NULL"`
Categories string `json:"categories"`
CurrentlyWatched int `json:"currently_watched"`
MediaMetrics *MediaMetrics `json:"media_metrics,omitempty"`
VideoFramerate int `json:"video_framerate"`
VideoWidth int `json:"video_width"`
VideoHeight int `json:"video_height"`
}
Media is the base media model
type MediaMetrics ¶
type MediaMetrics struct {
MediaID uint `json:"media_id"`
EpisodeID uint `json:"episode_id"`
TimesWatched int `json:"times_watched"`
TimesPaused int `json:"times_paused"`
TimesExited int `json:"times_canceled"`
WatchedPercentage float64 `json:"watched_percentage"`
WatchedAtTimeAverage time.Time `json:"watched_at_time_average"`
SkipBegin string `json:"skip_begin"`
SkipEnd string `json:"skip_end"`
}
MediaMetrics contains data about media metrics
type MetricsMediaRequest ¶
type MovieData ¶
type MovieData struct {
gorm.Model `json:"-"`
MediaID uint `json:"-"`
Tagline string `json:"tagline"`
ReleaseYear string `json:"release_year"`
Runtime int `json:"runtime"`
PG string `json:"pg"`
SourcePath string `json:"-"`
// Actors []Actor `json:"actors,omitempty" gorm:"many2many:relative_actors;"`
Trailer string `json:"trailer"`
VoteAverage float64 `json:"vote_average"`
}
MovieData contains movie-specific data
type MovieDetail ¶
type MovieDetail struct {
Adult bool `json:"adult"`
BackdropPath string `json:"backdrop_path"`
BelongsToCollection struct {
ID int `json:"id"`
Name string `json:"name"`
PosterPath string `json:"poster_path"`
BackdropPath string `json:"backdrop_path"`
} `json:"belongs_to_collection"`
Budget int `json:"budget"`
Genres []struct {
ID int `json:"id"`
Name string `json:"name"`
} `json:"genres"`
Homepage string `json:"homepage"`
ID int `json:"id"`
ImdbID string `json:"imdb_id"`
OriginalLanguage string `json:"original_language"`
OriginalTitle string `json:"original_title"`
Overview string `json:"overview"`
Popularity float64 `json:"popularity"`
PosterPath string `json:"poster_path"`
ProductionCompanies []struct {
ID int `json:"id"`
LogoPath string `json:"logo_path"`
Name string `json:"name"`
OriginCountry string `json:"origin_country"`
} `json:"production_companies"`
ProductionCountries []struct {
Iso31661 string `json:"iso_3166_1"`
Name string `json:"name"`
} `json:"production_countries"`
ReleaseDate string `json:"release_date"`
Revenue int `json:"revenue"`
Runtime int `json:"runtime"`
SpokenLanguages []struct {
Iso6391 string `json:"iso_639_1"`
Name string `json:"name"`
} `json:"spoken_languages"`
Status string `json:"status"`
Tagline string `json:"tagline"`
Title string `json:"title"`
Video bool `json:"video"`
VoteAverage float64 `json:"vote_average"`
VoteCount int `json:"vote_count"`
ReleaseDates struct {
Results []struct {
Iso31661 string `json:"iso_3166_1"`
ReleaseDates []struct {
Certification string `json:"certification"`
Iso6391 string `json:"iso_639_1"`
Note string `json:"note"`
ReleaseDate time.Time `json:"release_date"`
Type int `json:"type"`
} `json:"release_dates"`
} `json:"results"`
} `json:"release_dates"`
Credits struct {
Cast []struct {
CastID int `json:"cast_id"`
Character string `json:"character"`
CreditID string `json:"credit_id"`
Gender int `json:"gender"`
ID int `json:"id"`
Name string `json:"name"`
Order int `json:"order"`
ProfilePath string `json:"profile_path"`
} `json:"cast"`
Crew []struct {
CreditID string `json:"credit_id"`
Department string `json:"department"`
Gender int `json:"gender"`
ID int `json:"id"`
Job string `json:"job"`
Name string `json:"name"`
ProfilePath interface{} `json:"profile_path"`
} `json:"crew"`
} `json:"credits"`
Videos struct {
Results []struct {
ID string `json:"id"`
Iso6391 string `json:"iso_639_1"`
Iso31661 string `json:"iso_3166_1"`
Key string `json:"key"`
Name string `json:"name"`
Site string `json:"site"`
Size int `json:"size"`
Type string `json:"type"`
} `json:"results"`
} `json:"videos"`
}
func (*MovieDetail) GetActors ¶
func (d *MovieDetail) GetActors() []Actor
func (*MovieDetail) GetGenres ¶
func (d *MovieDetail) GetGenres() string
func (*MovieDetail) GetImages ¶
func (d *MovieDetail) GetImages() []*Image
func (*MovieDetail) GetTrailers ¶
func (d *MovieDetail) GetTrailers() string
type MovieSearch ¶
type MovieSearch struct {
Page int `json:"page"`
TotalResults int `json:"total_results"`
TotalPages int `json:"total_pages"`
Results []struct {
VoteCount int `json:"vote_count"`
ID int `json:"id"`
Video bool `json:"video"`
VoteAverage float64 `json:"vote_average"`
Title string `json:"title"`
Popularity float64 `json:"popularity"`
PosterPath string `json:"poster_path"`
OriginalLanguage string `json:"original_language"`
OriginalTitle string `json:"original_title"`
GenreIds []int `json:"genre_ids"`
BackdropPath string `json:"backdrop_path"`
Adult bool `json:"adult"`
Overview string `json:"overview"`
ReleaseDate string `json:"release_date"`
} `json:"results"`
}
type Network ¶
type Network struct {
gorm.Model
ShowDataID uint `json:"show_data_id"`
UID string `json:"uid"`
Name string `json:"name"`
LogoPath string `json:"logo_path"`
}
Network contains data about production companies
type Result ¶
type Result struct {
UID int `json:"uid"`
Hash string `json:"hash"`
ContentType string `json:"content_type"`
Title string `json:"title"`
Website string `json:"website"`
Genre string `json:"genre"`
Plot string `json:"plot"`
Images []*Image `json:"images"`
Tagline string `json:"tagline"`
ReleaseYear string `json:"release_year"`
Runtime int `json:"runtime"`
PG string `json:"pg"`
SourcePath string `json:"source_path"`
Actors []Actor `json:"actors"`
Trailers string `json:"trailer"`
VoteAverage float64 `json:"vote_average"`
VideoFramerate int `json:"video_framerate"`
VideoWidth int `json:"video_width"`
VideoHeight int `json:"video_height"`
}
type Season ¶
type Season struct {
gorm.Model
ShowDataID uint `json:"show_data_id"`
UID string `json:"uid"`
Hash string `json:"hash"`
Name string `json:"name"`
Overview string `json:"overview" gorm:"size:1000"`
AirDate string `json:"air_date"`
SeasonNumber int `json:"season_number"`
Images []Image `json:"images" gorm:"foreignkey:SeasonID"`
Episodes []Episode `json:"episodes"`
EpisodesCount int `json:"episodes_count"`
}
Season contains data about show seasons
type Server ¶
type Server struct {
Port int `json:"port"`
ReleaseMode string `json:"release_mode"`
SSLMode string `json:"ssl_mode"`
Crt string `json:"crt"`
Key string `json:"key"`
}
Server describes server-specific parameters
type ShowData ¶
type ShowData struct {
gorm.Model
MediaID uint `json:"media_id"`
FirstAirDate string `json:"first_air_date"`
LastAirDate string `json:"last_air_date"`
EpisodeRuntime string `json:"episode_runtime"`
Networks []Network `json:"networks" gorm:"many2many:show_networks;"`
Seasons []Season `json:"seasons"`
SeasonsCount string `json:"seasons_count"`
EpisodesCount string `json:"episodes_count"`
}
ShowData contains show-specific data, like seasons and general show data
type Source ¶
type Source struct {
Mode string `json:"mode"`
Path string `json:"path"`
IsNSFW bool `json:"is_NSFW"`
ContentType string `json:"content_type"`
Extensions string `json:"extensions"`
ExtensionsType string `json:"-"`
ExtensionsRegex *regexp.Regexp `json:"-"`
}
Source describes a source folder for media files
type Store ¶
type Store struct {
User string `json:"user"`
Password string `json:"password"`
Database string `json:"database"`
Host string `json:"host"`
Port int `json:"port"`
}
Store describes the database connection parameters
type Tmdb ¶
type Tmdb struct {
Key string `json:"key"`
Language string `json:"language"`
LanguageIso string `json:"language_iso"`
CombinedParameters string `json:"-"`
}
Tmdb describes the Tmdb portion of the api parameters
type Transcoder ¶
type Transcoder struct {
Concurrency int `json:"concurrency"`
HWAcceleration bool `json:"hw_acceleration"`
}
Transcoder describes transcoder-specific parameters