From 6dde28bcf95002e585d856cd2fdb4400eb63577b Mon Sep 17 00:00:00 2001 From: maple Date: Fri, 23 Nov 2018 01:38:15 +0800 Subject: [PATCH] Add Apkpure (#1187) --- docs/README.md | 4 ++++ router.js | 3 +++ routes/apkpure/versions.js | 39 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) create mode 100644 routes/apkpure/versions.js diff --git a/docs/README.md b/docs/README.md index 344a09475..2b5770b45 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1146,6 +1146,10 @@ GitHub 官方也提供了一些 RSS: +### Apkpure + + + ## 大学通知 ### 上海海事大学 diff --git a/router.js b/router.js index dd74fb7e2..29fce831b 100644 --- a/router.js +++ b/router.js @@ -861,4 +861,7 @@ router.get('/sysu/sdcs', require('./routes/universities/sysu/sdcs')); router.get('/anigamer/new_anime', require('./routes/anigamer/new_anime')); router.get('/anigamer/anime/:sn', require('./routes/anigamer/anime')); +// Apkpure +router.get('/apkpure/versions/:region/:pkg', require('./routes/apkpure/versions')); + module.exports = router; diff --git a/routes/apkpure/versions.js b/routes/apkpure/versions.js new file mode 100644 index 000000000..2ca642703 --- /dev/null +++ b/routes/apkpure/versions.js @@ -0,0 +1,39 @@ +const axios = require('../../utils/axios'); +const cheerio = require('cheerio'); +const { DateTime } = require('luxon'); + +module.exports = async (ctx) => { + const { region, pkg } = ctx.params; + const prefix = region === 'en' ? 'https://apkpure.com' : `https://apkpure.com/${region}`; + let $ = await axios.get(`${prefix}/search?q=${pkg}`).then((r) => cheerio.load(r.data)); + const apppage = $('.search-title:nth-child(1)>a').attr('href'); + const link = `https://apkpure.com${apppage}/versions`; + console.log(link); + $ = await axios.get(link).then((r) => cheerio.load(r.data)); + ctx.state.data = { + title: $('.ver-top-h1').text(), + description: $('.ver-top-title>h2').text(), + link: decodeURI(link), + item: $('.ver li') + .toArray() + .map((ver) => ({ + title: $(ver) + .find('.ver-item-n') + .text(), + description: $(ver) + .find('a') + .attr('title'), + link: `https://apkpure.com${decodeURI( + $(ver) + .find('a') + .attr('href') + .split('?from')[0] + )}`, + pubDate: DateTime.fromISO( + $(ver) + .find('.update-on') + .text() + ).toRFC2822(), + })), + }; +};