From 633154c778232ec500b28995ca68bada156d2a07 Mon Sep 17 00:00:00 2001 From: Xiang Li Date: Sun, 2 Jun 2019 13:45:52 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=20rss-parser=20?= =?UTF-8?q?=E4=BD=9C=E4=B8=BA=E5=B7=A5=E5=85=B7=E7=B1=BB=20(#2280)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/routes/9to5/subsite.js | 3 +-- lib/routes/bbc/index.js | 3 +-- lib/routes/caixin/blog.js | 4 +--- lib/routes/ft/utils.js | 3 +-- lib/routes/guardian/guardian.js | 3 +-- lib/routes/idownloadblog/index.js | 3 +-- lib/routes/nytimes/index.js | 3 +-- lib/routes/verge/index.js | 3 +-- lib/routes/zimuzu/resource.js | 7 +------ lib/routes/zzz/index.js | 3 +-- lib/utils/rss-parser.js | 14 ++++++++++++++ 11 files changed, 24 insertions(+), 25 deletions(-) create mode 100644 lib/utils/rss-parser.js diff --git a/lib/routes/9to5/subsite.js b/lib/routes/9to5/subsite.js index be23af7e7..08851724c 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 15d80cccf..d5378b6f9 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 3dabbdcbc..639d7ae09 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 88860d3ae..9a7219ef7 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 4f0568d0c..9f935eb64 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 e2e0c632f..af523b382 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 5c314cb86..088bc3c5e 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 da152e6f3..bd8c23fa5 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 5e8b2f61a..64ec5d8de 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 156872a32..c1bda6ef5 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 000000000..4768d5674 --- /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;