From 03befc13d1334c5f72583232eccd6ba53ce4680c Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Wed, 10 Oct 2018 14:18:21 -0600 Subject: [PATCH] Add tags to rss struct --- main.go | 9 ++++++--- rss/feed.go | 7 +++++-- rss/feed_test.go | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/main.go b/main.go index fd9c1ed..7a1b90f 100644 --- a/main.go +++ b/main.go @@ -32,7 +32,7 @@ func core() { mon, err := monitor.New(func(url string) { feed, ok := allFeeds[url] if !ok { - f, err := rss.New(url, "", "", time.Minute) + f, err := rss.New(url, "", "", nil, time.Minute) if err != nil { logger.Logf("cannot identify unknown feed triggered in monitor: %q: %v", url, err) return @@ -85,8 +85,8 @@ func core() { defer mon.Stop() server, err := server.New(config.Port, - func(url string, itemFilter, contentFilter string, interval time.Duration) { - feed, err := rss.New(url, itemFilter, contentFilter, interval) + func(url string, itemFilter, contentFilter string, tags []string, interval time.Duration) { + feed, err := rss.New(url, itemFilter, contentFilter, tags, interval) if err != nil { logger.Logf("can't create new RSS %q: %v", url, err) return @@ -129,6 +129,9 @@ func core() { } return item.Content, nil }, + func(tag string) (string, error) { + return "", errors.New("not implemented") + }, ) if err != nil { panic(err) diff --git a/rss/feed.go b/rss/feed.go index 38d9dc6..c057b3d 100644 --- a/rss/feed.go +++ b/rss/feed.go @@ -17,6 +17,7 @@ type Feed struct { Updated time.Time Title string Items []string + Tags []string ItemFilter string ContentFilter string Link string @@ -24,7 +25,7 @@ type Feed struct { } func (feed *Feed) String() string { - return fmt.Sprintf("Title: %s, Updated: %v, Items: %v, ItemFilter: %q, ContentFilter: %q, Link: %v, Interval: %s", + return fmt.Sprintf("Title: %s, Updated: %v, Items: %v, ItemFilter: %q, ContentFilter: %q, Link: %v, Interval: %s, Tags: %v", feed.Title, feed.Updated.Local(), feed.Items, @@ -32,6 +33,7 @@ func (feed *Feed) String() string { feed.ContentFilter, feed.Link, feed.Interval, + feed.Tags, ) } @@ -39,7 +41,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, interval time.Duration) (*Feed, error) { +func New(source, itemFilter, contentFilter string, tags []string, interval time.Duration) (*Feed, error) { if _, err := regexp.Compile(itemFilter); err != nil { return nil, err } @@ -51,6 +53,7 @@ func New(source, itemFilter, contentFilter string, interval time.Duration) (*Fee ItemFilter: itemFilter, ContentFilter: contentFilter, Link: source, + Tags: tags, Interval: interval, } return f, nil diff --git a/rss/feed_test.go b/rss/feed_test.go index 5ba84d5..3435226 100644 --- a/rss/feed_test.go +++ b/rss/feed_test.go @@ -32,7 +32,7 @@ func Test_RSSFeed(t *testing.T) { }, } for _, c := range cases { - feed, err := New(s.URL, c.itemFilter, c.contentFilter, time.Minute) + feed, err := New(s.URL, c.itemFilter, c.contentFilter, nil, time.Minute) if err != nil { t.Errorf("couldn't create new feed %v: %v", feed, err) }