diff options
Diffstat (limited to 'cedar.go')
-rw-r--r-- | cedar.go | 32 |
1 files changed, 32 insertions, 0 deletions
@@ -1,10 +1,12 @@ package main import ( + "encoding/json" "encoding/xml" "io" "net/http" "os" + "path" ) type Link struct { @@ -24,6 +26,8 @@ type Feed struct { Entry []Entry `xml:"entry"` } +type Ids []string + func newsFeed() ([]byte, error) { // Init feed. feed := make([]byte, 0) @@ -75,4 +79,32 @@ func readFile(f *os.File) ([]byte, error) { return bs, nil } +func cacheFor(section string) (Ids, error) { + cache := make(Ids, 0) + + h, _ := os.UserHomeDir() + d := path.Join(h, ".cedar") + + err := os.MkdirAll(d, 0700) + if err != nil { + return cache, err + } + + f, err := os.Open(path.Join(d, section+".json")) + if os.IsNotExist(err) { + return cache, nil + } + + bs, err := readFile(f) + if err != nil { + return cache, err + } + + err = json.Unmarshal(bs, &cache) + if err != nil { + return cache, err + } + return cache, nil +} + func main() {} |