package feed import ( "time" "github.com/mmcdole/gofeed" ) type Entry struct { Title string Link string Published time.Time Categories []string } func EntryFromFeed(item *gofeed.Item) *Entry { t := time.Now() if item.UpdatedParsed != nil { t = *item.UpdatedParsed } e := &Entry{ Title: item.Title, Link: item.Link, Published: t, Categories: item.Categories, } return e } type Feed struct { Title string Link string Updated time.Time Entries []*Entry } func NewFromFeed(feed *gofeed.Feed) *Feed { t := time.Now() if feed.UpdatedParsed != nil { t = *feed.UpdatedParsed } f := &Feed{ Title: feed.Title, Link: feed.Link, Updated: t, } for _, item := range feed.Items { f.Entries = append(f.Entries, EntryFromFeed(item)) } return f }