Skip to content

Commit 96ac374

Browse files
committed
Introduce atomExtensionsWithKey
1 parent 9eb41f5 commit 96ac374

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

translator.go

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -105,16 +105,13 @@ func (t *DefaultRSSTranslator) translateFeedLink(rss *rss.Feed) (link string) {
105105
}
106106

107107
func (t *DefaultRSSTranslator) translateFeedFeedLink(rss *rss.Feed) (link string) {
108-
atomExtensions := t.extensionsForKeys([]string{"atom", "atom10", "atom03"}, rss.Extensions)
109-
for _, ex := range atomExtensions {
110-
if links, ok := ex["link"]; ok {
111-
for _, l := range links {
112-
if l.Attrs["rel"] == "self" {
113-
link = l.Attrs["href"]
114-
}
115-
}
108+
t.atomExtensionsWithKey(rss, "link", func(l ext.Extension) bool {
109+
if l.Attrs["rel"] == "self" {
110+
link = l.Attrs["href"]
111+
return true
116112
}
117-
}
113+
return false
114+
})
118115
return
119116
}
120117

@@ -467,6 +464,19 @@ func (t *DefaultRSSTranslator) extensionsForKeys(keys []string, extensions ext.E
467464
return
468465
}
469466

467+
func (t *DefaultRSSTranslator) atomExtensionsWithKey(rss *rss.Feed, tag string, f func(ext.Extension) bool) {
468+
atomExtensions := t.extensionsForKeys([]string{"atom", "atom10", "atom03"}, rss.Extensions)
469+
for _, ex := range atomExtensions {
470+
if exts, ok := ex[tag]; ok {
471+
for _, e := range exts {
472+
if f(e) {
473+
return
474+
}
475+
}
476+
}
477+
}
478+
}
479+
470480
func (t *DefaultRSSTranslator) firstEntry(entries []string) (value string) {
471481
if entries == nil {
472482
return

0 commit comments

Comments
 (0)