|
|
@@ -38,20 +38,25 @@ type rssLink struct {
|
|
|
Rel string `xml:"rel,attr"`
|
|
|
}
|
|
|
|
|
|
+type rssCommentLink struct {
|
|
|
+ XMLName xml.Name
|
|
|
+ Data string `xml:",chardata"`
|
|
|
+}
|
|
|
+
|
|
|
type rssItem struct {
|
|
|
- GUID string `xml:"guid"`
|
|
|
- Title string `xml:"title"`
|
|
|
- Links []rssLink `xml:"link"`
|
|
|
- OriginalLink string `xml:"http://rssnamespace.org/feedburner/ext/1.0 origLink"`
|
|
|
- Comments string `xml:"comments"`
|
|
|
- Description string `xml:"description"`
|
|
|
- Content string `xml:"http://purl.org/rss/1.0/modules/content/ encoded"`
|
|
|
- PubDate string `xml:"pubDate"`
|
|
|
- Date string `xml:"http://purl.org/dc/elements/1.1/ date"`
|
|
|
- Authors []rssAuthor `xml:"author"`
|
|
|
- Creator string `xml:"http://purl.org/dc/elements/1.1/ creator"`
|
|
|
- Enclosures []rssEnclosure `xml:"enclosure"`
|
|
|
- OrigEnclosureLink string `xml:"http://rssnamespace.org/feedburner/ext/1.0 origEnclosureLink"`
|
|
|
+ GUID string `xml:"guid"`
|
|
|
+ Title string `xml:"title"`
|
|
|
+ Links []rssLink `xml:"link"`
|
|
|
+ OriginalLink string `xml:"http://rssnamespace.org/feedburner/ext/1.0 origLink"`
|
|
|
+ CommentLinks []rssCommentLink `xml:"comments"`
|
|
|
+ Description string `xml:"description"`
|
|
|
+ Content string `xml:"http://purl.org/rss/1.0/modules/content/ encoded"`
|
|
|
+ PubDate string `xml:"pubDate"`
|
|
|
+ Date string `xml:"http://purl.org/dc/elements/1.1/ date"`
|
|
|
+ Authors []rssAuthor `xml:"author"`
|
|
|
+ Creator string `xml:"http://purl.org/dc/elements/1.1/ creator"`
|
|
|
+ Enclosures []rssEnclosure `xml:"enclosure"`
|
|
|
+ OrigEnclosureLink string `xml:"http://rssnamespace.org/feedburner/ext/1.0 origEnclosureLink"`
|
|
|
}
|
|
|
|
|
|
type rssAuthor struct {
|
|
|
@@ -217,10 +222,20 @@ func (r *rssItem) GetEnclosures() model.EnclosureList {
|
|
|
return enclosures
|
|
|
}
|
|
|
|
|
|
+func (r *rssItem) CommentsURL() string {
|
|
|
+ for _, commentLink := range r.CommentLinks {
|
|
|
+ if commentLink.XMLName.Space == "" {
|
|
|
+ return strings.TrimSpace(commentLink.Data)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return ""
|
|
|
+}
|
|
|
+
|
|
|
func (r *rssItem) Transform() *model.Entry {
|
|
|
entry := new(model.Entry)
|
|
|
entry.URL = r.GetURL()
|
|
|
- entry.CommentsURL = r.Comments
|
|
|
+ entry.CommentsURL = r.CommentsURL()
|
|
|
entry.Date = r.GetDate()
|
|
|
entry.Author = r.GetAuthor()
|
|
|
entry.Hash = r.GetHash()
|