1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-01 17:38:37 +00:00

Add addDynamicIframe rewrite function.

Add unit tests for `add_dynamic_iframe` rewrite.
This commit is contained in:
Dave 2024-01-21 21:28:21 -05:00 committed by Frédéric Guillot
parent 50341759b6
commit 1159dd6982
3 changed files with 87 additions and 0 deletions

View file

@ -167,6 +167,43 @@ func addDynamicImage(entryURL, entryContent string) string {
return entryContent
}
func addDynamicIframe(entryURL, entryContent string) string {
doc, err := goquery.NewDocumentFromReader(strings.NewReader(entryContent))
if err != nil {
return entryContent
}
// Ordered most preferred to least preferred.
candidateAttrs := []string{
"data-src",
"data-original",
"data-orig",
"data-url",
"data-lazy-src",
}
changed := false
doc.Find("iframe").Each(func(i int, iframe *goquery.Selection) {
for _, candidateAttr := range candidateAttrs {
if srcAttr, found := iframe.Attr(candidateAttr); found {
changed = true
iframe.SetAttr("src", srcAttr)
break
}
}
})
if changed {
output, _ := doc.Find("body").First().Html()
return output
}
return entryContent
}
func fixMediumImages(entryURL, entryContent string) string {
doc, err := goquery.NewDocumentFromReader(strings.NewReader(entryContent))
if err != nil {