package main import ( "fmt" "log" "os" "path/filepath" "strings" "time" "github.com/eduncan911/podcast" ) func generateRSS() error { rssLock.Lock() defer rssLock.Unlock() episodes, err := scanEpisodes() if err != nil { return err } timeNow := time.Now() p := podcast.New( podTitle, baseURL, podDesc, &timeNow, &timeNow, ) // 2. Aggiungi metadati globali p.IAuthor = podAuthor p.AddImage(podLogo) p.Language = podLang for _, ep := range episodes { epBaseUrl := baseURL + "/audio/" + filepath.Base(ep.File) strip, found := strings.CutSuffix(filepath.Base(ep.File), ".mp3") if !found { log.Println("Seems the file is not mp3??????") } epBaseImg := baseURL + "/covers/" + strip + ".jpg" timepub, err := time.Parse(time.RFC1123, ep.PubDate) if err != nil { fmt.Println("Errore nella conversione:", err) timepub = time.Now() } item := podcast.Item{ Title: ep.Title, Description: ep.Description, PubDate: &timepub, Enclosure: &podcast.Enclosure{ URL: epBaseUrl, Type: podcast.MP3, Length: ep.Size, }, // Metadati specifici iTunes IAuthor: ep.Artist, IImage: &podcast.IImage{ HREF: epBaseImg, // Campo corretto }, IExplicit: "no", } if _, err := p.AddItem(item); err != nil { log.Fatal("Errore nell'aggiunta dell'episodio: ", err) } } if err := p.Encode(os.Stdout); err != nil { panic(err) } // Opzionale: salva su file file, _ := os.Create("feed.xml") defer file.Close() return p.Encode(file) }