New RSSFeed doesn't auto update, server callback adds to feed pool, monitor callback updates feed
This commit is contained in:
12
rss/feed.go
12
rss/feed.go
@@ -35,12 +35,12 @@ 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, []*Item, error) {
|
||||
func New(source, itemFilter, contentFilter string) (*Feed, error) {
|
||||
if _, err := regexp.Compile(itemFilter); err != nil {
|
||||
return nil, nil, err
|
||||
return nil, err
|
||||
}
|
||||
if _, err := regexp.Compile(contentFilter); err != nil {
|
||||
return nil, nil, err
|
||||
return nil, err
|
||||
}
|
||||
f := &Feed{
|
||||
Items: []string{},
|
||||
@@ -48,11 +48,7 @@ func New(source, itemFilter, contentFilter string) (*Feed, []*Item, error) {
|
||||
ContentFilter: contentFilter,
|
||||
Link: source,
|
||||
}
|
||||
items, err := f.Update()
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
return f, items, nil
|
||||
return f, nil
|
||||
}
|
||||
|
||||
func Deserialize(src []byte) (*Feed, error) {
|
||||
|
||||
@@ -31,10 +31,14 @@ func Test_RSSFeed(t *testing.T) {
|
||||
},
|
||||
}
|
||||
for _, c := range cases {
|
||||
feed, items, err := New(s.URL, c.itemFilter, c.contentFilter)
|
||||
feed, err := New(s.URL, c.itemFilter, c.contentFilter)
|
||||
if err != nil {
|
||||
t.Errorf("couldn't create new feed %v: %v", feed, err)
|
||||
}
|
||||
items, err := feed.Update()
|
||||
if err != nil {
|
||||
t.Errorf("cannot update feed %q: %v", s.URL, err)
|
||||
}
|
||||
if len(items) != c.itemsOut {
|
||||
t.Errorf("couldn't get all items from feed: got %v, wanted %v", len(items), c.itemsOut)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user