Add title to feed, toRSS(feed, items)
parent
88502651de
commit
dbeca16e07
|
|
@ -15,6 +15,7 @@ import (
|
||||||
|
|
||||||
type Feed struct {
|
type Feed struct {
|
||||||
Updated time.Time
|
Updated time.Time
|
||||||
|
Title string
|
||||||
Items []string
|
Items []string
|
||||||
ItemFilter string
|
ItemFilter string
|
||||||
ContentFilter string
|
ContentFilter string
|
||||||
|
|
@ -23,7 +24,8 @@ type Feed struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (feed *Feed) String() string {
|
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.Updated.Local(),
|
||||||
feed.Items,
|
feed.Items,
|
||||||
feed.ItemFilter,
|
feed.ItemFilter,
|
||||||
|
|
@ -103,6 +105,7 @@ func (feed *Feed) fromGofeed(gofeed *gofeed.Feed) ([]*Item, error) {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
feed.Updated = *updated
|
feed.Updated = *updated
|
||||||
|
feed.Title = gofeed.Title
|
||||||
return newitems, nil
|
return newitems, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue