24 lines
633 B
JavaScript
24 lines
633 B
JavaScript
const h = require('htmlparser2')
|
|
const Logger = require('../../Logger')
|
|
|
|
function parse(opmlText) {
|
|
var feeds = []
|
|
var parser = new h.Parser({
|
|
onopentag: (name, attribs) => {
|
|
if (name === "outline" && attribs.type === 'rss') {
|
|
if (!attribs.xmlurl) {
|
|
Logger.error('[parseOPML] Invalid opml outline tag has no xmlurl attribute')
|
|
} else {
|
|
feeds.push({
|
|
title: attribs.title || 'No Title',
|
|
text: attribs.text || '',
|
|
feedUrl: attribs.xmlurl
|
|
})
|
|
}
|
|
}
|
|
}
|
|
})
|
|
parser.write(opmlText)
|
|
return feeds
|
|
}
|
|
module.exports.parse = parse |