package yatwiki
import (
"fmt"
"html/template"
"net/http"
"net/url"
"time"
)
func (this *WikiServer) routeRecentChangesRSS(w http.ResponseWriter, r *http.Request) {
recents, err := this.db.GetRecentChanges(0, this.opts.RecentChangesRSS)
if err != nil {
this.serveInternalError(w, r, err)
return
}
content := `
` + template.HTMLEscapeString(this.opts.PageTitle) + `
` + template.HTMLEscapeString(this.opts.ExternalBaseURL) + `
` + template.HTMLEscapeString(this.opts.PageTitle) + `
` + template.HTMLEscapeString(this.opts.DeclareRSSLanguage) + `
`
for _, a := range recents {
content += `
-
` + template.HTMLEscapeString(a.Title+` (r`+fmt.Sprintf("%d", a.ID)+`)`) + `
` + template.HTMLEscapeString(this.opts.ExternalBaseURL+`archive/`+fmt.Sprintf("%d", a.ID)) + `
` + template.HTMLEscapeString(this.opts.ExternalBaseURL+`archive/`+fmt.Sprintf("%d", a.ID)) + `
` + template.HTMLEscapeString(this.opts.DeclareRSSEmail+` (`+this.opts.PageTitle+` `+a.Author+`)`) + `
` + template.HTMLEscapeString(time.Unix(a.Modified, 0).In(this.loc).Format(time.RFC1123Z)) + `
` + template.HTMLEscapeString(`
latest version
|
revision `+fmt.Sprintf("%d", a.ID)+`
|
diff to previous
`) + `
`
}
content += `
`
w.Header().Set(`Content-Type`, `application/rss+xml`)
w.Write([]byte(content))
}