64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
// 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)
|
|
}
|