diff --git a/lib/v2/abskoop/index.js b/lib/v2/abskoop/index.js index 8353bc172..a6385aec1 100644 --- a/lib/v2/abskoop/index.js +++ b/lib/v2/abskoop/index.js @@ -1,47 +1,37 @@ -const path = require('path'); const got = require('@/utils/got'); const cheerio = require('cheerio'); -const { art } = require('@/utils/render'); const { parseDate } = require('@/utils/parse-date'); module.exports = async (ctx) => { const response = await got({ method: 'get', - url: 'https://www.abskoop.com/page/1/', + url: 'https://www.ahhhhfs.com/wp-json/wp/v2/posts', + searchParams: { + per_page: ctx.query.limit ? parseInt(ctx.query.limit) : 10, + _embed: '', + }, }); - - const $list = cheerio.load(response.data); - const list = $list('.rizhuti_v2-widget-lastpost .scroll article') - .map(function () { - const link = $list(this).find('.entry-wrapper .entry-header a'); - return { - title: link.attr('title'), - link: link.attr('href'), - }; - }) - .get(); + const list = response.data.map((item) => ({ + title: item.title.rendered, + link: item.link, + pubDate: parseDate(item.date_gmt), + updated: parseDate(item.modified_gmt), + author: item._embedded.author[0].name, + category: [...new Set(item._embedded['wp:term'].flatMap((i) => i.map((j) => j.name)))], + })); const items = await Promise.all( - list.reverse().map((item) => + list.map((item) => ctx.cache.tryGet(item.link, async () => { const detailResponse = await got({ method: 'get', url: item.link }); const $detail = cheerio.load(detailResponse.data); - $detail('article .entry-content').find('#related_posts').remove(); - $detail('article .entry-content').find('#jp-relatedposts').remove(); - $detail('article .entry-content').find('.post-note').remove(); - $detail('article .entry-content').find('.entry-tags').remove(); - $detail('article .entry-content').find('.entry-share').remove(); - $detail('article .entry-content a').each(function () { - if ($detail(this).find('img').length > 0) { - $detail(this).replaceWith(``); - } + $detail('article.post-content').find('.lwptoc').remove(); + $detail('article.post-content').find('#related_posts').remove(); + $detail('article.post-content').find('.entry-copyright').remove(); + $detail('article.post-content img').each(function () { + $detail(this).replaceWith(``); }); - const desc = []; - $detail('article .entry-content > *').each(function () { - desc.push($detail(this).html()); - }); - item.description = art(path.join(__dirname, 'templates/description.art'), { desc }); - item.pubDate = parseDate($detail('meta[property="article:published_time"]').attr('content')); + item.description = $detail('article.post-content').html(); return item; }) ) @@ -49,7 +39,7 @@ module.exports = async (ctx) => { ctx.state.data = { title: 'ahhhhfs-A姐分享', - link: 'https://www.abskoop.com', + link: 'https://www.ahhhhfs.com', description: 'A姐分享,分享各种网络云盘资源、BT种子、高清电影电视剧和羊毛福利,收集各种有趣实用的软件和APP的下载、安装、使用方法,发现一些稀奇古怪的的网站,折腾一些有趣实用的教程,关注谷歌苹果等互联网最新的资讯动态,探索新领域,发现新美好,分享小快乐。', item: items, diff --git a/lib/v2/abskoop/nsfw.js b/lib/v2/abskoop/nsfw.js index fa59f8186..100695a0f 100644 --- a/lib/v2/abskoop/nsfw.js +++ b/lib/v2/abskoop/nsfw.js @@ -1,52 +1,31 @@ -const path = require('path'); const got = require('@/utils/got'); -const cheerio = require('cheerio'); -const { art } = require('@/utils/render'); const { parseDate } = require('@/utils/parse-date'); module.exports = async (ctx) => { const response = await got({ method: 'get', - url: 'https://nsfw.ahhhhfs.com/articles-archive/', + url: 'https://nsfw.abskoop.com/wp-json/wp/v2/posts', + searchParams: { + per_page: ctx.query.limit ? parseInt(ctx.query.limit) : 10, + _embed: '', + }, }); - const $list = cheerio.load(response.data); - const list = $list('article li') - .slice(0, 20) - .map(function () { - return { - link: $list(this).find('a').attr('href'), - }; - }) - .get(); - - const items = await Promise.all( - list.map((item) => - ctx.cache.tryGet(item.link, async () => { - const detailResponse = await got({ method: 'get', url: item.link }); - const $detail = cheerio.load(detailResponse.data); - $detail('article .entry-content a').each(function () { - if ($detail(this).find('img').length > 0) { - $detail(this).replaceWith(``); - } - }); - const desc = []; - $detail('article .entry-content > p').each(function () { - desc.push($detail(this).html()); - }); - item.title = $detail('article h1.entry-title').text(); - item.description = art(path.join(__dirname, 'templates/description.art'), { desc }); - item.pubDate = parseDate($detail('meta[property="article:published_time"]').attr('content')); - return item; - }) - ) - ); + const list = response.data.map((item) => ({ + title: item.title.rendered, + description: item.content.rendered, + link: item.link, + pubDate: parseDate(item.date_gmt), + updated: parseDate(item.modified_gmt), + author: item._embedded.author[0].name, + category: [...new Set(item._embedded['wp:term'].flatMap((i) => i.map((j) => j.name)))], + })); ctx.state.data = { title: 'ahhhhfs-A姐分享NSFW', - link: 'https://nsfw.ahhhhfs.com', + link: 'https://nsfw.ahhhhfs.com/articles-archive', description: 'A姐分享NSFW,分享各种网络云盘资源、BT种子、磁力链接、高清电影电视剧和羊毛福利,收集各种有趣实用的软件和APP的下载、安装、使用方法,发现一些稀奇古怪的的网站,折腾一些有趣实用的教程,关注谷歌苹果等互联网最新的资讯动态,探索新领域,发现新美好,分享小快乐。', - item: items, + item: list, }; }; diff --git a/lib/v2/abskoop/radar.js b/lib/v2/abskoop/radar.js index 8cd53cd15..60544a7a3 100644 --- a/lib/v2/abskoop/radar.js +++ b/lib/v2/abskoop/radar.js @@ -1,11 +1,22 @@ module.exports = { 'abskoop.com': { + _name: 'A姐分享', + nsfw: [ + { + title: 'NSFW 存档列表', + docs: 'https://docs.rsshub.app/routes/multimedia#a-jie-fen-xiang', + source: ['/articles-archive', '/'], + target: '/abskoop', + }, + ], + }, + 'ahhhhfs.com': { _name: 'A姐分享', '.': [ { title: '存档列表', - docs: 'https://docs.rsshub.app/routes/multimedia#abskoop', - source: ['/archives'], + docs: 'https://docs.rsshub.app/routes/multimedia#a-jie-fen-xiang', + source: ['/'], target: '/abskoop', }, ], diff --git a/lib/v2/abskoop/templates/description.art b/lib/v2/abskoop/templates/description.art deleted file mode 100644 index 4594e9799..000000000 --- a/lib/v2/abskoop/templates/description.art +++ /dev/null @@ -1,3 +0,0 @@ -{{each desc}} -

{{@ $value}}

-{{/each}} diff --git a/website/docs/routes/multimedia.md b/website/docs/routes/multimedia.md index cbe58390c..e66f06600 100644 --- a/website/docs/routes/multimedia.md +++ b/website/docs/routes/multimedia.md @@ -275,7 +275,9 @@ When `uncensored_makersr` as **Uncensored** is chosen as **Category**, the avail ## A 姐分享 {#a-jie-fen-xiang} - +### 存档列表 {#a-jie-fen-xiang-cun-dang-lie-biao} + + ## AV01(av01.tv) {#av01%EF%BC%88av01.tv%EF%BC%89} @@ -981,7 +983,7 @@ See [Directory](https://www.javlibrary.com/en/star_list.php) to view all stars. ### 影视分类 {#mp4ba-ying-shi-fen-lei} - + **类型参考这里**