1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
package tasks
import (
"metachan/entities"
"metachan/repositories"
"metachan/utils/api/jikan"
"metachan/utils/logger"
)
func GenreSync() error {
logger.Infof("GenreSync", "Starting Genre Sync from MAL")
genresResponse, err := jikan.GetAnimeGenres()
if err != nil {
logger.Errorf("GenreSync", "Failed to fetch genres from MAL: %v", err)
return err
}
logger.Infof("GenreSync", "Fetched %d genres from MAL", len(genresResponse.Data))
for _, genre := range genresResponse.Data {
genreEntity := entities.Genre{
GenreID: genre.MALID,
Name: genre.Name,
URL: genre.URL,
Count: genre.Count,
}
if err := repositories.CreateOrUpdateGenre(&genreEntity); err != nil {
logger.Warnf("GenreSync", "Failed to sync genre %s: %v", genre.Name, err)
}
}
logger.Successf("GenreSync", "Genre Sync completed successfully. Synced %d genres", len(genresResponse.Data))
return nil
}
|