Fix feed updated for appendNewItems

master
Bel LaPointe 2018-10-11 15:28:05 -06:00
parent c0b6d70899
commit 0640e065fa
3 changed files with 11 additions and 7 deletions

View File

@ -103,28 +103,32 @@ func (feed *Feed) fromGofeed(gofeed *gofeed.Feed) ([]*Item, error) {
t := time.Now()
updated = &t
}
newitems, err := feed.appendNewItems(gofeed.Items)
newitems, latest, err := feed.appendNewItems(gofeed.Items)
if err != nil {
return nil, err
}
feed.Updated = *updated //time.Now().UTC() //*updated
feed.Updated = latest.Add(time.Second) //time.Now() //*updated //time.Now().UTC() //*updated
feed.Title = gofeed.Title
return newitems, nil
}
func (feed *Feed) appendNewItems(items []*gofeed.Item) ([]*Item, error) {
func (feed *Feed) appendNewItems(items []*gofeed.Item) ([]*Item, time.Time, error) {
latest := feed.Updated
newitems := []*Item{}
for i := range items {
t := gofeedItemTS(items[i])
if t.Before(feed.Updated) {
continue
}
if t.After(latest) {
latest = *t
}
if ok, _ := regexp.MatchString(feed.ItemFilter, items[i].Title); !ok {
continue
}
item := fromGofeedItem(items[i], feed.ContentFilter)
item := FromGofeedItem(items[i], feed.ContentFilter)
newitems = append(newitems, item)
feed.Items = append(feed.Items, item.Name)
}
return newitems, nil
return newitems, latest, nil
}

View File

@ -50,7 +50,7 @@ func (item *Item) Serialize() ([]byte, error) {
return buffer.Bytes(), err
}
func fromGofeedItem(gfitem *gofeed.Item, filter string) *Item {
func FromGofeedItem(gfitem *gofeed.Item, filter string) *Item {
item := &Item{
Name: gfitem.Title,
Link: gfitem.Link,

View File

@ -79,7 +79,7 @@ func Test_RSSItem(t *testing.T) {
},
}
for _, c := range cases {
output := fromGofeedItem(&c.input, c.filter)
output := FromGofeedItem(&c.input, c.filter)
if *output != c.output {
t.Errorf("failed to convert gofeed: wanted %v, got %v", c.output, *output)
}