Skip to content

Commit 0fc5176

Browse files
committed
Introduce atomExtensionsWithKey
1 parent 542edfa commit 0fc5176

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

@@ -462,6 +459,19 @@ func (t *DefaultRSSTranslator) extensionsForKeys(keys []string, extensions ext.E
462459
return
463460
}
464461

462+
func (t *DefaultRSSTranslator) atomExtensionsWithKey(rss *rss.Feed, tag string, f func(ext.Extension) bool) {
463+
atomExtensions := t.extensionsForKeys([]string{"atom", "atom10", "atom03"}, rss.Extensions)
464+
for _, ex := range atomExtensions {
465+
if exts, ok := ex[tag]; ok {
466+
for _, e := range exts {
467+
if f(e) {
468+
return
469+
}
470+
}
471+
}
472+
}
473+
}
474+
465475
func (t *DefaultRSSTranslator) firstEntry(entries []string) (value string) {
466476
if entries == nil {
467477
return

0 commit comments

Comments
 (0)