summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2020-09-14 19:35:01 -0400
committerrsiddharth <s@ricketyspace.net>2020-09-14 19:35:01 -0400
commit52f04d02b7e657c19d08ca418784c51f42fe83ef (patch)
treeb894af06b2bda4b7efcb0c71028ae3bf3697055d
parentcb425936739a92317a81eee895a73061c74ad81c (diff)
cedar.go: add parseFeed
-rw-r--r--cedar.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/cedar.go b/cedar.go
index 86901dc..0f2abf1 100644
--- a/cedar.go
+++ b/cedar.go
@@ -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() {}