diff options
author | rsiddharth <s@ricketyspace.net> | 2020-09-14 19:35:01 -0400 |
---|---|---|
committer | rsiddharth <s@ricketyspace.net> | 2020-09-14 19:35:01 -0400 |
commit | 52f04d02b7e657c19d08ca418784c51f42fe83ef (patch) | |
tree | b894af06b2bda4b7efcb0c71028ae3bf3697055d | |
parent | cb425936739a92317a81eee895a73061c74ad81c (diff) |
cedar.go: add parseFeed
-rw-r--r-- | cedar.go | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -1,10 +1,28 @@ package main import ( + "encoding/xml" "io" "net/http" ) +type Link struct { + XMLName xml.Name `xml:"link"` + Href string `xml:"href,attr"` +} + +type Entry struct { + XMLName xml.Name `xml:"entry"` + Id string `xml:"id"` + Title string `xml:"title"` + Link Link +} + +type Feed struct { + XMLName xml.Name `xml:"feed"` + Entry []Entry `xml:"entry"` +} + func newsFeed() ([]byte, error) { // Init feed. feed := make([]byte, 0) @@ -29,4 +47,15 @@ func newsFeed() ([]byte, error) { return feed, nil } +func parseFeed(feed []byte) (Feed, error) { + f := Feed{} + + err := xml.Unmarshal(feed, &f) + if err != nil { + return f, err + } + + return f, nil +} + func main() {} |