webweav.ing/cmd/web/handlers.go

41 lines
1.0 KiB
Go
Raw Normal View History

2024-01-19 03:33:37 +00:00
package main
2024-01-22 20:43:46 +00:00
import (
"fmt"
2024-01-22 20:43:46 +00:00
"html"
"net/http"
"strings"
"git.32bit.cafe/yequari/rss-gen/feed"
2024-01-22 20:43:46 +00:00
)
2024-01-19 03:33:37 +00:00
func (app *application) home(w http.ResponseWriter, r *http.Request) {
2024-01-22 20:43:46 +00:00
if r.URL.Path != "/" {
http.NotFound(w, r)
return
}
app.render(w, http.StatusOK, "home.tmpl.html", nil)
2024-01-19 03:33:37 +00:00
}
func (app *application) generateRss(w http.ResponseWriter, r *http.Request) {
2024-01-22 20:43:46 +00:00
q := r.URL.Query()
siteName := q.Get("site-name")
siteUrl := q.Get("site-url")
siteDesc := q.Get("site-description")
pageUrls := q.Get("page-urls")
pages := strings.Split(pageUrls, "\n")
for i := range pages {
pages[i] = strings.TrimSpace(pages[i])
}
feed, err := feed.GenerateRss(siteUrl, siteName, siteDesc, pages...)
2024-01-22 20:43:46 +00:00
if err != nil {
w.Write([]byte(fmt.Sprintf("<p class=\"error\">Error generating feed: %s</p>", err.Error())))
2024-01-22 20:43:46 +00:00
app.infoLog.Printf("Error generating feed: %s\n", err.Error())
}
for _, line := range strings.Split(feed, "\n") {
w.Write([]byte(html.EscapeString(line) + "\n"))
}
2024-01-19 03:33:37 +00:00
}