openidec

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 3fb21ef85b37cdfe945d394a94149806f29d778b
parent 9f66a96ee428bad787c71f0eaef98977b1e1b518
Author: Peter Kosyh <p.kosyh@gmail.com>
Date:   Wed,  9 Sep 2020 11:15:43 +0300

Atom feed

Diffstat:
Mii-node/tpl/header.tpl | 2++
Mii-node/web.go | 42+++++++++++++++++++++++++++---------------
2 files changed, 29 insertions(+), 15 deletions(-)

diff --git a/ii-node/tpl/header.tpl b/ii-node/tpl/header.tpl @@ -6,6 +6,8 @@ <meta name="viewport" content="width=device-width; initial-scale=1.0"> <link rel="icon" href="/lib/icon.png" type="image/png"> <link rel="stylesheet" type="text/css" href="/lib/style.css"> +{{ if eq .Template "query.tpl" }}<link href="/{{.BasePath}}/rss" type="application/atom+xml" rel="alternate" title="{{.Sysname}} {{.BasePath}} :: Atom feed" />{{ end }} + <title>{{.Sysname}}</title> </head> <body> diff --git a/ii-node/web.go b/ii-node/web.go @@ -32,6 +32,7 @@ type WebContext struct { User *ii.User Echolist *ii.EDB Selected string + Template string Ref string Info string Sysname string @@ -43,6 +44,7 @@ func www_register(ctx *WebContext, w http.ResponseWriter, r *http.Request) error ii.Trace.Printf("www register") switch r.Method { case "GET": + ctx.Template = "register.tpl" err := ctx.www.tpl.ExecuteTemplate(w, "register.tpl", ctx) return err case "POST": @@ -72,6 +74,7 @@ func www_login(ctx *WebContext, w http.ResponseWriter, r *http.Request) error { ii.Trace.Printf("www login") switch r.Method { case "GET": + ctx.Template = "login.tpl" err := ctx.www.tpl.ExecuteTemplate(w, "login.tpl", ctx) return err case "POST": @@ -109,6 +112,7 @@ func www_profile(ctx *WebContext, w http.ResponseWriter, r *http.Request) error ctx.Info = string(data) } } + ctx.Template = "profile.tpl" err := ctx.www.tpl.ExecuteTemplate(w, "profile.tpl", ctx) return err } @@ -128,6 +132,7 @@ func www_logout(ctx *WebContext, w http.ResponseWriter, r *http.Request) error { func www_index(ctx *WebContext, w http.ResponseWriter, r *http.Request) error { ii.Trace.Printf("www index") ctx.Echoes = ctx.www.db.Echoes(nil, ii.Query { User: *ctx.User }) + ctx.Template = "index.tpl" err := ctx.www.tpl.ExecuteTemplate(w, "index.tpl", ctx) return err } @@ -358,25 +363,25 @@ func www_query(ctx *WebContext, w http.ResponseWriter, r *http.Request, q ii.Que } if rss { ctx.Topic = db.Name + " :: " + req - fmt.Fprintf(w, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n") fmt.Fprintf(w, -`<rss version="2.0"> -<channel> +`<?xml version="1.0" encoding="UTF-8"?> +<feed xmlns="http://www.w3.org/2005/Atom"> <title>%s</title> -<description>RSS feed with last messages</description> -<link>%s</link> +<subtitle>RSS feed with last messages</subtitle> +<link href="%s" rel="self" /> +<id>%s/%s</id> `, - str_esc(ctx.Topic), ctx.www.Host) + str_esc(ctx.Topic), ctx.www.Host, ctx.www.Host, ctx.BasePath) for _, m := range(ctx.Msg) { fmt.Fprintf(w, -`<item> +`<entry> <title>%s</title> - <guid>%s</guid> - <link>%s/%s#%s</link> - <pubDate>%s</pubDate> - <description>%s%s</description> - <author>%s</author> -</item> + <id>%s</id> + <link href="%s/%s#%s" /> + <updated>%s</updated> + <content type="html">%s%s</content> + <author><name>%s</name></author> +</entry> `, str_esc(m.Subj), m.MsgId, ctx.www.Host, m.MsgId, m.MsgId, time.Unix(m.Date, 0).Format("2006-01-02 15:04:05"), @@ -385,11 +390,11 @@ func www_query(ctx *WebContext, w http.ResponseWriter, r *http.Request, q ii.Que str_esc(m.From)) } fmt.Fprintf(w, -`</channel> -</rss> +`</feed> `) return nil } + ctx.Template = "query.tpl" return ctx.www.tpl.ExecuteTemplate(w, "query.tpl", ctx) } @@ -437,6 +442,7 @@ func www_topics(ctx *WebContext, w http.ResponseWriter, r *http.Request, page i nr-- } ii.Trace.Printf("Stop to generate topics") + ctx.Template = "topics.tpl" err := ctx.www.tpl.ExecuteTemplate(w, "topics.tpl", ctx) return err } @@ -489,6 +495,7 @@ func www_topic(ctx *WebContext, w http.ResponseWriter, r *http.Request, page int ctx.Msg = append(ctx.Msg, m) nr-- } + ctx.Template = "topic.tpl" err := ctx.www.tpl.ExecuteTemplate(w, "topic.tpl", ctx) return err } @@ -532,6 +539,7 @@ func www_edit(ctx *WebContext, w http.ResponseWriter, r *http.Request) error { } msg.Text = msg.Text + "\nP.S. Edited: " + time.Now().Format("2006-01-02 15:04:05") ctx.Msg = append(ctx.Msg, &msg) + ctx.Template = "edit.tpl" err := ctx.www.tpl.ExecuteTemplate(w, "edit.tpl", ctx) return err case "POST": @@ -547,6 +555,7 @@ func www_new(ctx *WebContext, w http.ResponseWriter, r *http.Request) error { switch r.Method { case "GET": + ctx.Template = "new.tpl" err := ctx.www.tpl.ExecuteTemplate(w, "new.tpl", ctx) return err case "POST": @@ -612,6 +621,7 @@ func www_new(ctx *WebContext, w http.ResponseWriter, r *http.Request) error { m.MsgId = "" } ctx.Msg = append(ctx.Msg, m) + ctx.Template = "preview.tpl" err = ctx.www.tpl.ExecuteTemplate(w, "preview.tpl", ctx) return err } @@ -635,6 +645,7 @@ func www_reply(ctx *WebContext, w http.ResponseWriter, r *http.Request, quote bo msg.Text = "" } ctx.Msg = append(ctx.Msg, &msg) + ctx.Template = "reply.tpl" err := ctx.www.tpl.ExecuteTemplate(w, "reply.tpl", ctx) return err } @@ -833,6 +844,7 @@ func WebInit(www *WWW) { func handleErr(ctx *WebContext, w http.ResponseWriter, err error) { ctx.Error = err.Error() + ctx.Template = "error.tpl" ctx.www.tpl.ExecuteTemplate(w, "error.tpl", ctx) }