feat(nyaa/sukebei): 搜索指定用户的内容 (#11175)

* feat(nyaa/sukebei): 搜索指定用户的内容

* docs: match path with maintainer

Co-authored-by: hu meng <mail@meng.hu>
This commit is contained in:
noname1776
2022-11-16 20:40:19 +08:00
committed by GitHub
parent dbc536683b
commit 297b3a7313
6 changed files with 78 additions and 66 deletions
+12 -4
View File
@@ -391,19 +391,27 @@ See [Directory](https://www.javlibrary.com/en/star_list.php) to view all stars.
### Search Result
<RouteEn author="Lava-Swimmer noname1897" example="/nyaa/search/psycho-pass" path="/nyaa/search/:query?" :paramsDesc="['Search keyword']" supportBT="1" radar="1"/>
<RouteEn author="Lava-Swimmer noname1776" example="/nyaa/search/psycho-pass" path="/nyaa/search/:query?" :paramsDesc="['Search keyword']" supportBT="1" radar="1"/>
### User
<RouteEn author="Lava-Swimmer noname1897" example="/nyaa/user/silver-khaie" path="/nyaa/user/:username?" :paramsDesc="['Username']" supportBT="1" radar="1"/>
<RouteEn author="Lava-Swimmer noname1776" example="/nyaa/user/silver-khaie" path="/nyaa/user/:username?" :paramsDesc="['Username']" supportBT="1" radar="1"/>
### Search Result with specify user
<RouteEn author="Lava-Swimmer noname1776" example="/nyaa/user/silver-khaie/search/a" path="/nyaa/user/:username/search/:query?" :paramsDesc="['Username', 'Search keyword']" supportBT="1" radar="1"/>
### Sukebei Search Result
<RouteEn author="Lava-Swimmer noname1897" example="/nyaa/sukebei/search/hi" path="/nyaa/sukebei/search/:query?" :paramsDesc="['Search keyword']" supportBT="1" radar="1"/>
<RouteEn author="Lava-Swimmer noname1776" example="/nyaa/sukebei/search/hi" path="/nyaa/sukebei/search/:query?" :paramsDesc="['Search keyword']" supportBT="1" radar="1"/>
### Sukebei User
<RouteEn author="Lava-Swimmer noname1897" example="/nyaa/sukebei/user/Tarakara168" path="/nyaa/sukebei/user/:username?" :paramsDesc="['Username']" supportBT="1" radar="1"/>
<RouteEn author="Lava-Swimmer noname1776" example="/nyaa/sukebei/user/Tarakara168" path="/nyaa/sukebei/user/:username?" :paramsDesc="['Username']" supportBT="1" radar="1"/>
### Sukebei search Result with specify user
<RouteEn author="Lava-Swimmer noname1776" example="/nyaa/sukebei/user/Tarakara168/search/a" path="/nyaa/sukebei/user/:username/search/:query?" :paramsDesc="['Username', 'Search keyword']" supportBT="1" radar="1"/>
## PornHub
+12 -4
View File
@@ -948,19 +948,27 @@ JavDB 有多个备用域名,本路由默认使用永久域名 <https://javdb.c
### 搜索结果
<Route author="Lava-Swimmer noname1897" example="/nyaa/search/psycho-pass" path="/nyaa/search/:query?" :paramsDesc="['搜索关键字']" supportBT="1" radar="1"/>
<Route author="Lava-Swimmer noname1776" example="/nyaa/search/psycho-pass" path="/nyaa/search/:query?" :paramsDesc="['搜索关键字']" supportBT="1" radar="1"/>
### 用户
<Route author="Lava-Swimmer noname1897" example="/nyaa/user/silver-khaie" path="/nyaa/user/:username?" :paramsDesc="['用户名']" supportBT="1" radar="1"/>
<Route author="Lava-Swimmer noname1776" example="/nyaa/user/silver-khaie" path="/nyaa/user/:username?" :paramsDesc="['用户名']" supportBT="1" radar="1"/>
### 对指定用户进行搜索
<Route author="Lava-Swimmer noname1776" example="/nyaa/user/silver-khaie/search/a" path="/nyaa/user/:username/search/:query?" :paramsDesc="['用户名', '搜索关键词']" supportBT="1" radar="1"/>
### Sukebei 搜索结果
<Route author="Lava-Swimmer noname1897" example="/nyaa/sukebei/search/hi" path="/nyaa/sukebei/search/:query?" :paramsDesc="['搜索关键字']" supportBT="1" radar="1"/>
<Route author="Lava-Swimmer noname1776" example="/nyaa/sukebei/search/hi" path="/nyaa/sukebei/search/:query?" :paramsDesc="['搜索关键字']" supportBT="1" radar="1"/>
### Sukebei 用户
<Route author="Lava-Swimmer noname1897" example="/nyaa/sukebei/user/Tarakara168" path="/nyaa/sukebei/user/:username?" :paramsDesc="['用户名']" supportBT="1" radar="1"/>
<Route author="Lava-Swimmer noname1776" example="/nyaa/sukebei/user/Tarakara168" path="/nyaa/sukebei/user/:username?" :paramsDesc="['用户名']" supportBT="1" radar="1"/>
### Sukebei 对指定用户进行搜索
<Route author="Lava-Swimmer noname1776" example="/nyaa/sukebei/user/Tarakara168/search/a" path="/nyaa/sukebei/user/:username/search/:query?" :paramsDesc="['用户名', '搜索关键词']" supportBT="1" radar="1"/>
## OneJAV
+16 -23
View File
@@ -11,34 +11,27 @@ module.exports = async (ctx) => {
},
});
let currentURL;
let currentLink;
const { query, username } = ctx.params;
let rootURL;
if (ctx.routerPath.split('/')[1] === 'sukebei') {
const rootURL = 'https://sukebei.nyaa.si';
const { username = 'ohys' } = ctx.params;
const { query = '' } = ctx.params;
if (ctx.routerPath.split('/')[2] === 'user') {
currentURL = `${rootURL}/?page=rss&u=${username}`;
currentLink = `${rootURL}/user/${username}`;
} else {
currentURL = `${rootURL}/?page=rss&c=0_0&f=0&q=${encodeURI(query)}`;
currentLink = `${rootURL}/?f=0&c=0_0&q=${query}`;
}
rootURL = 'https://sukebei.nyaa.si';
} else {
const rootURL = 'https://nyaa.si';
const { username = 'Tarakara168' } = ctx.params;
const { query = '' } = ctx.params;
if (ctx.routerPath.split('/')[1] === 'user') {
currentURL = `${rootURL}/?page=rss&u=${username}`;
currentLink = `${rootURL}/user/${username}`;
} else {
currentURL = `${rootURL}/?page=rss&c=0_0&f=0&q=${encodeURI(query)}`;
currentLink = `${rootURL}/?f=0&c=0_0&q=${query}`;
}
rootURL = 'https://nyaa.si';
}
const feed = await parser.parseURL(currentURL);
let currentRSSURL = `${rootURL}/?page=rss`;
let currentLink = `${rootURL}/`;
if (username !== undefined) {
currentRSSURL = `${currentRSSURL}&u=${encodeURI(username)}`;
currentLink = `${currentLink}user/${encodeURI(username)}`;
}
if (query !== undefined) {
currentRSSURL = `${currentRSSURL}&q=${encodeURI(query)}`;
currentLink = `${currentLink}?q=${encodeURI(query)}`;
}
const feed = await parser.parseURL(currentRSSURL);
feed.items.map((item) => {
item.link = item.guid;
+7 -4
View File
@@ -1,6 +1,9 @@
module.exports = {
'/search/:query?': ['Lava-Swimmer', 'noname1897'],
'/sukebei/search/:query?': ['Lava-Swimmer', 'noname1897'],
'/user/:username?': ['Lava-Swimmer', 'noname1897'],
'/sukebei/user/:username?': ['Lava-Swimmer', 'noname1897'],
'/search/:query?': ['Lava-Swimmer', 'noname1776'],
'/user/:username?': ['Lava-Swimmer', 'noname1776'],
'/user/:username/search/:query?': ['Lava-Swimmer', 'noname1776'],
'/sukebei/search/:query?': ['Lava-Swimmer', 'noname1776'],
'/sukebei/user/:username?': ['Lava-Swimmer', 'noname1776'],
'/sukebei/user/:username/search/:query?': ['Lava-Swimmer', 'noname1776'],
};
+27 -29
View File
@@ -3,47 +3,45 @@ module.exports = {
_name: 'nyaa',
'.': [
{
title: '搜索结果',
docs: 'https://docs.rsshub.app/multimedia.html#nyaa-sou-suo-jie-guo',
source: '/',
title: 'nyaa 的搜索结果、指定用户、指定用户的搜索结果',
docs: 'https://docs.rsshub.app/multimedia.html#nyaa',
source: ['/', '/user/:username'],
target: (params, url) => {
url = new URL(url);
if (url.hostname.split('.')[0] === 'nyaa') {
const searchParams = url.searchParams;
const query = searchParams.has('q') ? searchParams.get('q') : '';
return `/nyaa/search/${query}`;
const username = params.username;
const query = url.searchParams.get('q');
let currentURL = '/nyaa';
if (username !== undefined) {
currentURL = `${currentURL}/user/${username}`;
}
},
},
{
title: '用户',
docs: 'https://docs.rsshub.app/multimedia.html#nyaa-yong-hu',
source: '/user/:username',
target: (params, url) => {
url = new URL(url);
if (url.hostname.split('.')[0] === 'nyaa') {
return `/nyaa/user/${params.username}`;
if (query !== null) {
currentURL = `${currentURL}/search/${query}`;
}
return currentURL;
},
},
],
sukebei: [
{
title: 'sukebei 搜索结果',
docs: 'https://docs.rsshub.app/multimedia.html#nyaa-sukebei-sou-suo-jie-guo',
source: '/',
title: 'sukebei 的搜索结果、指定用户、指定用户的搜索结果',
docs: 'https://docs.rsshub.app/multimedia.html#nyaa',
source: ['/', '/user/:username'],
target: (params, url) => {
const searchParams = new URL(url).searchParams;
const query = searchParams.has('q') ? searchParams.get('q') : '';
return `/nyaa/sukebei/search/${query}`;
url = new URL(url);
const username = params.username;
const query = url.searchParams.get('q');
let currentURL = '/nyaa/sukebei';
if (username !== undefined) {
currentURL = `${currentURL}/user/${username}`;
}
if (query !== null) {
currentURL = `${currentURL}/search/${query}`;
}
return currentURL;
},
},
{
title: 'sukebei 用户',
docs: 'https://docs.rsshub.app/multimedia.html#nyaa-sukebei-yong-hu',
source: '/user/:username',
target: (params) => `/nyaa/sukebei/user/${params.username}`,
},
],
},
};
+4 -2
View File
@@ -1,7 +1,9 @@
module.exports = (router) => {
router.get('/search/:query?', require('./main'));
router.get('/sukebei/search/:query?', require('./main'));
router.get('/user/:username?', require('./main'));
router.get('/user/:username/search/:query?', require('./main'));
router.get('/sukebei/search/:query?', require('./main'));
router.get('/sukebei/user/:username?', require('./main'));
router.get('/sukebei/user/:username/search/:query?', require('./main'));
};