Add title to feed, toRSS(feed, items)

master
Bel LaPointe 2018-10-09 19:21:30 -06:00
parent 88502651de
commit dbeca16e07
2 changed files with 33 additions and 1 deletions

View File

@ -15,6 +15,7 @@ import (
type Feed struct {
Updated time.Time
Title string
Items []string
ItemFilter string
ContentFilter string
@ -23,7 +24,8 @@ type Feed struct {
}
func (feed *Feed) String() string {
return fmt.Sprintf("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",
feed.Title,
feed.Updated.Local(),
feed.Items,
feed.ItemFilter,
@ -103,6 +105,7 @@ func (feed *Feed) fromGofeed(gofeed *gofeed.Feed) ([]*Item, error) {
return nil, err
}
feed.Updated = *updated
feed.Title = gofeed.Title
return newitems, nil
}

29
rss/xml.go Normal file
View File

@ -0,0 +1,29 @@
package rss
import (
"fmt"
"net/url"
"github.com/gorilla/feeds"
)
func ToRSS(feed *Feed, items []*Item) (string, error) {
root := &feeds.Feed{
Title: feed.Title,
Link: &feeds.Link{Href: feed.Link},
Description: fmt.Sprintf("/%s/ /%s/", feed.ItemFilter, feed.ContentFilter),
Created: feed.Updated,
}
root.Items = make([]*feeds.Item, len(items))
for i := range items {
v := &url.Values{}
v.Add("url", feed.ID()+"."+items[i].ID())
root.Items[i] = &feeds.Item{
Title: items[i].Name,
Link: &feeds.Link{Href: "/api/feed/item?" + v.Encode()},
Description: items[i].Content,
Created: items[i].TS,
}
}
return root.ToRss()
}