feat(route): 新增JavBus发行商和制作商订阅 (#8183)
* 新增JavBus发行商和制作商订阅 * docs: fix unnecessary changes * refactor: migrate to v2 * docs: remove dup items Co-authored-by: EsuRt <thusid@outlook.com> Co-authored-by: TonyRL <TonyRL@users.noreply.github.com>
This commit is contained in:
parent
cefd9573c8
commit
3d888cb765
|
|
@ -679,28 +679,6 @@
|
|||
{ title: '视频 - 播放列表', docs: 'https://docs.rsshub.app/multimedia.html#teng-xun-shi-pin', source: '/x/cover/:id/:detail', target: '/tencentvideo/playlist/:id' },
|
||||
],
|
||||
},
|
||||
'javbus.com': {
|
||||
_name: 'JavBus',
|
||||
www: [
|
||||
{ title: '首页', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/', target: '/javbus/home' },
|
||||
{ title: '分类', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/genre/:gid', target: '/javbus/genre/:gid' },
|
||||
{ title: '演员', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/star/:sid', target: '/javbus/star/:sid' },
|
||||
{ title: '系列', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/series/:seriesid', target: '/javbus/series/:seriesid' },
|
||||
{ title: '首页 / 步兵', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/uncensored', target: '/javbus/uncensored/home' },
|
||||
{ title: '分类 / 步兵', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/uncensored/genre/:gid', target: '/javbus/uncensored/genre/:gid' },
|
||||
{ title: '演员 / 步兵', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/uncensored/star/:sid', target: '/javbus/uncensored/star/:sid' },
|
||||
{ title: '系列 / 步兵', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/uncensored/series/:seriesid', target: '/javbus/uncensored/series/:seriesid' },
|
||||
],
|
||||
},
|
||||
'javbus.one': {
|
||||
_name: 'JavBus',
|
||||
www: [
|
||||
{ title: '首页 / 欧陆风云', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/', target: '/javbus/western/home' },
|
||||
{ title: '分类 / 欧陆风云', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/genre/:gid', target: '/javbus/western/genre/:gid' },
|
||||
{ title: '演员 / 欧陆风云', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/star/:sid', target: '/javbus/western/star/:sid' },
|
||||
{ title: '系列 / 欧陆风云', docs: 'https://docs.rsshub.app/multimedia.html#javbus', source: '/series/:seriesid', target: '/javbus/western/series/:seriesid' },
|
||||
],
|
||||
},
|
||||
'onejav.com': {
|
||||
_name: 'OneJAV BT',
|
||||
'.': [
|
||||
|
|
|
|||
|
|
@ -413,6 +413,14 @@ BT 之家的域名会变更,本路由以 <https://www.btbtt20.com> 为默认
|
|||
|
||||
<Route author="MegrezZhu CoderTonyChan Felix2yu" example="/javbus/series/44q" path="/javbus/series/:seriesid" :paramsDesc="['系列id,详见作品中系列的链接']" />
|
||||
|
||||
### 制作商
|
||||
|
||||
<Route author="MegrezZhu CoderTonyChan Felix2yu" example="/javbus/studio/ej" path="/javbus/studio/:studioid" :paramsDesc="['制作商id,详见作品右侧制作商的链接']" />
|
||||
|
||||
### 发行商
|
||||
|
||||
<Route author="MegrezZhu CoderTonyChan Felix2yu" example="/javbus/label/x8" path="/javbus/label/:labelid" :paramsDesc="['发行商id,详见作品右侧发行商的链接']" />
|
||||
|
||||
### 首页 / 步兵
|
||||
|
||||
<Route author="MegrezZhu CoderTonyChan" example="/javbus/uncensored/home" path="/javbus/uncensored/home"/>
|
||||
|
|
|
|||
|
|
@ -1704,88 +1704,6 @@ module.exports = {
|
|||
},
|
||||
],
|
||||
},
|
||||
'javbus.com': {
|
||||
_name: 'JavBus',
|
||||
www: [
|
||||
{
|
||||
title: '首页',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/',
|
||||
target: '/javbus/home',
|
||||
},
|
||||
{
|
||||
title: '分类',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/genre/:gid',
|
||||
target: '/javbus/genre/:gid',
|
||||
},
|
||||
{
|
||||
title: '演员',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/star/:sid',
|
||||
target: '/javbus/star/:sid',
|
||||
},
|
||||
{
|
||||
title: '系列',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/series/:seriesid',
|
||||
target: '/javbus/series/:seriesid',
|
||||
},
|
||||
{
|
||||
title: '首页 / 步兵',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/uncensored',
|
||||
target: '/javbus/uncensored/home',
|
||||
},
|
||||
{
|
||||
title: '分类 / 步兵',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/uncensored/genre/:gid',
|
||||
target: '/javbus/uncensored/genre/:gid',
|
||||
},
|
||||
{
|
||||
title: '演员 / 步兵',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/uncensored/star/:sid',
|
||||
target: '/javbus/uncensored/star/:sid',
|
||||
},
|
||||
{
|
||||
title: '系列 / 步兵',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/uncensored/series/:seriesid',
|
||||
target: '/javbus/uncensored/series/:seriesid',
|
||||
},
|
||||
],
|
||||
},
|
||||
'javbus.one': {
|
||||
_name: 'JavBus',
|
||||
www: [
|
||||
{
|
||||
title: '首页 / 欧陆风云',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/',
|
||||
target: '/javbus/western/home',
|
||||
},
|
||||
{
|
||||
title: '分类 / 欧陆风云',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/genre/:gid',
|
||||
target: '/javbus/western/genre/:gid',
|
||||
},
|
||||
{
|
||||
title: '演员 / 欧陆风云',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/star/:sid',
|
||||
target: '/javbus/western/star/:sid',
|
||||
},
|
||||
{
|
||||
title: '系列 / 欧陆风云',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/series/:seriesid',
|
||||
target: '/javbus/western/series/:seriesid',
|
||||
},
|
||||
],
|
||||
},
|
||||
'onejav.com': {
|
||||
_name: 'OneJAV BT',
|
||||
'.': [
|
||||
|
|
|
|||
|
|
@ -1129,19 +1129,21 @@ router.get('/nga/post/:tid', lazyloadRouteHandler('./routes/nga/post'));
|
|||
// Nautilus
|
||||
router.get('/nautilus/topic/:tid', lazyloadRouteHandler('./routes/nautilus/topics'));
|
||||
|
||||
// JavBus
|
||||
router.get('/javbus/home', lazyloadRouteHandler('./routes/javbus/home'));
|
||||
router.get('/javbus/genre/:gid', lazyloadRouteHandler('./routes/javbus/genre'));
|
||||
router.get('/javbus/star/:sid', lazyloadRouteHandler('./routes/javbus/star'));
|
||||
router.get('/javbus/series/:seriesid', lazyloadRouteHandler('./routes/javbus/series'));
|
||||
router.get('/javbus/uncensored/home', lazyloadRouteHandler('./routes/javbus/uncensored/home'));
|
||||
router.get('/javbus/uncensored/genre/:gid', lazyloadRouteHandler('./routes/javbus/uncensored/genre'));
|
||||
router.get('/javbus/uncensored/star/:sid', lazyloadRouteHandler('./routes/javbus/uncensored/star'));
|
||||
router.get('/javbus/uncensored/series/:seriesid', lazyloadRouteHandler('./routes/javbus/uncensored/series'));
|
||||
router.get('/javbus/western/home', lazyloadRouteHandler('./routes/javbus/western/home'));
|
||||
router.get('/javbus/western/genre/:gid', lazyloadRouteHandler('./routes/javbus/western/genre'));
|
||||
router.get('/javbus/western/star/:sid', lazyloadRouteHandler('./routes/javbus/western/star'));
|
||||
router.get('/javbus/western/series/:seriesid', lazyloadRouteHandler('./routes/javbus/western/series'));
|
||||
// JavBus migrated to v2
|
||||
// router.get('/javbus/home', lazyloadRouteHandler('./routes/javbus/home'));
|
||||
// router.get('/javbus/genre/:gid', lazyloadRouteHandler('./routes/javbus/genre'));
|
||||
// router.get('/javbus/star/:sid', lazyloadRouteHandler('./routes/javbus/star'));
|
||||
// router.get('/javbus/series/:seriesid', lazyloadRouteHandler('./routes/javbus/series'));
|
||||
// router.get('/javbus/studio/:studioid', lazyloadRouteHandler('./routes/javbus/studio'));
|
||||
// router.get('/javbus/label/:labelid', lazyloadRouteHandler('./routes/javbus/label'));
|
||||
// router.get('/javbus/uncensored/home', lazyloadRouteHandler('./routes/javbus/uncensored/home'));
|
||||
// router.get('/javbus/uncensored/genre/:gid', lazyloadRouteHandler('./routes/javbus/uncensored/genre'));
|
||||
// router.get('/javbus/uncensored/star/:sid', lazyloadRouteHandler('./routes/javbus/uncensored/star'));
|
||||
// router.get('/javbus/uncensored/series/:seriesid', lazyloadRouteHandler('./routes/javbus/uncensored/series'));
|
||||
// router.get('/javbus/western/home', lazyloadRouteHandler('./routes/javbus/western/home'));
|
||||
// router.get('/javbus/western/genre/:gid', lazyloadRouteHandler('./routes/javbus/western/genre'));
|
||||
// router.get('/javbus/western/star/:sid', lazyloadRouteHandler('./routes/javbus/western/star'));
|
||||
// router.get('/javbus/western/series/:seriesid', lazyloadRouteHandler('./routes/javbus/western/series'));
|
||||
|
||||
// 中山大学
|
||||
router.get('/sysu/sdcs', lazyloadRouteHandler('./routes/universities/sysu/sdcs'));
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
const { getPage } = require('./util');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const { labelid } = ctx.params;
|
||||
|
||||
ctx.state.data = await getPage(`https://www.javbus.com/label/${labelid}`, ctx);
|
||||
};
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
module.exports = {
|
||||
'/genre/:gid': ['MegrezZhu', 'CoderTonyChan'],
|
||||
'/home': ['MegrezZhu', 'CoderTonyChan'],
|
||||
'/label/:labelid': ['MegrezZhu', 'CoderTonyChan', 'Felix2yu'],
|
||||
'/series/:seriesid': ['MegrezZhu', 'CoderTonyChan', 'Felix2yu'],
|
||||
'/star/:sid': ['MegrezZhu', 'CoderTonyChan'],
|
||||
'/studio/:studioid': ['MegrezZhu', 'CoderTonyChan', 'Felix2yu'],
|
||||
'/uncensored/home': ['MegrezZhu', 'CoderTonyChan'],
|
||||
'/uncensored/genre/:gid': ['MegrezZhu', 'CoderTonyChan'],
|
||||
'/uncensored/series/:seriesid': ['MegrezZhu', 'CoderTonyChan', 'Felix2yu'],
|
||||
'/uncensored/star/:sid': ['MegrezZhu', 'CoderTonyChan'],
|
||||
'/western/home': ['MegrezZhu', 'CoderTonyChan'],
|
||||
'/western/genre/:gid': ['MegrezZhu', 'CoderTonyChan'],
|
||||
'/western/series/:seriesid': ['MegrezZhu', 'CoderTonyChan', 'Felix2yu'],
|
||||
'/western/star/:sid': ['MegrezZhu', 'CoderTonyChan'],
|
||||
};
|
||||
|
|
@ -0,0 +1,99 @@
|
|||
const westernJavbus = {
|
||||
_name: 'JavBus',
|
||||
www: [
|
||||
{
|
||||
title: '首页 / 欧陆风云',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/',
|
||||
target: '/javbus/western/home',
|
||||
},
|
||||
{
|
||||
title: '分类 / 欧陆风云',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/genre/:gid',
|
||||
target: '/javbus/western/genre/:gid',
|
||||
},
|
||||
{
|
||||
title: '演员 / 欧陆风云',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/star/:sid',
|
||||
target: '/javbus/western/star/:sid',
|
||||
},
|
||||
{
|
||||
title: '系列 / 欧陆风云',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/series/:seriesid',
|
||||
target: '/javbus/western/series/:seriesid',
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
'javbus.com': {
|
||||
_name: 'JavBus',
|
||||
www: [
|
||||
{
|
||||
title: '首页',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/',
|
||||
target: '/javbus/home',
|
||||
},
|
||||
{
|
||||
title: '分类',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/genre/:gid',
|
||||
target: '/javbus/genre/:gid',
|
||||
},
|
||||
{
|
||||
title: '演员',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/star/:sid',
|
||||
target: '/javbus/star/:sid',
|
||||
},
|
||||
{
|
||||
title: '系列',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/series/:seriesid',
|
||||
target: '/javbus/series/:seriesid',
|
||||
},
|
||||
{
|
||||
title: '制作商',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/studio/:studioid',
|
||||
target: '/javbus/studio/:studioid',
|
||||
},
|
||||
{
|
||||
title: '发行商',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/label/:labelid',
|
||||
target: '/javbus/label/:labelid',
|
||||
},
|
||||
{
|
||||
title: '首页 / 步兵',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/uncensored',
|
||||
target: '/javbus/uncensored/home',
|
||||
},
|
||||
{
|
||||
title: '分类 / 步兵',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/uncensored/genre/:gid',
|
||||
target: '/javbus/uncensored/genre/:gid',
|
||||
},
|
||||
{
|
||||
title: '演员 / 步兵',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/uncensored/star/:sid',
|
||||
target: '/javbus/uncensored/star/:sid',
|
||||
},
|
||||
{
|
||||
title: '系列 / 步兵',
|
||||
docs: 'https://docs.rsshub.app/multimedia.html#javbus',
|
||||
source: '/uncensored/series/:seriesid',
|
||||
target: '/javbus/uncensored/series/:seriesid',
|
||||
},
|
||||
],
|
||||
},
|
||||
'javbus.one': westernJavbus,
|
||||
'javbus.org': westernJavbus,
|
||||
};
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
module.exports = (router) => {
|
||||
router.get('/genre/:gid', require('./genre'));
|
||||
router.get('/home', require('./home'));
|
||||
router.get('/label/:labelid', require('./label'));
|
||||
router.get('/series/:seriesid', require('./series'));
|
||||
router.get('/star/:sid', require('./star'));
|
||||
router.get('/studio/:studioid', require('./studio'));
|
||||
router.get('/uncensored/home', require('./uncensored/home'));
|
||||
router.get('/uncensored/genre/:gid', require('./uncensored/genre'));
|
||||
router.get('/uncensored/series/:seriesid', require('./uncensored/series'));
|
||||
router.get('/uncensored/star/:sid', require('./uncensored/star'));
|
||||
router.get('/western/home', require('./western/home'));
|
||||
router.get('/western/genre/:gid', require('./western/genre'));
|
||||
router.get('/western/series/:seriesid', require('./western/series'));
|
||||
router.get('/western/star/:sid', require('./western/star'));
|
||||
};
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
const { getPage } = require('./util');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const { studioid } = ctx.params;
|
||||
|
||||
ctx.state.data = await getPage(`https://www.javbus.com/studio/${studioid}`, ctx);
|
||||
};
|
||||
|
|
@ -1,5 +1,6 @@
|
|||
const got = require('@/utils/got');
|
||||
const { load } = require('cheerio');
|
||||
const { parseDate } = require('@/utils/parse-date');
|
||||
|
||||
exports.getPage = async (url, ctx) => {
|
||||
const { data } = await got(url);
|
||||
|
|
@ -25,7 +26,7 @@ const parseItems = ($, ctx) =>
|
|||
title: $(ele).find('img').attr('title'),
|
||||
thumb: $(ele).find('img').attr('src'),
|
||||
link: $(ele).attr('href'),
|
||||
pubDate: new Date($(ele).find('date:nth-child(4)').text()).toUTCString(),
|
||||
pubDate: parseDate($(ele).find('date:nth-child(4)').text(), 'YYYY-MM-DD'),
|
||||
aid: $(ele).find('date:nth-child(3)').text(),
|
||||
}))
|
||||
.toArray()
|
||||
|
|
@ -58,11 +59,8 @@ const parseItems = ($, ctx) =>
|
|||
};
|
||||
});
|
||||
|
||||
const getDetail = async (link, ctx) => {
|
||||
const cache = await ctx.cache.get(link);
|
||||
if (cache) {
|
||||
return JSON.parse(cache);
|
||||
} else {
|
||||
const getDetail = async (link, ctx) =>
|
||||
await ctx.cache.tryGet(link, async () => {
|
||||
const resp = await got(link);
|
||||
const detailPage = resp.data;
|
||||
// 演员
|
||||
|
|
@ -205,7 +203,5 @@ const getDetail = async (link, ctx) => {
|
|||
}
|
||||
|
||||
const detail = { actresses, filmId, filmTime, filmLast, filmEstabName, filmMakerbName, seriesName, directorName, code, screenData, magnetlinks, videoplayer, videolink };
|
||||
ctx.cache.set(link, JSON.stringify(detail));
|
||||
return detail;
|
||||
}
|
||||
};
|
||||
});
|
||||
Loading…
Reference in New Issue