Skip to content

Commit 6ee432a

Browse files
committed
Introduce atomExtensionsWithKey
1 parent 56fd457 commit 6ee432a

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
@@ -102,16 +102,13 @@ func (t *DefaultRSSTranslator) translateFeedLink(rss *rss.Feed) (link string) {
102102
}
103103

104104
func (t *DefaultRSSTranslator) translateFeedFeedLink(rss *rss.Feed) (link string) {
105-
atomExtensions := t.extensionsForKeys([]string{"atom", "atom10", "atom03"}, rss.Extensions)
106-
for _, ex := range atomExtensions {
107-
if links, ok := ex["link"]; ok {
108-
for _, l := range links {
109-
if l.Attrs["rel"] == "self" {
110-
link = l.Attrs["href"]
111-
}
112-
}
105+
t.atomExtensionsWithKey(rss, "link", func(l ext.Extension) bool {
106+
if l.Attrs["rel"] == "self" {
107+
link = l.Attrs["href"]
108+
return true
113109
}
114-
}
110+
return false
111+
})
115112
return
116113
}
117114

@@ -433,6 +430,19 @@ func (t *DefaultRSSTranslator) extensionsForKeys(keys []string, extensions ext.E
433430
return
434431
}
435432

433+
func (t *DefaultRSSTranslator) atomExtensionsWithKey(rss *rss.Feed, tag string, f func(ext.Extension) bool) {
434+
atomExtensions := t.extensionsForKeys([]string{"atom", "atom10", "atom03"}, rss.Extensions)
435+
for _, ex := range atomExtensions {
436+
if exts, ok := ex[tag]; ok {
437+
for _, e := range exts {
438+
if f(e) {
439+
return
440+
}
441+
}
442+
}
443+
}
444+
}
445+
436446
func (t *DefaultRSSTranslator) firstEntry(entries []string) (value string) {
437447
if entries == nil {
438448
return

0 commit comments

Comments
 (0)