Missing handlers but there we goddamn GO
Former-commit-id: 2505146a54acaf18eadfdebf1dd2720889aef795
This commit is contained in:
@@ -53,7 +53,7 @@ func (f *Feed) Load() error {
|
||||
return f.Decode(b)
|
||||
}
|
||||
|
||||
func (f *Feed) pull() error {
|
||||
func (f *Feed) Pull() error {
|
||||
if f.URL == "" {
|
||||
if err := f.Load(); err != nil {
|
||||
return err
|
||||
|
||||
@@ -107,7 +107,7 @@ func TestRSSFeedPull(t *testing.T) {
|
||||
|
||||
log.SetOutput(bytes.NewBuffer(nil))
|
||||
defer log.SetOutput(os.Stderr)
|
||||
if err := f.pull(); err != nil {
|
||||
if err := f.Pull(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
log.SetOutput(os.Stderr)
|
||||
@@ -129,7 +129,7 @@ func TestRSSFeedPull(t *testing.T) {
|
||||
|
||||
log.SetOutput(bytes.NewBuffer(nil))
|
||||
defer log.SetOutput(os.Stderr)
|
||||
if err := f.pull(); err != nil {
|
||||
if err := f.Pull(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
log.SetOutput(os.Stderr)
|
||||
|
||||
16
rss/item.go
16
rss/item.go
@@ -22,6 +22,8 @@ type Item struct {
|
||||
TS time.Time
|
||||
}
|
||||
|
||||
type Items []*Item
|
||||
|
||||
func newItem(i *gofeed.Item, contentFilter string) (*Item, error) {
|
||||
item := &Item{
|
||||
Title: i.Title,
|
||||
@@ -88,3 +90,17 @@ func (i *Item) Load(key, ns1 string, ns ...string) error {
|
||||
}
|
||||
return config.Decode(b, i)
|
||||
}
|
||||
|
||||
func (is Items) Len() int {
|
||||
return len(is)
|
||||
}
|
||||
|
||||
func (is Items) Less(i, j int) bool {
|
||||
return is[j].TS.Before(is[i].TS)
|
||||
}
|
||||
|
||||
func (is Items) Swap(i, j int) {
|
||||
k := is[i]
|
||||
is[i] = is[j]
|
||||
is[j] = k
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ func (rss *RSS) Run() error {
|
||||
|
||||
func (rss *RSS) update(item *monitor.Item) error {
|
||||
f := newFeed(item.Key)
|
||||
if err := f.pull(); err != nil {
|
||||
if err := f.Pull(); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := f.save(); err != nil {
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package rss
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
"local/rssmon3/config"
|
||||
"sort"
|
||||
|
||||
"github.com/gorilla/feeds"
|
||||
)
|
||||
@@ -29,6 +31,7 @@ func TaggedFeeds(tag string) ([]*Feed, error) {
|
||||
}
|
||||
|
||||
func WriteFeed(w io.Writer, tag string, items []*Item) error {
|
||||
sort.Sort(Items(items))
|
||||
feed := &feeds.Feed{
|
||||
Title: tag,
|
||||
Link: &feeds.Link{},
|
||||
@@ -47,6 +50,6 @@ func WriteFeed(w io.Writer, tag string, items []*Item) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
w.Write([]byte(s))
|
||||
fmt.Fprintf(w, "%s\n", s)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ func TestRSSWriteFeed(t *testing.T) {
|
||||
|
||||
log.SetOutput(bytes.NewBuffer(nil))
|
||||
defer log.SetOutput(os.Stderr)
|
||||
if err := f.pull(); err != nil {
|
||||
if err := f.Pull(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
log.SetOutput(os.Stderr)
|
||||
|
||||
Reference in New Issue
Block a user