1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package front
- import (
- "notabug.org/apiote/amuse/tmdb"
- "notabug.org/apiote/amuse/wikidata"
- "golang.org/x/text/language"
- )
- type NoSuchRendererError struct {
- mimetype string
- }
- func (e NoSuchRendererError) Error() string {
- return "No renderer for " + e.mimetype
- }
- type Renderer interface {
- RenderFilm(*tmdb.Film, []language.Tag) string
- RenderSearch(*tmdb.SearchResults, *wikidata.SearchResults, []language.Tag) string
- RenderIndex(string, []language.Tag) string
- RenderTvSerie(*tmdb.TvSerie, []language.Tag) string
- RenderPerson(*tmdb.Person, []language.Tag) string
- RenderBook(wikidata.Book, []language.Tag) string
- RenderBookSerie(wikidata.BookSerie, []language.Tag) string
- RenderAbout([]language.Tag) string
- RenderErrorPage(int, []language.Tag) string
- RenderLogin([]language.Tag, error) string
- }
- func NewRenderer(mimetype string) (Renderer, error) {
- switch mimetype {
- case "text/html":
- return HtmlRenderer{}, nil
- case "application/capnproto":
- return CapnprotoRenderer{}, nil
- default:
- return nil, NoSuchRendererError{}
- }
- }
|