package metadata import ( "log" "os" "path/filepath" "strings" "git.meatbag.se/varl/subsyt/internal/dl" "git.meatbag.se/varl/subsyt/internal/model" ) func NormalizeEpisodeThumbnail(name string) string { lower := strings.ToLower(name) if strings.Contains(lower, "-thumb") { return name } ext := filepath.Ext(name) switch strings.ToLower(ext) { case ".jpg", ".jpeg": base := strings.TrimSuffix(name, ext) return base + "-thumb" + ext } return name } func EnsureBanner(show model.Show, destDir string, dryRun bool) { bannerPath := filepath.Join(destDir, "banner.jpg") if _, err := os.Stat(bannerPath); err == nil { log.Printf("%s has a banner, skipping download\n", show.Title) return } if dryRun { log.Printf("[dry-run] would download banner for %s\n", show.Title) return } for index, thumb := range show.Thumbnails { log.Println(index, thumb) if thumb.Id == "banner_uncropped" { log.Println("found banner candidate") dl.Fetch(dl.Download{ Url: thumb.Url, OutDir: destDir, Name: "banner.jpg", }) return } } } func EnsureFanart(show model.Show, destDir string, dryRun bool) { fanartPath := filepath.Join(destDir, "fanart.jpg") if _, err := os.Stat(fanartPath); err == nil { log.Printf("%s has fanart, skipping download\n", show.Title) return } if dryRun { log.Printf("[dry-run] would download fanart for %s\n", show.Title) return } c := model.Thumbnail{} for index, thumb := range show.Thumbnails { log.Println(index, thumb) if thumb.Width > c.Width { log.Println("found fanart candidate", thumb) c = thumb } } if c.Url == "" { log.Printf("no fanart candidate for %s\n", show.Title) return } dl.Fetch(dl.Download{ Url: c.Url, OutDir: destDir, Name: "fanart.jpg", }) }