Documentation
¶
Overview ¶
Package cfg used for process configuration
Package cfg used for process configuration
Index ¶
- Variables
- func GenUsedFlagMap() map[string]bool
- func GetOptionTime(options *str.Options) string
- func GetOutputForModule(options *str.Options) string
- func IsValidConfigType(allowedTypes []string, userType string) bool
- func IsValidConfigTypeSlice(allowedElements []string, userElements str.Slice) bool
- func OptionsFromConfig(fs afero.Fs, config *Config) (str.Options, error)
- func SyncOptionsFromFlags(fs afero.Fs, config *Config, flagMap map[string]string) (str.Options, error)
- func ValidateConfig(module string, config OptionsConfig) bool
- type Config
- func DefaultConfig() *Config
- func GetConfig(fs afero.Fs, configPath string) (*Config, error)
- func InitConfig(fs afero.Fs) (*Config, error)
- func MergeConfigs(defaultConfig *Config, fileConfig *Config, flagConfig map[string]string) (*Config, error)
- func ReadConfigFromFile(fs afero.Fs, filename string) (*Config, error)
- type OptionsConfig
Constants ¶
This section is empty.
Variables ¶
var ModuleActionConfig = map[string]OptionsConfig{ "comments:trending": { Type: []string{"all", "movies", "shows", "seasons", "episodes", "lists"}, Sort: []string{"newest", "oldest", "likes", "replies", "highest", "lowest", "plays"}, }, "comments:recent": { Type: []string{"all", "movies", "shows", "seasons", "episodes", "lists"}, Sort: []string{"newest", "oldest", "likes", "replies", "highest", "lowest", "plays"}, }, "movies:comments": { Type: []string{}, Sort: []string{"newest", "oldest", "likes", "replies", "highest", "lowest", "plays"}, }, "movies:lists": { Type: []string{"all", "personal", "official", "watchlists", "favorites"}, Sort: []string{"popular", "likes", "comments", "items", "added", "updated"}, }, "users:watched": { Type: []string{"movies", "shows"}, Sort: []string{}, }, "notes:notes": { Privacy: []string{"private", "friends", "public"}, }, "notes:note": { Privacy: []string{"private", "friends", "public"}, }, "notes:item": { Privacy: []string{"private", "friends", "public"}, }, }
ModuleActionConfig represents the configuration options depens on module:action key
var ModuleConfig = map[string]OptionsConfig{ "watchlist": { SearchIDType: []string{}, SearchType: []string{}, SearchField: []string{}, Type: []string{"movies", "shows", "episodes", "persons"}, Sort: []string{"rank", "added", "released", "title"}, Format: []string{"imdb", "tmdb", "tvdb", "tvrage", "trakt"}, Action: []string{}, }, "collection": { SearchIDType: []string{}, SearchType: []string{}, SearchField: []string{}, Type: []string{"movies", "shows", "episodes", "persons"}, Sort: []string{"rank", "added", "released", "title"}, Format: []string{"imdb", "tmdb", "tvdb", "tvrage", "trakt"}, Action: []string{}, }, "comments": { SearchIDType: []string{}, SearchType: []string{}, CommentType: []string{"all", "review", "shouts"}, SearchField: []string{}, Type: []string{"all", "movies", "shows", "seasons", "episodes", "lists"}, Sort: []string{"rank", "added", "released", "title"}, Format: []string{"imdb", "tmdb", "tvdb", "tvrage", "trakt"}, Action: []string{}, }, "history": { SearchIDType: []string{}, SearchType: []string{}, SearchField: []string{}, Type: []string{"movies", "shows", "episodes", "persons"}, Sort: []string{"rank", "added", "released", "title"}, Format: []string{"imdb", "tmdb", "tvdb", "tvrage", "trakt"}, Action: []string{}, }, "lists": { SearchIDType: []string{}, SearchType: []string{}, SearchField: []string{}, Type: []string{"movies", "shows", "episodes", "persons"}, Sort: []string{"rank", "added", "released", "title"}, Format: []string{"imdb", "tmdb", "tvdb", "tvrage", "trakt"}, Action: []string{}, }, "movies": { SearchIDType: []string{}, SearchType: []string{}, CommentType: []string{"all", "review", "shouts"}, SearchField: []string{}, Type: []string{"all", "movies", "shows", "seasons", "episodes", "lists"}, Period: []string{"all", "daily", "weekly", "monthly"}, Sort: []string{"newest", "oldest", "likes", "replies", "highest", "lowest", "plays"}, Format: []string{"imdb", "tmdb", "tvdb", "tvrage", "trakt"}, Action: []string{}, }, "people": { SearchIDType: []string{}, SearchType: []string{}, SearchField: []string{}, Type: []string{"movies", "shows", "episodes", "persons", "all", "personal", "official"}, Sort: []string{"rank", "added", "released", "title", "popular", "likes", "comments", "items", "added", "updated"}, Format: []string{"imdb", "tmdb", "tvdb", "tvrage", "trakt"}, Action: []string{}, }, "search": { SearchIDType: []string{"trakt", "imdb", "tmdb", "tvdb"}, SearchType: []string{"movie", "show", "episode", "person", "list", "podcast", "podcast_episode"}, SearchField: []string{"title", "aliases", "biography", "description", "episode", "name", "overview", "people", "show", "tagline", "translations"}, Type: []string{"movies", "shows", "episodes", "persons", "all", "personal", "official"}, Sort: []string{"rank", "added", "released", "title", "popular", "likes", "comments", "items", "added", "updated"}, Format: []string{"imdb", "tmdb", "tvdb", "tvrage", "trakt"}, Action: []string{}, }, "users": { SearchIDType: []string{}, SearchType: []string{}, SearchField: []string{}, Type: []string{"movies", "shows"}, Sort: []string{}, Format: []string{}, Action: []string{}, }, "notes": { Privacy: []string{"private", "friends", "public"}, }, }
ModuleConfig represents the configuration options for all modules
var SearchFieldConfig = map[string][]string{
"movie": {"title", "tagline", "overview", "people", "translations", "aliases"},
"show": {"title", "overview", "people", "translations", "aliases"},
"episode": {"title", "overview"},
"person": {"name", "biography"},
"list": {"name", "description"},
}
SearchFieldConfig represents the configuration options for search_field depens on type
Functions ¶
func GetOptionTime ¶
GetOptionTime config Time depends on Module name
func GetOutputForModule ¶ added in v1.0.3
GetOutputForModule generates output value depends on module name
func IsValidConfigType ¶
IsValidConfigType checks if the provided type is valid for the module
func IsValidConfigTypeSlice ¶
IsValidConfigTypeSlice checks if all elements of userElements are in allowedElements, considering the counts of each element.
func OptionsFromConfig ¶
OptionsFromConfig reads options from config file
func SyncOptionsFromFlags ¶
func SyncOptionsFromFlags(fs afero.Fs, config *Config, flagMap map[string]string) (str.Options, error)
SyncOptionsFromFlags reads options from user flags
func ValidateConfig ¶
func ValidateConfig(module string, config OptionsConfig) bool
ValidateConfig validates if the provided configuration is allowed for the given module
Types ¶
type Config ¶
type Config struct {
Action string `toml:"action"`
ClientID string `toml:"client_id"`
ClientSecret string `toml:"client_secret"`
Comment string `toml:"comment"`
CommentID int `toml:"comment_id"`
CommentType string `toml:"comment_type"`
CommentsSort string `toml:"sort"`
ConfigPath string `toml:"config_path"`
Days int `toml:"days"`
Delete bool `toml:"delete"`
Episode int `toml:"episode"`
EpisodeAbs int `toml:"episode_abs"`
EpisodeCode string `toml:"episode_code"`
ErrorCode int `toml:"errorCode"`
Field string `toml:"field"`
Format string `toml:"format"`
Hide bool `toml:"hide"`
ID string `toml:"id"`
IgnoreCollected string `toml:"ignore_collected"`
IgnoreWatchlisted string `toml:"ignore_watchlisted"`
IncludeReplies string `toml:"include_replies"`
InternalID string `toml:"trakt_id"`
Item string `toml:"item"`
List string `toml:"list"`
Module string `toml:"module"`
MoviesCountry string `toml:"country"`
MoviesLanguage string `toml:"language"`
MoviesPeriod string `toml:"period"`
MoviesSort string `toml:"sort"`
MoviesType string `toml:"type"`
Msg string `toml:"msg"`
Notes string `toml:"notes"`
NotesID int `toml:"notes_id"`
Output string `toml:"output"`
PagesLimit int `toml:"pages_limit"`
PerPage int `toml:"per_page"`
Privacy string `toml:"privacy"`
Progress float64 `toml:"progress"`
Query string `toml:"query"`
RedirectURI string `toml:"redirect_uri"`
Remove bool `toml:"remove"`
Reply string `toml:"reply"`
SearchField str.Slice `toml:"search_field"`
SearchIDType string `toml:"search_id_type"`
SearchType str.Slice `toml:"search_type"`
Season int `toml:"season"`
Sort string `toml:"sort"`
Spoiler bool `toml:"spoiler"`
TokenPath string `toml:"token_path"`
TraktID int `toml:"trakt_id"`
Type string `toml:"type"`
UserName string `toml:"username"`
Verbose bool `toml:"verbose"`
WarningCode int `toml:"warningCode"`
}
Config struct for app.