/
apihandler.go
42 lines (39 loc) · 1.54 KB
/
apihandler.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package brooklet
import (
"github.com/gorilla/mux"
"github.com/hygerth/brooklet/atom"
"github.com/hygerth/brooklet/db"
"github.com/hygerth/brooklet/structure"
"encoding/xml"
"fmt"
"net/http"
"time"
)
func apiLatestHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, xml.Header)
enc := xml.NewEncoder(w)
feeds, _ := db.GetAllFeeds()
entries := structure.ExtractEntriesFromFeeds(feeds...)
filter, _ := db.GetFilter()
entries = structure.FilterEntries(entries, filter)
atomfeed := atom.CreateAtomFeed("Latest", "The latest news from your Brooklet subscriptions", "latestbrooklet", "Brooklet", "", time.Now())
for _, entry := range entries {
atomfeed.AddEntry(entry.Title, entry.Summary, entry.Content, entry.ID, entry.ID, entry.PermaLink, entry.Author, entry.Twitter, entry.Updated)
}
enc.Encode(atomfeed)
}
func apiFeedHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, xml.Header)
enc := xml.NewEncoder(w)
vars := mux.Vars(r)
name := vars["name"]
feed, _ := db.GetFeedByName(name)
entries := structure.ExtractEntriesFromFeeds(feed)
filter, _ := db.GetFilter()
entries = structure.FilterEntries(entries, filter)
atomfeed := atom.CreateAtomFeed(feed.Title, feed.Subtitle, feed.Name, feed.Title, feed.Twitter, feed.Updated)
for _, entry := range entries {
atomfeed.AddEntry(entry.Title, entry.Summary, entry.Content, entry.ID, entry.ID, entry.PermaLink, entry.Author, entry.Twitter, entry.Updated)
}
enc.Encode(atomfeed)
}