// internal/peliculas/controller.go package peliculas import ( "fmt" "hugo-medialog/utils" "os" "path/filepath" "gopkg.in/yaml.v3" ) func LoadPeliculas(obsidianPath string) ([]Pelicula, error) { moviesFile := filepath.Join(obsidianPath, "pelis.yml.md") fileData, err := os.ReadFile(moviesFile) if err != nil { return nil, err } var peliculas []Pelicula err = yaml.Unmarshal(fileData, &peliculas) if err != nil { return nil, err } return peliculas, nil } func ProcessPeliculas(peliculas []Pelicula) error { for _, pelicula := range peliculas { fmt.Printf("Título: %s, Puntuación: %.1f, Fecha: %s\n", pelicula.Title, pelicula.Rate, pelicula.Date) // Aquí se pueden hacer las llamadas a APIs externas (IMDb, Fanart.tv) // y generar el markdown en base a las plantillas. err := generatePeliculaMarkdown(pelicula) if err != nil { return err } } return nil } func generatePeliculaMarkdown(pelicula Pelicula) error { templatePath := filepath.Join(os.Getenv("TEMPLATES_DIR"), "pelicula.md.tpl") outputDir := os.Getenv("MARKDOWN_OUTPUT_DIR") if err := utils.CreateDirIfNotExists(outputDir); err != nil { return err } outputPath := filepath.Join(outputDir, fmt.Sprintf("%s.md", pelicula.Title)) data := map[string]interface{}{ "Title": pelicula.Title, "Link": "https://imdb.com/enlace", // Obtener el enlace de IMDb "Subtitle": pelicula.Year, "Year": pelicula.Year, "Rate": pelicula.Rate, "Image": pelicula.Image, "Poster": pelicula.Poster, "Background": pelicula.Background, "Date": pelicula.Date, } return utils.GenerateMarkdown(templatePath, outputPath, data) }