Merge pull request #932 from omnivore-app/newsletter-revue

Add support for newsletters hosted on getrevue.co
This commit is contained in:
Jackson Harper
2022-07-08 13:36:10 -07:00
committed by GitHub

View File

@ -443,6 +443,14 @@ export const isProbablyNewsletter = async (html: string): Promise<boolean> => {
}
}
// Check if this is a newsletter from revue
if (dom.querySelectorAll('img[src*="getrevue.co"]').length > 0) {
const getrevueUrl = revueNewsletterHref(dom)
if (getrevueUrl) {
return true
}
}
return false
}
@ -457,6 +465,17 @@ const beehiivNewsletterHref = (dom: Document): string | undefined => {
return res
}
const revueNewsletterHref = (dom: Document): string | undefined => {
const viewOnline = dom.querySelectorAll('table tr td div a[target="_blank"]')
let res: string | undefined = undefined
viewOnline.forEach((e) => {
if (e.textContent === 'View online') {
res = e.getAttribute('href') || undefined
}
})
return res
}
const findNewsletterHeaderHref = (dom: Document): string | undefined => {
// Substack header links
const postLink = dom.querySelector('h1 a ')
@ -470,6 +489,12 @@ const findNewsletterHeaderHref = (dom: Document): string | undefined => {
return beehiiv
}
// Check if this is a revue newsletter
const revue = revueNewsletterHref(dom)
if (revue) {
return revue
}
return undefined
}