omnivore/packages/api/src/utils/bloomberg-handler.ts

31 lines
987 B
TypeScript
Raw Normal View History

2022-02-17 12:17:02 +00:00
export class BloombergHandler {
2022-02-17 05:19:58 +00:00
name = 'bloomberg'
shouldPrehandle = (url: URL, dom: Document): boolean => {
2022-02-17 05:19:58 +00:00
const host = this.name + '.com'
// check if url ends with bloomberg.com
2022-02-17 12:14:06 +00:00
return (
url.hostname.endsWith(host) ||
dom.querySelector('.logo-image')?.getAttribute('alt')?.toLowerCase() ===
this.name
2022-02-17 12:14:06 +00:00
)
2022-02-17 05:19:58 +00:00
}
prehandle = (_url: URL, dom: Document): Promise<Document> => {
const body = dom.querySelector('.wrapper')
2022-02-17 05:19:58 +00:00
// this removes header
body?.querySelector('.sailthru-variables')?.remove()
body?.querySelector('.preview-text')?.remove()
body?.querySelector('.logo-wrapper')?.remove()
body?.querySelector('.by-the-number-wrapper')?.remove()
// this removes footer
body?.querySelector('.quote-box-wrapper')?.remove()
body?.querySelector('.header-wrapper')?.remove()
body?.querySelector('.component-wrapper')?.remove()
body?.querySelector('.footer')?.remove()
return Promise.resolve(dom)
}
}