Preparse the newsletter content
This commit is contained in:
@ -72,6 +72,7 @@ const contentHandlers: ContentHandler[] = [
|
||||
new BloombergNewsletterHandler(),
|
||||
new SubstackHandler(),
|
||||
new StackOverflowHandler(),
|
||||
new EnergyWorldHandler(),
|
||||
]
|
||||
|
||||
const newsletterHandlers: ContentHandler[] = [
|
||||
|
||||
@ -16,4 +16,29 @@ export class EnergyWorldHandler extends ContentHandler {
|
||||
input.from === 'ETEnergyworld Latest News<newsletter@etenergyworld.com>'
|
||||
)
|
||||
}
|
||||
|
||||
shouldPreParse(url: string, dom: Document): boolean {
|
||||
return dom.querySelectorAll('img[src*="etenergyworld.png"]').length > 0
|
||||
}
|
||||
|
||||
async preParse(url: string, dom: Document): Promise<Document> {
|
||||
// get the main content
|
||||
const main = dom.querySelector('table[class="nletter-wrap"]')
|
||||
if (!main) {
|
||||
return Promise.resolve(dom)
|
||||
}
|
||||
|
||||
// create a new dom
|
||||
const newDom = dom.createDocumentFragment()
|
||||
|
||||
// add the content to the new dom
|
||||
main.querySelectorAll('table[class="multi-cols"] tr').forEach((tr) => {
|
||||
const p = dom.createElement('p')
|
||||
p.innerHTML = tr.innerHTML
|
||||
newDom.appendChild(p)
|
||||
})
|
||||
dom.body.replaceChildren(newDom)
|
||||
|
||||
return Promise.resolve(dom)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user