Merge pull request #1217 from omnivore-app/fix/morning-brew-newsletter-parsing

Fix one morning brew newsletter parsing error by only keeping market info table in the original newsletter
This commit is contained in:
Hongbo Wu 2022-09-20 21:02:55 +08:00 committed by GitHub
commit d8c62b5a3d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -10,27 +10,19 @@ export class MorningBrewHandler {
prehandle = (url: URL, dom: Document): Promise<Document> => {
// retain the width of the cells in the table of market info
dom
.querySelectorAll('.markets-arrow-cell')
.forEach((c) => c.setAttribute('width', '20%'))
dom
.querySelectorAll('.markets-ticker-cell')
.forEach((c) => c.setAttribute('width', '34%'))
dom
.querySelectorAll('.markets-value-cell')
.forEach((c) => c.setAttribute('width', '34%'))
dom.querySelectorAll('.markets-bubble-cell').forEach((c) => {
const table = c.querySelector('.markets-bubble')
dom.querySelectorAll('.markets-arrow-cell').forEach((td) => {
const table = td.closest('table')
if (table) {
// replace the nested table with the text
const e = table.querySelector('.markets-table-text')
e && table.parentNode?.replaceChild(e, table)
const bubbleTable = table.querySelector('.markets-bubble')
if (bubbleTable) {
// replace the nested table with the text
const e = bubbleTable.querySelector('.markets-table-text')
e && bubbleTable.parentNode?.replaceChild(e, bubbleTable)
}
// set custom class for the table
table.className = 'morning-brew-markets'
}
c.setAttribute('width', '12%')
})
dom
.querySelectorAll('table [role="presentation"]')
.forEach((table) => (table.className = 'morning-brew-markets'))
return Promise.resolve(dom)
}