53
media/show.go
Normal file
53
media/show.go
Normal file
@@ -0,0 +1,53 @@
|
||||
package media
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/l3uddz/nabarr/media/trakt"
|
||||
"strconv"
|
||||
)
|
||||
|
||||
func (c *Client) GetShowInfo(item *FeedItem) (*Item, error) {
|
||||
// lookup on trakt
|
||||
t, err := c.trakt.GetShow(item.TvdbId)
|
||||
if err != nil {
|
||||
if errors.Is(err, trakt.ErrItemNotFound) {
|
||||
return nil, fmt.Errorf("trakt: get show: show with tvdbId %q: %w", item.TvdbId, ErrItemNotFound)
|
||||
}
|
||||
return nil, fmt.Errorf("trakt: get show: show with tvdbId %q: %w", item.TvdbId, err)
|
||||
}
|
||||
|
||||
// transform trakt info to MediaItem
|
||||
mi := &Item{
|
||||
TvdbId: strconv.Itoa(t.Ids.Tvdb),
|
||||
TmdbId: strconv.Itoa(t.Ids.Tmdb),
|
||||
ImdbId: t.Ids.Imdb,
|
||||
Slug: t.Ids.Slug,
|
||||
Title: t.Title,
|
||||
FeedTitle: item.Title,
|
||||
Summary: t.Overview,
|
||||
Country: []string{t.Country},
|
||||
Network: t.Network,
|
||||
Date: t.FirstAired,
|
||||
Year: t.FirstAired.Year(),
|
||||
Runtime: t.Runtime,
|
||||
Rating: t.Rating,
|
||||
Votes: t.Votes,
|
||||
Status: t.Status,
|
||||
Genres: t.Genres,
|
||||
Languages: []string{t.Language},
|
||||
AiredEpisodes: t.AiredEpisodes,
|
||||
}
|
||||
|
||||
// omdb
|
||||
if oi, err := c.omdb.GetItem(t.Ids.Imdb); err != nil {
|
||||
c.log.Debug().
|
||||
Err(err).
|
||||
Str("imdb_id", t.Ids.Imdb).
|
||||
Msg("Item was not found on omdb")
|
||||
} else if oi != nil {
|
||||
mi.Omdb = *oi
|
||||
}
|
||||
|
||||
return mi, nil
|
||||
}
|
||||
Reference in New Issue
Block a user