// internal/movies/controller.go package movies import ( "fmt" "hugo-medialog/utils" "os" "path/filepath" "gopkg.in/yaml.v3" ) func LoadMovies() ([]Movie, error) { moviesFile := os.Getenv("OBSIDIAN_MOVIES_FILE") fileData, err := os.ReadFile(moviesFile) if err != nil { return nil, err } var movies []Movie err = yaml.Unmarshal(fileData, &movies) if err != nil { return nil, err } return movies, nil } func ProcessMovies(movies []Movie) error { for _, movie := range movies { fmt.Printf("Título: %s, Puntuación: %.1f, Fecha: %s\n", movie.Title, movie.Rate, movie.Date) // API Calls err := generateMovieMarkdown(movie) if err != nil { return err } } return nil } func generateMovieMarkdown(movie Movie) error { templatePath := filepath.Join(os.Getenv("TEMPLATES_DIR"), "movie.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", movie.Title)) data := map[string]interface{}{ "Title": movie.Title, "Link": "https://imdb.com/enlace", "Subtitle": movie.Year, "Year": movie.Year, "Rate": movie.Rate, "Image": movie.Image, "Poster": movie.Poster, "Background": movie.Background, "Date": movie.Date, } return utils.GenerateMarkdown(templatePath, outputPath, data) }