rss.go

 1package main
 2
 3import (
 4	"fmt"
 5
 6	"github.com/mmcdole/gofeed"
 7)
 8
 9func getRSSReleases(p project) (project, error) {
10	fp := gofeed.NewParser()
11	feed, err := fp.ParseURL(p.URL + "/releases.atom")
12	if err != nil {
13		fmt.Println(err)
14		return p, err
15	}
16
17	for _, item := range feed.Items {
18		p.Releases = append(p.Releases, release{
19			Tag:     bmStrict.Sanitize(item.Title),
20			Content: bmUGC.Sanitize(item.Content),
21			URL:     bmStrict.Sanitize(item.Link),
22			Date:    *item.PublishedParsed,
23		})
24	}
25
26	// TODO: Doesn't seem to work?
27	// sort.Slice(p.Releases, func(i, j int) bool { return p.Releases[i].Date.After(p.Releases[j].Date) })
28
29	return p, nil
30}