From eb8acc8a5bdd041ab3e8354188bdcfb35912b159 Mon Sep 17 00:00:00 2001 From: Las Zenow Date: Sat, 31 Aug 2013 02:45:30 +0200 Subject: [PATCH] Add rss feed for the news --- news.go | 14 +++++++++++++- template.go | 4 +++- templates/news.html | 4 +++- templates/news_rss.xml | 20 ++++++++++++++++++++ 4 files changed, 39 insertions(+), 3 deletions(-) create mode 100644 templates/news_rss.xml diff --git a/news.go b/news.go index 497ae92..9f62939 100644 --- a/news.go +++ b/news.go @@ -15,11 +15,23 @@ type newsEntry struct { } func newsHandler(w http.ResponseWriter, r *http.Request, sess *Session) { + err := r.ParseForm() + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + var data newsData data.S = GetStatus(w, r) data.S.News = true data.News = getNews(NUM_NEWS, 0) - loadTemplate(w, "news", data) + + format := r.Form["fmt"] + if (len(format) > 0) && (format[0] == "rss") { + loadTxtTemplate(w, "news_rss.xml", data) + } else { + loadTemplate(w, "news", data) + } } func editNewsHandler(w http.ResponseWriter, r *http.Request, sess *Session) { diff --git a/template.go b/template.go index 1a64b0b..dc41ba3 100644 --- a/template.go +++ b/template.go @@ -60,7 +60,9 @@ func loadTemplate(w http.ResponseWriter, tmpl string, data interface{}) { } } -var txt_templates = txt_tmpl.Must(txt_tmpl.ParseFiles(TEMPLATE_PATH + "search_rss.xml")) +var txt_templates = txt_tmpl.Must(txt_tmpl.ParseFiles(TEMPLATE_PATH+"search_rss.xml", + TEMPLATE_PATH+"news_rss.xml", +)) func loadTxtTemplate(w http.ResponseWriter, tmpl string, data interface{}) { err := txt_templates.ExecuteTemplate(w, tmpl, data) diff --git a/templates/news.html b/templates/news.html index fe96ea3..74a63db 100644 --- a/templates/news.html +++ b/templates/news.html @@ -1,6 +1,8 @@ {{template "header.html" .S}} -

News:

+

News: + +

{{range .News}} diff --git a/templates/news_rss.xml b/templates/news_rss.xml new file mode 100644 index 0000000..50318b1 --- /dev/null +++ b/templates/news_rss.xml @@ -0,0 +1,20 @@ + + + +{{with .S}} + Imperial Library of Trantor - News + News of the library + {{.BaseURL}}/news/ +{{end}} + +{{$baseURL := .S.BaseURL}} +{{range .News}} + + {{.Date}} + {{.Text}} + {{$baseURL}}/news/ + +{{end}} + + +