summaryrefslogtreecommitdiff
path: root/rss.go
diff options
context:
space:
mode:
Diffstat (limited to 'rss.go')
-rw-r--r--rss.go13
1 files changed, 5 insertions, 8 deletions
diff --git a/rss.go b/rss.go
index 6f5239b..a445054 100644
--- a/rss.go
+++ b/rss.go
@@ -2,6 +2,7 @@ package main
import (
"fmt"
+ "io"
"log"
"time"
@@ -30,7 +31,7 @@ func (n News) String() string {
return s
}
-func (f Feed) watch(news chan News) {
+func (f Feed) watch(w io.Writer) {
ticker := time.NewTicker(f.Every)
defer ticker.Stop()
for t := range ticker.C {
@@ -42,18 +43,14 @@ func (f Feed) watch(news chan News) {
last := t.Add(-f.Every)
for _, i := range r.Channel.Items {
if i.PubDate.After(last) {
- news <- News{f, i}
+ fmt.Fprint(w, News{f, i})
}
}
}
}
-func Watch(msg chan string, feeds []Feed) {
- news := make(chan News)
+func Watch(w io.Writer, feeds []Feed) {
for _, feed := range feeds {
- go feed.watch(news)
- }
- for n := range news {
- msg <- fmt.Sprint(n)
+ go feed.watch(w)
}
}