Attach interval to feed for saving/loading

This commit is contained in:
Bel LaPointe
2018-10-09 09:24:10 -06:00
parent e4785e6a05
commit 13e747d846
3 changed files with 30 additions and 7 deletions

View File

@@ -19,15 +19,17 @@ type Feed struct {
ItemFilter string
ContentFilter string
Link string
Interval time.Duration
}
func (feed *Feed) String() string {
return fmt.Sprintf("Updated: %v, Items: %v, ItemFilter: %q, ContentFilter: %q, Link; %v",
return fmt.Sprintf("Updated: %v, Items: %v, ItemFilter: %q, ContentFilter: %q, Link: %v, Interval: %s",
feed.Updated.Local(),
feed.Items,
feed.ItemFilter,
feed.ContentFilter,
feed.Link,
feed.Interval,
)
}
@@ -35,7 +37,7 @@ func (feed *Feed) ID() string {
return strings.Join(regexp.MustCompile("[a-zA-Z0-9]*").FindAllString(feed.Link, -1), "_")
}
func New(source, itemFilter, contentFilter string) (*Feed, error) {
func New(source, itemFilter, contentFilter string, interval time.Duration) (*Feed, error) {
if _, err := regexp.Compile(itemFilter); err != nil {
return nil, err
}
@@ -47,6 +49,7 @@ func New(source, itemFilter, contentFilter string) (*Feed, error) {
ItemFilter: itemFilter,
ContentFilter: contentFilter,
Link: source,
Interval: interval,
}
return f, nil
}

View File

@@ -7,6 +7,7 @@ import (
"os"
"path"
"testing"
"time"
)
func Test_RSSFeed(t *testing.T) {
@@ -31,7 +32,7 @@ func Test_RSSFeed(t *testing.T) {
},
}
for _, c := range cases {
feed, err := New(s.URL, c.itemFilter, c.contentFilter)
feed, err := New(s.URL, c.itemFilter, c.contentFilter, time.Minute)
if err != nil {
t.Errorf("couldn't create new feed %v: %v", feed, err)
}