2021-02-14 16:18:26 +00:00
|
|
|
package media
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"github.com/l3uddz/nabarr/logger"
|
|
|
|
|
"github.com/l3uddz/nabarr/media/omdb"
|
|
|
|
|
"github.com/l3uddz/nabarr/media/trakt"
|
2021-02-19 23:31:23 +00:00
|
|
|
"github.com/l3uddz/nabarr/media/tvdb"
|
2021-02-14 16:18:26 +00:00
|
|
|
"github.com/rs/zerolog"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Client struct {
|
|
|
|
|
trakt *trakt.Client
|
|
|
|
|
omdb *omdb.Client
|
2021-02-19 23:31:23 +00:00
|
|
|
tvdb *tvdb.Client
|
2021-02-14 16:18:26 +00:00
|
|
|
|
|
|
|
|
log zerolog.Logger
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func New(cfg *Config) (*Client, error) {
|
2021-02-19 23:31:23 +00:00
|
|
|
// validate trakt configured (it is mandatory)
|
2021-02-14 16:18:26 +00:00
|
|
|
if cfg.Trakt.ClientId == "" {
|
|
|
|
|
return nil, fmt.Errorf("trakt: no client_id specified")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return &Client{
|
2021-02-19 23:31:23 +00:00
|
|
|
trakt: trakt.New(&cfg.Trakt),
|
|
|
|
|
omdb: omdb.New(&cfg.Omdb),
|
|
|
|
|
tvdb: tvdb.New(&cfg.Tvdb),
|
2021-02-14 16:18:26 +00:00
|
|
|
|
|
|
|
|
log: logger.New(cfg.Verbosity).With().Logger(),
|
|
|
|
|
}, nil
|
|
|
|
|
}
|