diff --git a/src/parser/rdf.go b/src/parser/rdf.go index 276ad7a..8fad45a 100644 --- a/src/parser/rdf.go +++ b/src/parser/rdf.go @@ -20,8 +20,8 @@ type rdfItem struct { Link string `xml:"link"` Description string `xml:"description"` - DublinCoreDate string `xml:"http://purl.org/dc/elements/1.1/ date"` - DublinCoreContent string `xml:"http://purl.org/rss/1.0/modules/content/ encoded"` + DublinCoreDate string `xml:"http://purl.org/dc/elements/1.1/ date"` + ContentEncoded string `xml:"http://purl.org/rss/1.0/modules/content/ encoded"` } func ParseRDF(r io.Reader) (*Feed, error) { @@ -38,9 +38,11 @@ func ParseRDF(r io.Reader) (*Feed, error) { } for _, srcitem := range srcfeed.Items { dstfeed.Items = append(dstfeed.Items, Item{ - GUID: srcitem.Link, - URL: srcitem.Link, - Title: srcitem.Title, + GUID: srcitem.Link, + URL: srcitem.Link, + Date: dateParse(srcitem.DublinCoreDate), + Title: srcitem.Title, + Content: srcitem.ContentEncoded, }) } return dstfeed, nil diff --git a/src/parser/rdf_test.go b/src/parser/rdf_test.go index 3d3e9ed..0a99c25 100644 --- a/src/parser/rdf_test.go +++ b/src/parser/rdf_test.go @@ -4,6 +4,7 @@ import ( "reflect" "strings" "testing" + "time" ) func TestRDFFeed(t *testing.T) { @@ -52,3 +53,29 @@ func TestRDFFeed(t *testing.T) { t.Fatal("invalid rdf") } } + +func TestRDFExtensions(t *testing.T) { + have, _ := Parse(strings.NewReader(` + + + + 2006-01-02T15:04:05-07:00 + + + + `)) + date, _ := time.Parse(time.RFC1123Z, time.RFC1123Z) + want := &Feed{ + Items: []Item{ + {Content: "test", Date: date}, + }, + } + if !reflect.DeepEqual(want, have) { + t.Logf("want: %#v", want) + t.Logf("have: %#v", have) + t.FailNow() + } +}