diff --git a/lib/routes/9to5/subsite.js b/lib/routes/9to5/subsite.js index be23af7e7b..08851724c7 100644 --- a/lib/routes/9to5/subsite.js +++ b/lib/routes/9to5/subsite.js @@ -1,7 +1,6 @@ const axios = require('@/utils/axios'); +const parser = require('@/utils/rss-parser'); const utils = require('./utils'); -const Parser = require('rss-parser'); -const parser = new Parser(); module.exports = async (ctx) => { let title = '9To5', diff --git a/lib/routes/bbc/index.js b/lib/routes/bbc/index.js index 15d80cccf3..d5378b6f9f 100644 --- a/lib/routes/bbc/index.js +++ b/lib/routes/bbc/index.js @@ -1,8 +1,7 @@ const axios = require('@/utils/axios'); +const parser = require('@/utils/rss-parser'); const cheerio = require('cheerio'); const utils = require('./utils'); -const Parser = require('rss-parser'); -const parser = new Parser(); module.exports = async (ctx) => { let feed, title, link; diff --git a/lib/routes/caixin/blog.js b/lib/routes/caixin/blog.js index 3dabbdcbca..639d7ae092 100644 --- a/lib/routes/caixin/blog.js +++ b/lib/routes/caixin/blog.js @@ -1,8 +1,6 @@ const axios = require('@/utils/axios'); +const parser = require('@/utils/rss-parser'); const cheerio = require('cheerio'); -const { ua } = require('@/config'); -const Parser = require('rss-parser'); -const parser = new Parser({ headers: { 'User-Agent': ua } }); async function load(link, need_feed_description) { const response = await axios.get(link); diff --git a/lib/routes/ft/utils.js b/lib/routes/ft/utils.js index 88860d3ae8..9a7219ef7b 100644 --- a/lib/routes/ft/utils.js +++ b/lib/routes/ft/utils.js @@ -1,6 +1,6 @@ const axios = require('@/utils/axios'); +const parser = require('@/utils/rss-parser'); const cheerio = require('cheerio'); -const Parser = require('rss-parser'); const ProcessFeed = ($, link) => { const title = $('h1').text(); @@ -36,7 +36,6 @@ const ProcessFeed = ($, link) => { }; const getData = async ({ site = 'www', channel }) => { - const parser = new Parser(); let feed; if (channel) { diff --git a/lib/routes/guardian/guardian.js b/lib/routes/guardian/guardian.js index 4f0568d0c7..9f935eb642 100644 --- a/lib/routes/guardian/guardian.js +++ b/lib/routes/guardian/guardian.js @@ -1,7 +1,6 @@ const axios = require('@/utils/axios'); +const parser = require('@/utils/rss-parser'); const utils = require('./utils'); -const Parser = require('rss-parser'); -const parser = new Parser(); const config = { editorial: { diff --git a/lib/routes/idownloadblog/index.js b/lib/routes/idownloadblog/index.js index e2e0c632f5..af523b382c 100644 --- a/lib/routes/idownloadblog/index.js +++ b/lib/routes/idownloadblog/index.js @@ -1,7 +1,6 @@ const axios = require('@/utils/axios'); +const parser = require('@/utils/rss-parser'); const cheerio = require('cheerio'); -const Parser = require('rss-parser'); -const parser = new Parser(); module.exports = async (ctx) => { const feed = await parser.parseURL('https://www.idownloadblog.com/feed'); diff --git a/lib/routes/nytimes/index.js b/lib/routes/nytimes/index.js index 5c314cb86e..088bc3c5ee 100644 --- a/lib/routes/nytimes/index.js +++ b/lib/routes/nytimes/index.js @@ -1,8 +1,7 @@ const axios = require('@/utils/axios'); +const parser = require('@/utils/rss-parser'); const utils = require('./utils'); const cheerio = require('cheerio'); -const Parser = require('rss-parser'); -const parser = new Parser(); module.exports = async (ctx) => { let { lang = '' } = ctx.params; diff --git a/lib/routes/verge/index.js b/lib/routes/verge/index.js index da152e6f38..bd8c23fa52 100644 --- a/lib/routes/verge/index.js +++ b/lib/routes/verge/index.js @@ -1,7 +1,6 @@ const axios = require('@/utils/axios'); +const parser = require('@/utils/rss-parser'); const cheerio = require('cheerio'); -const Parser = require('rss-parser'); -const parser = new Parser(); module.exports = async (ctx) => { const feed = await parser.parseURL('https://www.theverge.com/rss/index.xml'); diff --git a/lib/routes/zimuzu/resource.js b/lib/routes/zimuzu/resource.js index 5e8b2f61a9..64ec5d8de1 100644 --- a/lib/routes/zimuzu/resource.js +++ b/lib/routes/zimuzu/resource.js @@ -1,9 +1,4 @@ -const Parser = require('rss-parser'); -const parser = new Parser({ - customFields: { - item: ['magnet'], - }, -}); +const parser = require('@/utils/rss-parser'); module.exports = async (ctx) => { const { id = 0 } = ctx.params; diff --git a/lib/routes/zzz/index.js b/lib/routes/zzz/index.js index 156872a324..c1bda6ef56 100644 --- a/lib/routes/zzz/index.js +++ b/lib/routes/zzz/index.js @@ -1,7 +1,6 @@ const axios = require('@/utils/axios'); +const parser = require('@/utils/rss-parser'); const cheerio = require('cheerio'); -const Parser = require('rss-parser'); -const parser = new Parser(); module.exports = async (ctx) => { const feed = await parser.parseURL('https://z-z-z.vip/feed'); diff --git a/lib/utils/rss-parser.js b/lib/utils/rss-parser.js new file mode 100644 index 0000000000..4768d56745 --- /dev/null +++ b/lib/utils/rss-parser.js @@ -0,0 +1,14 @@ +const config = require('@/config'); +const Parser = require('rss-parser'); + +const parser = new Parser({ + customFields: { + item: ['magnet'], + }, + headers: { + 'User-Agent': config.ua, + 'X-APP': 'RSSHub', + }, +}); + +module.exports = parser;