Author: Adam <git@apiote.tk>
remove utils package
i18n/i18n.go | 43 +++++++++++++++++++++++++++------ libamuse/bookserie.go | 11 +++---- mkfile | 2 tmdb/film.go | 10 +++--- tmdb/person.go | 53 +++++++++++++++++++++++++++-------------- tmdb/search.go | 16 +++++++----- tmdb/serie.go | 57 ++++++++++++++++++++++++++++++-------------- utils/error.go | 9 -------
diff --git a/i18n/i18n.go b/i18n/i18n.go index e9b2210985d310d56c8677421bdfc99b7675c25d..30e2f263365f502821ae88f1e6b3ed7cd2697056 100644 --- a/i18n/i18n.go +++ b/i18n/i18n.go @@ -2,7 +2,6 @@ package i18n import ( "notabug.org/apiote/amuse/config" - "notabug.org/apiote/amuse/utils" "bytes" "fmt" @@ -18,6 +17,7 @@ "github.com/BurntSushi/toml" "github.com/bytesparadise/libasciidoc" "github.com/bytesparadise/libasciidoc/pkg/configuration" + "notabug.org/apiote/gott" ) type Translation struct { @@ -81,13 +81,24 @@ tag, _, _ := matcher.Match(acceptLanguages...) return tag.String() } -func LoadStrings(language string) (Translation, error) { +func loadStringsFile(args ...interface{}) (interface{}, error) { + language := args[0].(string) var strings Translation - var defaultTranslation Translation _, err := toml.DecodeFile(filepath.Join(config.DataHome+"/i18n", language+".toml"), &strings) - _, err2 := toml.DecodeFile(filepath.Join(config.DataHome+"/i18n", "default.toml"), &defaultTranslation) - err = utils.Or(err, err2) + args[1] = strings + return gott.Tuple(args), err +} +func loadDefaultStringsFile(args ...interface{}) (interface{}, error) { + var strings Translation + _, err := toml.DecodeFile(filepath.Join(config.DataHome+"/i18n", "default.toml"), &strings) + args[2] = strings + return gott.Tuple(args), err +} + +func loadStrings(args ...interface{}) interface{} { + strings := args[1].(Translation) + defaultTranslation := args[2].(Translation) stringsValue := reflect.ValueOf(&strings).Elem() stringsType := stringsValue.Type() for i := 0; i < stringsValue.NumField(); i++ { @@ -102,8 +113,19 @@ stringsField.Interface().(map[string]string)[key] = entry } } } + args[1] = strings + return gott.Tuple(args) +} - return strings, err +func LoadStrings(language string) (Translation, error) { + r, err := gott. + NewResult(gott.Tuple{language, Translation{}, Translation{}}). + Bind(loadStringsFile). + Bind(loadDefaultStringsFile). + Map(loadStrings). + Finish() + + return r.(gott.Tuple)[1].(Translation), err } func FormatDate(date time.Time, format string, translation map[string]string) string { @@ -189,8 +211,13 @@ libasciidoc.ConvertToHTML(r, w, config) output := bytes.ReplaceAll(w.Bytes(), []byte("\n"), []byte("")) divRegex, err := regexp.Compile("<\\/?div[^>]*>") - pRegex, err2 := regexp.Compile("<\\/?p>") - err = utils.Or(err, err2) + if err != nil { + return template.HTML("<span style=\"color: red;\">error rendering asciidoc (div regex)</span>") + } + pRegex, err := regexp.Compile("<\\/?p>") + if err != nil { + return template.HTML("<span style=\"color: red;\">error rendering asciidoc (p regex)</span>") + } output = divRegex.ReplaceAll(output, []byte("")) output = pRegex.ReplaceAll(output, []byte("")) diff --git a/libamuse/bookserie.go b/libamuse/bookserie.go index 361177a772cb035150a1a3b1bcae977b196c89eb..ca65bc94686eba0c4c1066142ac75ad7435609c4 100644 --- a/libamuse/bookserie.go +++ b/libamuse/bookserie.go @@ -2,7 +2,6 @@ package libamuse import ( "notabug.org/apiote/amuse/wikidata" - "notabug.org/apiote/amuse/utils" "notabug.org/apiote/amuse/accounts" "strings" @@ -33,15 +32,15 @@ result := args[1].(*Result) bookSerie := result.result.(*wikidata.BookSerie) languages := result.languages - var err error - for i, part := range bookSerie.SortedParts { partId := strings.Replace(part.Uri, "/books/", "", 1) - cover, e := wikidata.GetCover(partId, languages[0].String(), data.connection) - err = utils.Or(err, e) + cover, err := wikidata.GetCover(partId, languages[0].String(), data.connection) + if err != nil { + return gott.Tuple(args), err + } bookSerie.SortedParts[i].Cover = cover } - return gott.Tuple(args), err + return gott.Tuple(args), nil } func renderBookSerie(args ...interface{}) interface{} { diff --git a/mkfile b/mkfile index 7b0523d2bbade57c9f07ca8aa51c926cebdd9d3d..311d128c4df180341254a9eacb34b95bacf6e46c 100644 --- a/mkfile +++ b/mkfile @@ -3,7 +3,7 @@ all:V: $ALL reallyall:V: $ALL pymodule -amuse: main.go router.go go.mod go.sum `echo front/*.go i18n/*.go libamuse/*.go tmdb/*.go utils/*.go wikidata/*.go inventaire/*.go db/*.go datastructure/*.go network/*.go accounts/*.go` +amuse: main.go router.go go.mod go.sum `echo front/*.go i18n/*.go libamuse/*.go tmdb/*.go wikidata/*.go inventaire/*.go db/*.go datastructure/*.go network/*.go accounts/*.go` go build -ldflags "-s -w -linkmode external -extldflags -static" static/img/%.webp: static/img/%.svg rendersvg static/img/$stem.svg static/img/$stem.png diff --git a/tmdb/film.go b/tmdb/film.go index 1e122fedcbb55494af17bf1f590b3e3c7ef6aa75..762e2fa06a078f509e1087068fdf45c3f4f05ec3 100644 --- a/tmdb/film.go +++ b/tmdb/film.go @@ -3,7 +3,6 @@ import ( "notabug.org/apiote/amuse/i18n" "notabug.org/apiote/amuse/network" - "notabug.org/apiote/amuse/utils" "notabug.org/apiote/amuse/datastructure" "encoding/json" @@ -153,16 +152,17 @@ } func convertCollectionDates(args ...interface{}) (interface{}, error) { collection := args[1].(*network.Result).Result.(*Collection) - var err error = nil for i, part := range collection.Parts { if part.Release_date_str != "" { - date, err2 := time.Parse("2006-01-02", part.Release_date_str) + date, err := time.Parse("2006-01-02", part.Release_date_str) + if err != nil { + return gott.Tuple(args), err + } part.Release_date = date - err = utils.Or(err2, err) collection.Parts[i] = part } } - return gott.Tuple(args), err + return gott.Tuple(args), nil } func sortCollection(args ...interface{}) interface{} { diff --git a/tmdb/person.go b/tmdb/person.go index 446c3716e9ac51b3ea4593bd2e3f4f64243cef64..41c46f843402c00bfa11ab04df52fd5412ed8044 100644 --- a/tmdb/person.go +++ b/tmdb/person.go @@ -2,7 +2,6 @@ package tmdb import ( "notabug.org/apiote/amuse/network" - "notabug.org/apiote/amuse/utils" "encoding/json" "net/http" @@ -72,52 +71,69 @@ result.Result = person return gott.Tuple(args), err } -func convertPersonDates(args ...interface{}) (interface{}, error) { +func convertPersonBirthDate(args ...interface{}) (interface{}, error) { person := args[1].(*network.Result).Result.(*Person) - var err error + var ( + date time.Time + err error + ) if person.Birthday_str != "" { - date, err2 := time.Parse("2006-01-02", person.Birthday_str) + date, err = time.Parse("2006-01-02", person.Birthday_str) person.Birthday = date - err = utils.Or(err, err2) } + return gott.Tuple(args), err +} + +func convertPersonDeathDate(args ...interface{}) (interface{}, error) { + person := args[1].(*network.Result).Result.(*Person) + var ( + date time.Time + err error + ) if person.Deathday_str != "" { - date, err2 := time.Parse("2006-01-02", person.Deathday_str) + date, err = time.Parse("2006-01-02", person.Deathday_str) person.Deathday = date - err = utils.Or(err, err2) } return gott.Tuple(args), err } func convertJobsDates(args ...interface{}) (interface{}, error) { person := args[1].(*network.Result).Result.(*Person) - var err error for i, character := range person.Credits.Cast { if character.Release_date_str != "" { - date, err2 := time.Parse("2006-01-02", character.Release_date_str) + date, err := time.Parse("2006-01-02", character.Release_date_str) character.Release_date = date - err = utils.Or(err, err2) + if err != nil { + return gott.Tuple(args), err + } } if character.First_air_date_str != "" { - date, err2 := time.Parse("2006-01-02", character.First_air_date_str) + date, err := time.Parse("2006-01-02", character.First_air_date_str) character.Release_date = date - err = utils.Or(err, err2) + if err != nil { + return gott.Tuple(args), err + } } person.Credits.Cast[i] = character } for i, job := range person.Credits.Crew { if job.Release_date_str != "" { - date, err2 := time.Parse("2006-01-02", job.Release_date_str) + date, err := time.Parse("2006-01-02", job.Release_date_str) job.Release_date = date - err = utils.Or(err, err2) + if err != nil { + return gott.Tuple(args), err + } } if job.First_air_date_str != "" { - date, err2 := time.Parse("2006-01-02", job.First_air_date_str) + date, err := time.Parse("2006-01-02", job.First_air_date_str) job.Release_date = date - err = utils.Or(err, err2) + if err != nil { + return gott.Tuple(args), err + } } person.Credits.Crew[i] = job } - return gott.Tuple(args), err + return gott.Tuple(args), nil } func convertJobsNames(args ...interface{}) interface{} { @@ -161,7 +177,8 @@ Bind(network.DoRequest). Bind(network.HandleRequestError). Bind(network.ReadResponse). Bind(unmarshalPerson). - Bind(convertPersonDates). + Bind(convertPersonBirthDate). + Bind(convertPersonDeathDate). Bind(convertJobsDates). Map(convertJobsNames). Map(sortJobs). diff --git a/tmdb/search.go b/tmdb/search.go index 03b318ececa1bd0c78a7f3d9c03e7b11d32cd4fe..08a3c0492c8c4f5a6fa93dae04cebecfc3da5767 100644 --- a/tmdb/search.go +++ b/tmdb/search.go @@ -1,7 +1,6 @@ package tmdb import ( - "notabug.org/apiote/amuse/utils" "notabug.org/apiote/amuse/network" "encoding/json" @@ -75,22 +74,25 @@ } func convertSearchResultsDates(args ...interface{}) (interface{}, error) { results := args[1].(*network.Result).Result.(*SearchResults) - var err error = nil for i, result := range results.Results { if result.Release_date_str != "" { - date, err2 := time.Parse("2006-01-02", result.Release_date_str) + date, err := time.Parse("2006-01-02", result.Release_date_str) + if err != nil { + return gott.Tuple(args), err + } result.Release_date = date - err = utils.Or(err2, err) results.Results[i] = result } if result.First_air_date_str != "" { - date, err2 := time.Parse("2006-01-02", result.First_air_date_str) + date, err := time.Parse("2006-01-02", result.First_air_date_str) + if err != nil { + return gott.Tuple(args), err + } result.Release_date = date - err = utils.Or(err2, err) results.Results[i] = result } } - return gott.Tuple(args), err + return gott.Tuple(args), nil } func Search(query, language, page string) (*SearchResults, error) { diff --git a/tmdb/serie.go b/tmdb/serie.go index 1e86ff12fe45aa39e39d67201a922bb8cdd0b6fc..5151e022d4af2e8b817e7108eb7102f7f8bfa101 100644 --- a/tmdb/serie.go +++ b/tmdb/serie.go @@ -4,7 +4,6 @@ import ( "notabug.org/apiote/amuse/datastructure" "notabug.org/apiote/amuse/i18n" "notabug.org/apiote/amuse/network" - "notabug.org/apiote/amuse/utils" "encoding/json" "fmt" @@ -163,23 +162,41 @@ result.Result = serie return gott.Tuple(args), err } -func convertSerieDates(args ...interface{}) (interface{}, error) { +func convertFirstDate(args ...interface{}) (interface{}, error) { serie := args[1].(*network.Result).Result.(*TvSerie) - var err error + var ( + date time.Time + err error + ) if serie.First_air_date_str != "" { - date, err2 := time.Parse("2006-01-02", serie.First_air_date_str) + date, err = time.Parse("2006-01-02", serie.First_air_date_str) serie.First_air_date = date - err = utils.Or(err, err2) } + return gott.Tuple(args), err +} + +func convertLatestDate(args ...interface{}) (interface{}, error) { + serie := args[1].(*network.Result).Result.(*TvSerie) + var ( + date time.Time + err error + ) if serie.Last_air_date_str != "" { - date, err2 := time.Parse("2006-01-02", serie.Last_air_date_str) + date, err = time.Parse("2006-01-02", serie.Last_air_date_str) serie.Last_air_date = date - err = utils.Or(err, err2) } + return gott.Tuple(args), err +} + +func convertLastDate(args ...interface{}) (interface{}, error) { + serie := args[1].(*network.Result).Result.(*TvSerie) + var ( + date time.Time + err error + ) if serie.Last_episode_to_air.Air_date_str != "" { - date, err2 := time.Parse("2006-01-02", serie.Last_episode_to_air.Air_date_str) + date, err = time.Parse("2006-01-02", serie.Last_episode_to_air.Air_date_str) serie.Last_episode_to_air.Air_date = date - err = utils.Or(err, err2) } return gott.Tuple(args), err } @@ -209,16 +226,17 @@ } func convertSeasonDates(args ...interface{}) (interface{}, error) { season := args[1].(*network.Result).Result.(*Season) - var err error for i, episode := range season.Episodes { if episode.Air_date_str != "" { - date, err2 := time.Parse("2006-01-02", episode.Air_date_str) + date, err := time.Parse("2006-01-02", episode.Air_date_str) + if err != nil { + return gott.Tuple(args), err + } episode.Air_date = date - err = utils.Or(err, err2) season.Episodes[i] = episode } } - return gott.Tuple(args), err + return gott.Tuple(args), nil } func GetSerie(id, language string) (*TvSerie, error) { @@ -233,7 +251,9 @@ Bind(network.ReadResponse). Tee(cleanCache). Tee(saveCacheEntry). Bind(unmarshalSerie). - Bind(convertSerieDates). + Bind(convertFirstDate). + Bind(convertLatestDate). + Bind(convertLastDate). Finish() if err != nil { @@ -263,12 +283,13 @@ return season, err } func GetSeasons(serie *TvSerie, language string) ([]Season, error) { - var err error var seasons []Season for _, serieSeason := range serie.Seasons { - season, err2 := GetSeason(serie, language, serieSeason.Season_number) - err = utils.Or(err, err2) + season, err := GetSeason(serie, language, serieSeason.Season_number) + if err != nil { + return seasons, err + } seasons = append(seasons, season) } - return seasons, err + return seasons, nil } diff --git a/utils/error.go b/utils/error.go deleted file mode 100644 index 90443fdd67f3c18fd7edde7f86ed41107ff25f3e..0000000000000000000000000000000000000000 --- a/utils/error.go +++ /dev/null @@ -1,9 +0,0 @@ -package utils - -func Or(e1, e2 error) error { - if e2 == nil { - return e1 - } else { - return e2 - } -}