fix(route): fix A姐分享 (#13196)
* fix(route): fix A姐分享 * fix: use wordpress api * fix: use flatmap * docs: fix build ---------
This commit is contained in:
parent
5ba7a70937
commit
31c0aa715e
|
|
@ -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(`<img src=${$detail(this).attr('href')}>`);
|
||||
}
|
||||
$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(`<img src=https:${$detail(this).attr('src')}>`);
|
||||
});
|
||||
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,
|
||||
|
|
|
|||
|
|
@ -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(`<img src=${$detail(this).attr('href')}>`);
|
||||
}
|
||||
});
|
||||
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,
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
},
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,3 +0,0 @@
|
|||
{{each desc}}
|
||||
<p>{{@ $value}}</p>
|
||||
{{/each}}
|
||||
|
|
@ -275,7 +275,9 @@ When `uncensored_makersr` as **Uncensored** is chosen as **Category**, the avail
|
|||
|
||||
## A 姐分享 {#a-jie-fen-xiang}
|
||||
|
||||
<Route author="zhenhappy" example="/abskoop/nsfw" path="/abskoop/:type?" paramsDesc={['为空, 订阅主站点, `nsfw`订阅nsfw子站点']}>
|
||||
### 存档列表 {#a-jie-fen-xiang-cun-dang-lie-biao}
|
||||
|
||||
<Route author="zhenhappy" example="/abskoop/nsfw" path="/abskoop/:type?" paramsDesc={['为空, 订阅主站点, `nsfw`订阅nsfw子站点']} radar="1"/>
|
||||
|
||||
## 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}
|
||||
|
||||
<Route author="SettingDust wolfyu1991" example="/mp4ba/6" path="/mp4ba/:param" paramsDesc={['类型']} supportBT="1"/>
|
||||
<Route author="SettingDust wolfyu1991" example="/mp4ba/6" path="/mp4ba/:param" paramsDesc={['类型']} supportBT="1">
|
||||
|
||||
**类型参考这里**
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue