diff --git a/internal/metadata/metadata.go b/internal/metadata/metadata.go index d9415e6..aba1f7a 100644 --- a/internal/metadata/metadata.go +++ b/internal/metadata/metadata.go @@ -56,6 +56,7 @@ func Generate(outDir string, title string, dryRun bool) { show := models.LoadShow(path) nfo.WriteShowInfo(show, filepath.Join(showDir, "tvshow.nfo")) showBanner(show, showDir) + showFanart(show, showDir) case season.MatchString(path): ep := models.LoadEpisode(path) nfo.WriteEpisodeNFO(ep, path) @@ -126,3 +127,20 @@ func showBanner(show models.Show, showDir string) { } } } + +func showFanart(show models.Show, showDir string) { + c := models.Thumbnail{} + for index, thumb := range show.Thumbnails { + log.Println(index, thumb) + if thumb.Width > c.Width { + log.Println("found fanart candidate", thumb) + c = thumb + } + } + + dl.Fetch(dl.Download{ + Url: c.Url, + OutDir: showDir, + Name: "fanart.jpg", + }) +} diff --git a/internal/models/show.go b/internal/models/show.go index 88b9b4e..79249a4 100644 --- a/internal/models/show.go +++ b/internal/models/show.go @@ -27,8 +27,11 @@ type Show struct { } type Thumbnail struct { - Url string `json:"url" xml:"-"` - Id string `json:"id" xml:"-"` + Url string `json:"url" xml:"-"` + Id string `json:"id" xml:"-"` + Resolution string `json:"resolution" xml:"-"` + Height int32 `json:"height" xml:"-"` + Width int32 `json:"width" xml:"-"` } func LoadShow(info_path string) Show {