Initial commit.
This commit is contained in:
55
feed/feed.go
Normal file
55
feed/feed.go
Normal file
@@ -0,0 +1,55 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user