|
@@ -1,10 +1,11 @@
|
|
package front
|
|
package front
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "notabug.org/apiote/amuse/accounts"
|
|
"notabug.org/apiote/amuse/i18n"
|
|
"notabug.org/apiote/amuse/i18n"
|
|
"notabug.org/apiote/amuse/tmdb"
|
|
"notabug.org/apiote/amuse/tmdb"
|
|
- "notabug.org/apiote/amuse/wikidata"
|
|
|
|
"notabug.org/apiote/amuse/utils"
|
|
"notabug.org/apiote/amuse/utils"
|
|
|
|
+ "notabug.org/apiote/amuse/wikidata"
|
|
|
|
|
|
"bytes"
|
|
"bytes"
|
|
"golang.org/x/text/language"
|
|
"golang.org/x/text/language"
|
|
@@ -16,6 +17,10 @@ import (
|
|
type RenderData struct {
|
|
type RenderData struct {
|
|
Data interface{}
|
|
Data interface{}
|
|
Strings i18n.Translation
|
|
Strings i18n.Translation
|
|
|
|
+ State struct {
|
|
|
|
+ Error error
|
|
|
|
+ User accounts.User
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
func (d RenderData) LetAmuse0() string {
|
|
func (d RenderData) LetAmuse0() string {
|
|
@@ -44,15 +49,17 @@ func (d RenderData) GetErrorData(code int, kind string) string {
|
|
|
|
|
|
type HtmlRenderer struct{}
|
|
type HtmlRenderer struct{}
|
|
|
|
|
|
-func (HtmlRenderer) RenderFilm(film *tmdb.Film, languages []language.Tag) string {
|
|
|
|
|
|
+func render(languages []language.Tag, data RenderData, file string) string {
|
|
i18n.LoadServerLangs()
|
|
i18n.LoadServerLangs()
|
|
language := i18n.Match(languages)
|
|
language := i18n.Match(languages)
|
|
strings, err := i18n.LoadStrings(language)
|
|
strings, err := i18n.LoadStrings(language)
|
|
if err != nil {
|
|
if err != nil {
|
|
// todo return http:500
|
|
// todo return http:500
|
|
}
|
|
}
|
|
- data := RenderData{film, strings}
|
|
|
|
- t, _ := template.ParseFiles(utils.DataHome + "/templates/film.html")
|
|
|
|
|
|
+
|
|
|
|
+ data.Strings = strings
|
|
|
|
+
|
|
|
|
+ t, _ := template.ParseFiles(utils.DataHome + "/templates/" + file + ".html")
|
|
b := bytes.NewBuffer([]byte{})
|
|
b := bytes.NewBuffer([]byte{})
|
|
err = t.Execute(b, data)
|
|
err = t.Execute(b, data)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -61,146 +68,56 @@ func (HtmlRenderer) RenderFilm(film *tmdb.Film, languages []language.Tag) string
|
|
return b.String()
|
|
return b.String()
|
|
}
|
|
}
|
|
|
|
|
|
-func (HtmlRenderer) RenderSearch(tmdbResults *tmdb.SearchResults, inventaireResults *wikidata.SearchResults, languages []language.Tag) string {
|
|
|
|
- i18n.LoadServerLangs()
|
|
|
|
- language := i18n.Match(languages)
|
|
|
|
- strings, err := i18n.LoadStrings(language)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
|
|
+func (HtmlRenderer) RenderFilm(film *tmdb.Film, languages []language.Tag) string {
|
|
|
|
+ data := RenderData{Data: film}
|
|
|
|
+ return render(languages, data, "film")
|
|
|
|
+}
|
|
|
|
|
|
|
|
+func (HtmlRenderer) RenderSearch(tmdbResults *tmdb.SearchResults, inventaireResults *wikidata.SearchResults, languages []language.Tag) string {
|
|
results := struct {
|
|
results := struct {
|
|
T *tmdb.SearchResults
|
|
T *tmdb.SearchResults
|
|
I *wikidata.SearchResults
|
|
I *wikidata.SearchResults
|
|
}{tmdbResults, inventaireResults}
|
|
}{tmdbResults, inventaireResults}
|
|
-
|
|
|
|
- data := RenderData{results, strings}
|
|
|
|
- t, _ := template.ParseFiles(utils.DataHome + "/templates/search.html")
|
|
|
|
- b := bytes.NewBuffer([]byte{})
|
|
|
|
- err = t.Execute(b, data)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- return b.String()
|
|
|
|
|
|
+ data := RenderData{Data: results}
|
|
|
|
+ return render(languages, data, "search")
|
|
}
|
|
}
|
|
|
|
|
|
func (HtmlRenderer) RenderIndex(randomComedy string, languages []language.Tag) string {
|
|
func (HtmlRenderer) RenderIndex(randomComedy string, languages []language.Tag) string {
|
|
- i18n.LoadServerLangs()
|
|
|
|
- language := i18n.Match(languages)
|
|
|
|
- strings, err := i18n.LoadStrings(language)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- data := RenderData{randomComedy, strings}
|
|
|
|
- t, _ := template.ParseFiles(utils.DataHome + "/templates/index.html")
|
|
|
|
- b := bytes.NewBuffer([]byte{})
|
|
|
|
- err = t.Execute(b, data)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- return b.String()
|
|
|
|
|
|
+ data := RenderData{Data: randomComedy}
|
|
|
|
+ return render(languages, data, "index")
|
|
}
|
|
}
|
|
|
|
|
|
-func (HtmlRenderer) RenderTvSerie(serie *tmdb.TvSerie, languages []language.Tag) string {
|
|
|
|
- i18n.LoadServerLangs()
|
|
|
|
- language := i18n.Match(languages)
|
|
|
|
- strings, err := i18n.LoadStrings(language)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- data := RenderData{serie, strings}
|
|
|
|
- t, _ := template.ParseFiles(utils.DataHome + "/templates/serie.html")
|
|
|
|
- b := bytes.NewBuffer([]byte{})
|
|
|
|
- err = t.Execute(b, data)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- return b.String()
|
|
|
|
|
|
+func (HtmlRenderer) RenderTvSerie(tvSerie *tmdb.TvSerie, languages []language.Tag) string {
|
|
|
|
+ data := RenderData{Data: tvSerie}
|
|
|
|
+ return render(languages, data, "tvserie")
|
|
}
|
|
}
|
|
|
|
|
|
func (HtmlRenderer) RenderPerson(person *tmdb.Person, languages []language.Tag) string {
|
|
func (HtmlRenderer) RenderPerson(person *tmdb.Person, languages []language.Tag) string {
|
|
- i18n.LoadServerLangs()
|
|
|
|
- language := i18n.Match(languages)
|
|
|
|
- strings, err := i18n.LoadStrings(language)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- data := RenderData{person, strings}
|
|
|
|
- t, _ := template.ParseFiles(utils.DataHome + "/templates/person.html")
|
|
|
|
- b := bytes.NewBuffer([]byte{})
|
|
|
|
- err = t.Execute(b, data)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- return b.String()
|
|
|
|
|
|
+ data := RenderData{Data: person}
|
|
|
|
+ return render(languages, data, "person")
|
|
}
|
|
}
|
|
|
|
|
|
func (HtmlRenderer) RenderBook(book wikidata.Book, languages []language.Tag) string {
|
|
func (HtmlRenderer) RenderBook(book wikidata.Book, languages []language.Tag) string {
|
|
- i18n.LoadServerLangs()
|
|
|
|
- language := i18n.Match(languages)
|
|
|
|
- strings, err := i18n.LoadStrings(language)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- data := RenderData{book, strings}
|
|
|
|
- t, _ := template.ParseFiles(utils.DataHome + "/templates/book.html")
|
|
|
|
- b := bytes.NewBuffer([]byte{})
|
|
|
|
- err = t.Execute(b, data)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- return b.String()
|
|
|
|
|
|
+ data := RenderData{Data: book}
|
|
|
|
+ return render(languages, data, "book")
|
|
}
|
|
}
|
|
|
|
|
|
func (HtmlRenderer) RenderBookSerie(bookSerie wikidata.BookSerie, languages []language.Tag) string {
|
|
func (HtmlRenderer) RenderBookSerie(bookSerie wikidata.BookSerie, languages []language.Tag) string {
|
|
- i18n.LoadServerLangs()
|
|
|
|
- language := i18n.Match(languages)
|
|
|
|
- strings, err := i18n.LoadStrings(language)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- data := RenderData{bookSerie, strings}
|
|
|
|
- t, _ := template.ParseFiles(utils.DataHome + "/templates/bookserie.html")
|
|
|
|
- b := bytes.NewBuffer([]byte{})
|
|
|
|
- err = t.Execute(b, data)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- return b.String()
|
|
|
|
|
|
+ data := RenderData{Data: bookSerie}
|
|
|
|
+ return render(languages, data, "bookserie")
|
|
}
|
|
}
|
|
|
|
|
|
func (HtmlRenderer) RenderAbout(languages []language.Tag) string {
|
|
func (HtmlRenderer) RenderAbout(languages []language.Tag) string {
|
|
- i18n.LoadServerLangs()
|
|
|
|
- language := i18n.Match(languages)
|
|
|
|
- strings, err := i18n.LoadStrings(language)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- i18n.RenderAsciiDoc(strings.About["doc"])
|
|
|
|
- data := RenderData{nil, strings}
|
|
|
|
- t, _ := template.ParseFiles(utils.DataHome + "/templates/about.html")
|
|
|
|
- b := bytes.NewBuffer([]byte{})
|
|
|
|
- err = t.Execute(b, data)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- return b.String()
|
|
|
|
|
|
+ data := RenderData{}
|
|
|
|
+ return render(languages, data, "about")
|
|
}
|
|
}
|
|
|
|
|
|
func (HtmlRenderer) RenderErrorPage(code int, languages []language.Tag) string {
|
|
func (HtmlRenderer) RenderErrorPage(code int, languages []language.Tag) string {
|
|
- i18n.LoadServerLangs()
|
|
|
|
- language := i18n.Match(languages)
|
|
|
|
- strings, err := i18n.LoadStrings(language)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- i18n.RenderAsciiDoc(strings.About["doc"])
|
|
|
|
- data := RenderData{code, strings}
|
|
|
|
- t, _ := template.ParseFiles(utils.DataHome + "/templates/error.html")
|
|
|
|
- b := bytes.NewBuffer([]byte{})
|
|
|
|
- err = t.Execute(b, data)
|
|
|
|
- if err != nil {
|
|
|
|
- // todo return http:500
|
|
|
|
- }
|
|
|
|
- return b.String()
|
|
|
|
|
|
+ data := RenderData{Data: code}
|
|
|
|
+ return render(languages, data, "error")
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+func (HtmlRenderer) RenderLogin(languages []language.Tag, authError error) string {
|
|
|
|
+ data := RenderData{}
|
|
|
|
+ return render(languages, data, "login")
|
|
}
|
|
}
|