mirror of
https://github.com/vbatts/sl-feeds.git
synced 2024-11-26 01:15:40 +00:00
Vincent Batts
8e97e3d16f
and ability to export to feeds Signed-off-by: Vincent Batts <vbatts@hashbangbash.com>
51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
package changelog
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/gorilla/feeds"
|
|
)
|
|
|
|
// ToFeed produces a github.com/gorilla/feeds.Feed that can be written to Atom or Rss
|
|
func ToFeed(link string, entries []Entry) (*feeds.Feed, error) {
|
|
var newestEntryTime time.Time
|
|
var oldestEntryTime time.Time
|
|
|
|
for _, e := range entries {
|
|
if e.Date.After(newestEntryTime) {
|
|
newestEntryTime = e.Date
|
|
}
|
|
if e.Date.Before(oldestEntryTime) {
|
|
oldestEntryTime = e.Date
|
|
}
|
|
}
|
|
|
|
feed := &feeds.Feed{
|
|
Title: "",
|
|
Link: &feeds.Link{Href: link},
|
|
Description: "Generated ChangeLog.txt feeds by sl-feeds (github.com/vbatts/sl-feeds)",
|
|
Created: oldestEntryTime,
|
|
Updated: newestEntryTime,
|
|
}
|
|
feed.Items = make([]*feeds.Item, len(entries))
|
|
for i, e := range entries {
|
|
feed.Items[i] = &feeds.Item{
|
|
Created: e.Date,
|
|
Link: &feeds.Link{Href: ""},
|
|
Description: e.ToChangeLog(),
|
|
}
|
|
|
|
updateWord := "updates"
|
|
if len(e.Updates) == 1 {
|
|
updateWord = "update"
|
|
}
|
|
if e.SecurityFix() {
|
|
feed.Items[i].Title = fmt.Sprintf("%d %s. Including a %s!", len(e.Updates), updateWord, securityFixStr)
|
|
} else {
|
|
feed.Items[i].Title = fmt.Sprintf("%d %s.", len(e.Updates), updateWord)
|
|
}
|
|
}
|
|
|
|
return feed, nil
|
|
}
|