Skip to content

Commit cc91ea6

Browse files
committed
fix some simple atom feed stuff and add some simple feed tests
1 parent 4e6bcdd commit cc91ea6

File tree

3 files changed

+28
-5
lines changed

3 files changed

+28
-5
lines changed

atom.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,12 +79,16 @@ func newAtomEntry(i *Item) *atomEntry {
7979
}
8080

8181
func (a *Atom) FeedXml() interface{} {
82+
ts := a.Updated
83+
if ts.IsZero() {
84+
ts = a.Created
85+
}
8286
feed := &atomFeed{
8387
Ns: ns,
8488
Title: a.Title,
8589
Link: &atomLink{Href: a.Link.Href, Rel: a.Link.Rel},
8690
Id: a.Link.Href,
87-
Updated: a.Updated.Format(time.RFC3339)}
91+
Updated: ts.Format(time.RFC3339)}
8892
for _, e := range a.Items {
8993
feed.Entries = append(feed.Entries, newAtomEntry(e))
9094
}

feed.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@ type Item struct {
2929
type Feed struct {
3030
Title string
3131
Link *Link
32+
Description string
3233
Author *Author
33-
Created time.Time
3434
Updated time.Time
35-
Description string
36-
Subtitle string
3735
Id string
36+
Subtitle string
37+
Created time.Time
3838
Items []*Item
3939
}
4040

@@ -48,10 +48,11 @@ type XmlFeed interface {
4848

4949
func ToXML(feed XmlFeed) (string, error) {
5050
x := feed.FeedXml()
51-
data, err := xml.MarshalIndent(x, " ", " ")
51+
data, err := xml.MarshalIndent(x, "", " ")
5252
if err != nil {
5353
return "", err
5454
}
55+
// strip empty line from default xml header
5556
s := xml.Header[:len(xml.Header)-1] + string(data)
5657
return s, nil
5758
}

feed_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,19 @@
11
package syndicate
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
"time"
7+
)
8+
9+
func TestFeed(t *testing.T) {
10+
feed := &Feed{
11+
Title: "jmoiron.net blog",
12+
Link: &Link{Href: "http://jmoiron.net/blog"},
13+
Description: "discussion about tech, footie, photos",
14+
Author: &Author{"Jason Moiron", "[email protected]"},
15+
Created: time.Now(),
16+
}
17+
18+
fmt.Println(feed.ToAtom())
19+
}

0 commit comments

Comments
 (0)