mirror of
https://github.com/DIYgod/RSSHub.git
synced 2025-12-04 02:58:08 +08:00
feat: remove lib/radar-rules.js
This commit is contained in:
@@ -1,7 +1,61 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const target = path.join(__dirname, '../../assets/build/maintainer.json');
|
||||
const maintainer = require(path.join(__dirname, '../../lib/maintainer.js'));
|
||||
const dirname = path.join(__dirname + '../../../lib/v2');
|
||||
|
||||
// Presence Check
|
||||
for (const dir of fs.readdirSync(dirname)) {
|
||||
const dirPath = path.join(dirname, dir);
|
||||
if (fs.existsSync(path.join(dirPath, 'router.js')) && !fs.existsSync(path.join(dirPath, 'maintainer.js'))) {
|
||||
throw new Error(`No maintainer.js in "${dirPath}".`);
|
||||
}
|
||||
}
|
||||
|
||||
// 遍历整个 routes 文件夹,收集模块 maintainer.js
|
||||
const maintainerPath = require('require-all')({
|
||||
dirname,
|
||||
filter: /maintainer\.js$/,
|
||||
});
|
||||
|
||||
const maintainers = {};
|
||||
|
||||
// 将收集到的自定义模块进行合并
|
||||
for (const dir in maintainerPath) {
|
||||
const routes = maintainerPath[dir]['maintainer.js']; // Do not merge other file
|
||||
|
||||
// typo check e.g., ✘ module.export, ✔ module.exports
|
||||
if (!Object.keys(routes).length) {
|
||||
throw new Error(`No maintainer in "${dir}".`);
|
||||
}
|
||||
for (const author of Object.values(routes)) {
|
||||
if (!Array.isArray(author)) {
|
||||
throw new TypeError(`Maintainers' name should be an array in "${dir}".`);
|
||||
}
|
||||
// check for [], [''] or ['Someone', '']
|
||||
if (author.length < 1 || author.includes('')) {
|
||||
throw new Error(`Empty maintainer in "${dir}".`);
|
||||
}
|
||||
}
|
||||
|
||||
for (const key in routes) {
|
||||
maintainers['/' + dir + (key.endsWith('/') ? key.substring(0, key.length - 1) : key)] = routes[key];
|
||||
}
|
||||
}
|
||||
|
||||
// 兼容旧版路由
|
||||
const router = require('../../lib/router.js');
|
||||
for (const e of router.stack) {
|
||||
if (!maintainers[e.path]) {
|
||||
maintainers[e.path] = [];
|
||||
}
|
||||
}
|
||||
|
||||
const maintainer = Object.keys(maintainers)
|
||||
.sort()
|
||||
.reduce((obj, path) => {
|
||||
obj[path] = maintainers[path];
|
||||
return obj;
|
||||
}, {});
|
||||
|
||||
const count = Object.keys(maintainer).length;
|
||||
const uniqueMaintainer = new Set();
|
||||
|
||||
@@ -2,7 +2,7 @@ const fs = require('fs');
|
||||
const path = require('path');
|
||||
const targetJs = path.join(__dirname, '../../assets/build/radar-rules.js');
|
||||
const targetJson = path.join(__dirname, '../../assets/build/radar-rules.json');
|
||||
const dirname = __dirname + '/v2';
|
||||
const dirname = path.join(__dirname + '../../../lib/v2');
|
||||
const toSource = require('tosource');
|
||||
|
||||
// Namespaces that do not require radar.js
|
||||
|
||||
815
scripts/workflow/radar-rules.js
Normal file
815
scripts/workflow/radar-rules.js
Normal file
@@ -0,0 +1,815 @@
|
||||
module.exports = {
|
||||
'algocasts.io': {
|
||||
_name: 'AlgoCasts',
|
||||
'.': [
|
||||
{
|
||||
title: '视频更新',
|
||||
docs: 'https://docs.rsshub.app/routes/programming#algocasts',
|
||||
source: '/episodes',
|
||||
target: '/algocasts',
|
||||
},
|
||||
],
|
||||
},
|
||||
'soulapp.cn': {
|
||||
_name: 'Soul',
|
||||
'.': [
|
||||
{
|
||||
title: '瞬间更新',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#soul',
|
||||
},
|
||||
],
|
||||
},
|
||||
'anime1.me': {
|
||||
_name: 'Anime1',
|
||||
'.': [
|
||||
{
|
||||
title: '動畫',
|
||||
docs: 'https://docs.rsshub.app/routes/anime#anime1',
|
||||
source: '/category/:time/:name',
|
||||
target: '/anime1/anime/:time/:name',
|
||||
},
|
||||
{
|
||||
title: '搜尋',
|
||||
docs: 'https://docs.rsshub.app/routes/anime#anime1',
|
||||
source: '/',
|
||||
target: (params, url) => {
|
||||
const keyword = new URL(url).searchParams.get('s');
|
||||
return keyword ? `/anime1/search/${keyword}` : '';
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
'swufe.edu.cn': {
|
||||
_name: '西南财经大学',
|
||||
it: [
|
||||
{
|
||||
title: '经济信息工程学院 - 通知公告',
|
||||
docs: 'https://docs.rsshub.app/routes/university#xi-nan-cai-jing-da-xue',
|
||||
source: '/index/tzgg.htm',
|
||||
target: '/swufe/seie/tzgg',
|
||||
},
|
||||
{
|
||||
title: '经济信息工程学院 - 学院新闻',
|
||||
docs: 'https://docs.rsshub.app/routes/university#xi-nan-cai-jing-da-xue',
|
||||
source: '/index/xyxw.htm',
|
||||
target: '/swufe/seie/xyxw',
|
||||
},
|
||||
],
|
||||
},
|
||||
'www.chicagotribune.com': {
|
||||
_name: 'Chicago Tribune',
|
||||
www: [
|
||||
{
|
||||
title: 'Chicago Tribune',
|
||||
docs: 'https://docs.rsshub.app/routes/traditional_media#chicago-tribune',
|
||||
source: '/',
|
||||
},
|
||||
],
|
||||
},
|
||||
'monsterhunter.com': {
|
||||
_name: '怪物猎人世界',
|
||||
www: [
|
||||
{
|
||||
title: '更新情报',
|
||||
docs: 'https://docs.rsshub.app/routes/game#guai-wu-lie-ren-shi-jie',
|
||||
source: ['', '/*tpath'],
|
||||
target: '/mhw/update',
|
||||
},
|
||||
{
|
||||
title: '最新消息',
|
||||
docs: 'https://docs.rsshub.app/routes/game#guai-wu-lie-ren-shi-jie',
|
||||
source: ['', '/*tpath'],
|
||||
target: '/mhw/news',
|
||||
},
|
||||
],
|
||||
},
|
||||
'bing.com': {
|
||||
_name: 'Bing',
|
||||
www: [
|
||||
{
|
||||
title: '每日壁纸',
|
||||
docs: 'https://docs.rsshub.app/routes/picture#bing-bi-zhi',
|
||||
source: '',
|
||||
target: '/bing',
|
||||
},
|
||||
],
|
||||
},
|
||||
'wegene.com': {
|
||||
_name: 'WeGene',
|
||||
www: [
|
||||
{
|
||||
title: '最近更新',
|
||||
docs: 'https://docs.rsshub.app/routes/other#wegene',
|
||||
source: '',
|
||||
target: '/wegene/newest',
|
||||
},
|
||||
{
|
||||
title: '栏目',
|
||||
docs: 'https://docs.rsshub.app/routes/other#wegene',
|
||||
source: '/crowdsourcing',
|
||||
target: '/wegene/column/all/all',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
'emi-nitta.net': {
|
||||
_name: 'Emi Nitta',
|
||||
'.': [
|
||||
{
|
||||
title: '最近更新',
|
||||
docs: 'https://docs.rsshub.app/routes/other#xin-tian-hui-hai-guan-fang-wang-zhan',
|
||||
source: '/updates',
|
||||
target: '/emi-nitta/updates',
|
||||
},
|
||||
{
|
||||
title: '新闻',
|
||||
docs: 'https://docs.rsshub.app/routes/other#xin-tian-hui-hai-guan-fang-wang-zhan',
|
||||
source: '/contents/news',
|
||||
target: '/emi-nitta/news',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
'yuancheng.work': {
|
||||
_name: '远程.work',
|
||||
'.': [
|
||||
{
|
||||
title: '招聘信息',
|
||||
docs: 'https://docs.rsshub.app/routes/other#yuan-cheng-work',
|
||||
source: '/:caty',
|
||||
target: (params, url) => {
|
||||
if (!url) {
|
||||
return '/remote-work';
|
||||
}
|
||||
return '/remote-work/' + /\w+-(\w+)-\w+/.exec(url)[1];
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
'govopendata.com': {
|
||||
_name: '新闻联播文字版',
|
||||
cn: [
|
||||
{
|
||||
title: '新闻联播文字版',
|
||||
docs: 'https://docs.rsshub.app/routes/traditional-media#xin-wen-lian-bo-wen-zi-ban',
|
||||
source: '/xinwenlianbo',
|
||||
target: '/xinwenlianbo/index',
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
'steampowered.com': {
|
||||
_name: 'Steam',
|
||||
store: [
|
||||
{
|
||||
title: 'search',
|
||||
docs: 'https://docs.rsshub.app/routes/game#steam',
|
||||
source: '/search/',
|
||||
target: (params, url) => `/steam/search/${new URL(url).searchParams}`,
|
||||
},
|
||||
],
|
||||
},
|
||||
'suzhou.gov.cn': {
|
||||
_name: '苏州市政府',
|
||||
www: [
|
||||
{
|
||||
title: '政府新闻',
|
||||
docs: 'https://docs.rsshub.app/routes/government#su-zhou-shi-ren-min-zheng-fu',
|
||||
source: '/szsrmzf/:uid/nav_list.shtml',
|
||||
target: '/gov/suzhou/news/:uid',
|
||||
},
|
||||
],
|
||||
},
|
||||
'last.fm': {
|
||||
_name: 'Last.fm',
|
||||
www: [
|
||||
{
|
||||
title: '用户播放记录',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#last-fm',
|
||||
source: ['/user/:user', '/user/:user/*'],
|
||||
target: '/lastfm/recent/:user',
|
||||
},
|
||||
{
|
||||
title: '用户 Love 记录',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#last-fm',
|
||||
source: ['/user/:user', '/user/:user/*'],
|
||||
target: '/lastfm/loved/:user',
|
||||
},
|
||||
{
|
||||
title: '站内 Top 榜单',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#last-fm',
|
||||
source: '/charts',
|
||||
target: '/lastfm/top',
|
||||
},
|
||||
],
|
||||
},
|
||||
'hackerone.com': {
|
||||
_name: 'HackerOne',
|
||||
'.': [
|
||||
{
|
||||
title: 'HackerOne Hacker Activity',
|
||||
docs: 'https://docs.rsshub.app/routes/other#hackerone-hacker-activity',
|
||||
source: '/hacktivity',
|
||||
target: '/hackerone/hacktivity',
|
||||
},
|
||||
],
|
||||
},
|
||||
'cowlevel.net': {
|
||||
_name: '奶牛关',
|
||||
'.': [
|
||||
{
|
||||
title: '元素文章',
|
||||
docs: 'https://docs.rsshub.app/routes/game#nai-niu-guan',
|
||||
source: ['/element/:id', '/element/:id/article'],
|
||||
target: '/cowlevel/element/:id',
|
||||
},
|
||||
],
|
||||
},
|
||||
'ynu.edu.cn': {
|
||||
_name: '云南大学',
|
||||
home: [
|
||||
{
|
||||
title: '官网消息通告',
|
||||
docs: 'https://docs.rsshub.app/routes/university#yun-nan-da-xue',
|
||||
source: '/tzgg.htm',
|
||||
target: '/ynu/home',
|
||||
},
|
||||
],
|
||||
jwc: [
|
||||
{
|
||||
title: '教务处教务科通知',
|
||||
docs: 'https://docs.rsshub.app/routes/university#yun-nan-da-xue',
|
||||
source: '/*',
|
||||
target: '/jwc/1',
|
||||
},
|
||||
{
|
||||
title: '教务处学籍科通知',
|
||||
docs: 'https://docs.rsshub.app/routes/university#yun-nan-da-xue',
|
||||
source: '/*',
|
||||
target: '/jwc/2',
|
||||
},
|
||||
{
|
||||
title: '教务处教学研究科通知',
|
||||
docs: 'https://docs.rsshub.app/routes/university#yun-nan-da-xue',
|
||||
source: '/*',
|
||||
target: '/jwc/3',
|
||||
},
|
||||
{
|
||||
title: '教务处实践科学科通知',
|
||||
docs: 'https://docs.rsshub.app/routes/university#yun-nan-da-xue',
|
||||
source: '/*',
|
||||
target: '/jwc/4',
|
||||
},
|
||||
],
|
||||
grs: [
|
||||
{
|
||||
title: '研究生院通知',
|
||||
docs: 'https://docs.rsshub.app/routes/university#yun-nan-da-xue',
|
||||
source: '/*',
|
||||
target: '',
|
||||
},
|
||||
],
|
||||
},
|
||||
'hrbeu.edu.cn': {
|
||||
_name: '哈尔滨工程大学',
|
||||
yjsy: [
|
||||
{
|
||||
title: '研究生院 - 通知公告',
|
||||
docs: 'https://docs.rsshub.app/routes/university#ha-er-bin-gong-cheng-da-xue',
|
||||
source: '/*',
|
||||
target: '/heu/yjsy/announcement',
|
||||
},
|
||||
{
|
||||
title: '研究生院 - 新闻动态',
|
||||
docs: 'https://docs.rsshub.app/routes/university#ha-er-bin-gong-cheng-da-xue',
|
||||
source: '/*',
|
||||
target: '/heu/yjsy/news',
|
||||
},
|
||||
{
|
||||
title: '研究生院 - 国家公派项目',
|
||||
docs: 'https://docs.rsshub.app/routes/university#ha-er-bin-gong-cheng-da-xue',
|
||||
source: '/*',
|
||||
target: '/heu/yjsy/gjgp',
|
||||
},
|
||||
{
|
||||
title: '研究生院 - 国际合作与交流项目',
|
||||
docs: 'https://docs.rsshub.app/routes/university#ha-er-bin-gong-cheng-da-xue',
|
||||
source: '/*',
|
||||
target: '/heu/yjsy/gjhz',
|
||||
},
|
||||
],
|
||||
job: [
|
||||
{
|
||||
title: '就业服务平台 - 通知公告',
|
||||
docs: 'https://docs.rsshub.app/routes/university#ha-er-bin-gong-cheng-da-xue',
|
||||
source: '/*',
|
||||
target: '/heu/job/tzgg',
|
||||
},
|
||||
],
|
||||
uae: [
|
||||
{
|
||||
title: '水声学院 - 新闻动态',
|
||||
docs: 'https://docs.rsshub.app/routes/university#ha-er-bin-gong-cheng-da-xue',
|
||||
source: '/*',
|
||||
target: '/heu/shuisheng/xwdt',
|
||||
},
|
||||
{
|
||||
title: '研究生院 - 通知公告',
|
||||
docs: 'https://docs.rsshub.app/routes/university#ha-er-bin-gong-cheng-da-xue',
|
||||
source: '/*',
|
||||
target: '/heu/shuisheng/tzgg',
|
||||
},
|
||||
],
|
||||
},
|
||||
'gongxue.cn': {
|
||||
_name: '工学网',
|
||||
'.': [
|
||||
{
|
||||
title: '要闻',
|
||||
docs: 'https://docs.rsshub.app/routes/university#ha-er-bin-gong-cheng-da-xue',
|
||||
source: '/*',
|
||||
target: '/heu/gongxue/yw',
|
||||
},
|
||||
{
|
||||
title: '时讯',
|
||||
docs: 'https://docs.rsshub.app/routes/university#ha-er-bin-gong-cheng-da-xue',
|
||||
source: '/*',
|
||||
target: '/heu/gongxue/sx',
|
||||
},
|
||||
],
|
||||
},
|
||||
// 'biquge5200.com': {
|
||||
// www: [
|
||||
// {
|
||||
// title: 'biquge5200.com',
|
||||
// docs: 'https://docs.rsshub.app/routes/reading#bi-qu-ge-biquge5200-com',
|
||||
// source: '/:id',
|
||||
// target: '/novel/biquge/:id',
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
// 'biquge.info': {
|
||||
// www: [
|
||||
// {
|
||||
// title: 'biquge.info',
|
||||
// docs: 'https://docs.rsshub.app/routes/reading#bi-qu-ge-biquge-info',
|
||||
// source: '/:id',
|
||||
// target: '/novel/biqugeinfo/:id',
|
||||
// },
|
||||
// ],
|
||||
// },
|
||||
'matters.news': {
|
||||
_name: 'Matters',
|
||||
'.': [
|
||||
{
|
||||
title: '最新排序',
|
||||
docs: 'https://docs.rsshub.app/routes/new-media#matters',
|
||||
source: '',
|
||||
target: '/matters/latest',
|
||||
},
|
||||
{
|
||||
title: '标签',
|
||||
docs: 'https://docs.rsshub.app/routes/new-media#matters',
|
||||
source: '/tags/:tid',
|
||||
target: '/matters/tags/:tid',
|
||||
},
|
||||
{
|
||||
title: '作者',
|
||||
docs: 'https://docs.rsshub.app/routes/new-media#matters',
|
||||
source: ['/:id', '/:id/comments'],
|
||||
target: (params) => {
|
||||
const uid = params.id.replace('@', '');
|
||||
return uid ? `/matters/author/${uid}` : '';
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
'hbut.edu.cn': {
|
||||
_name: '湖北工业大学',
|
||||
www: [
|
||||
{
|
||||
title: '新闻中心',
|
||||
docs: 'http://docs.rsshub.app/university#hu-bei-gong-ye-da-xue',
|
||||
source: '/xwzx/:name',
|
||||
target: (params) => {
|
||||
const type = params.name.replace('.htm', '');
|
||||
return type ? `/hbut/news/${type}` : '/hbut/news/tzgg';
|
||||
},
|
||||
},
|
||||
],
|
||||
jsjxy: [
|
||||
{
|
||||
title: '新闻动态',
|
||||
docs: 'http://docs.rsshub.app/routes/university#hu-bei-gong-ye-da-xue',
|
||||
source: '/index/xwdt.htm',
|
||||
target: '/hbut/cs/xwdt',
|
||||
},
|
||||
{
|
||||
title: '通知公告',
|
||||
docs: 'http://docs.rsshub.app/routes/university#hu-bei-gong-ye-da-xue',
|
||||
source: '/index/tzgg.htm',
|
||||
target: '/hbut/cs/tzgg',
|
||||
},
|
||||
{
|
||||
title: '教学信息',
|
||||
docs: 'http://docs.rsshub.app/routes/university#hu-bei-gong-ye-da-xue',
|
||||
source: '/jxxx.htm',
|
||||
target: '/hbut/cs/jxxx',
|
||||
},
|
||||
{
|
||||
title: '科研动态',
|
||||
docs: 'http://docs.rsshub.app/routes/university#hu-bei-gong-ye-da-xue',
|
||||
source: '/kxyj/kydt.htm',
|
||||
target: '/hbut/cs/kydt',
|
||||
},
|
||||
{
|
||||
title: '党建活动',
|
||||
docs: 'http://docs.rsshub.app/routes/university#hu-bei-gong-ye-da-xue',
|
||||
source: '/djhd/djhd.htm',
|
||||
target: '/hbut/cs/djhd',
|
||||
},
|
||||
],
|
||||
},
|
||||
'zhuixinfan.com': {
|
||||
_name: '追新番日剧站',
|
||||
'.': [
|
||||
{
|
||||
title: '更新列表',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#zhui-xin-fan-ri-ju-zhan',
|
||||
source: ['/main.php'],
|
||||
target: '/zhuixinfan/list',
|
||||
},
|
||||
],
|
||||
},
|
||||
'etoland.co.kr': {
|
||||
_name: 'eTOLAND',
|
||||
'.': [
|
||||
{
|
||||
title: '主题贴',
|
||||
docs: 'https://docs.rsshub.app/routes/bbs#etoland',
|
||||
source: ['/bbs/board.php', '/plugin/mobile/board.php'],
|
||||
target: (params, url) => `/etoland/${new URL(url).searchParams.get('bo_table')}`,
|
||||
},
|
||||
],
|
||||
},
|
||||
'onejav.com': {
|
||||
_name: 'OneJAV BT',
|
||||
'.': [
|
||||
{
|
||||
title: '今日种子',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#onejav',
|
||||
source: '/',
|
||||
target: (params, url, document) => {
|
||||
const today = document.querySelector('div.card.mb-1.card-overview').dataset.date.replaceAll('-', '');
|
||||
return `/onejav/day/${today}`;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '今日演员',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#onejav',
|
||||
source: '/',
|
||||
target: (params, url, document) => {
|
||||
const star = document.querySelector('div.card-content > div > a').getAttribute('href');
|
||||
return `/onejav${star}`;
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '页面种子',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#onejav',
|
||||
source: ['/:type', '/:type/:key', '/:type/:key/:morekey'],
|
||||
target: (params, url, document) => {
|
||||
const itype = params.morekey === undefined ? params.type : params.type === 'tag' ? 'tag' : 'day';
|
||||
let ikey = `${itype === 'day' ? params.type : ''}${params.key || ''}${itype === 'tag' && params.morekey !== undefined ? '%2F' : ''}${params.morekey || ''}`;
|
||||
if (ikey === '' && itype === 'tag') {
|
||||
ikey = document.querySelector('div.thumbnail.is-inline > a').getAttribute('href').replace('/tag/', '').replace('/', '%2F');
|
||||
} else if (ikey === '' && itype === 'actress') {
|
||||
ikey = document.querySelector('div.card > a').getAttribute('href').replace('/actress/', '');
|
||||
}
|
||||
return `/onejav/${itype}/${ikey}`;
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
'sexinsex.net': {
|
||||
_name: 'sexinsex',
|
||||
'.': [
|
||||
{
|
||||
title: '分区帖子',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#sexinsex',
|
||||
source: '/bbs/:path',
|
||||
target: (params, url) => {
|
||||
let pid, typeid;
|
||||
const static_matched = params.path.match(/forum-(\d+)-\d+.html/);
|
||||
if (static_matched) {
|
||||
pid = static_matched[1];
|
||||
} else if (params.path === 'forumdisplay.php') {
|
||||
pid = new URL(url).searchParams.get('fid');
|
||||
typeid = new URL(url).searchParams.get('typeid');
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
return `/sexinsex/${pid}/${typeid ?? ''}`;
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
't66y.com': {
|
||||
_name: '草榴社区',
|
||||
www: [
|
||||
{
|
||||
title: '分区帖子',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#cao-liu-she-qu',
|
||||
source: '/thread0806.php',
|
||||
target: (params, url) => {
|
||||
const id = new URL(url).searchParams.get('fid');
|
||||
const type = new URL(url).searchParams.get('type');
|
||||
return `/t66y/${id}/${type ?? ''}`;
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
'umass.edu': {
|
||||
_name: 'UMASS Amherst',
|
||||
ece: [
|
||||
{
|
||||
title: 'ECE News',
|
||||
docs: 'http://docs.rsshub.app/routes/university#umass-amherst',
|
||||
source: '/news',
|
||||
target: '/umass/amherst/ecenews',
|
||||
},
|
||||
{
|
||||
title: 'ECE Seminar',
|
||||
docs: 'http://docs.rsshub.app/routes/university#umass-amherst',
|
||||
source: '/seminars',
|
||||
target: '/umass/amherst/eceseminar',
|
||||
},
|
||||
],
|
||||
'www.cics': [
|
||||
{
|
||||
title: 'CICS News',
|
||||
docs: 'http://docs.rsshub.app/routes/university#umass-amherst',
|
||||
source: '/news',
|
||||
target: '/umass/amherst/csnews',
|
||||
},
|
||||
],
|
||||
www: [
|
||||
{
|
||||
title: 'IPO Events',
|
||||
docs: 'http://docs.rsshub.app/routes/university#umass-amherst',
|
||||
source: '/ipo/iss/events',
|
||||
target: '/umass/amherst/ipoevents',
|
||||
},
|
||||
{
|
||||
title: 'IPO Featured Stories',
|
||||
docs: 'http://docs.rsshub.app/routes/university#umass-amherst',
|
||||
source: '/ipo/iss/featured-stories',
|
||||
target: '/umass/amherst/ipostories',
|
||||
},
|
||||
],
|
||||
},
|
||||
'bjeea.com': {
|
||||
_name: '北京考试院',
|
||||
www: [
|
||||
{
|
||||
title: '首页 / 通知公告',
|
||||
docs: 'https://docs.rsshub.app/routes/government#bei-jing-jiao-yu-kao-shi-yuan',
|
||||
source: ['/html/bjeeagg'],
|
||||
target: '/gov/beijing/bjeea/bjeeagg',
|
||||
},
|
||||
{
|
||||
title: '首页 / 招考政策',
|
||||
docs: 'https://docs.rsshub.app/routes/government#bei-jing-jiao-yu-kao-shi-yuan',
|
||||
source: ['/html/zkzc'],
|
||||
target: '/gov/beijing/bjeea/zkzc',
|
||||
},
|
||||
{
|
||||
title: '首页 / 自考快递',
|
||||
docs: 'https://docs.rsshub.app/routes/government#bei-jing-jiao-yu-kao-shi-yuan',
|
||||
source: ['/html/zkkd'],
|
||||
target: '/gov/beijing/bjeea/zkkd',
|
||||
},
|
||||
],
|
||||
},
|
||||
'nppa.gov.cn': {
|
||||
_name: '国家新闻出版署',
|
||||
www: [
|
||||
{
|
||||
title: '栏目',
|
||||
docs: 'https://docs.rsshub.app/routes/government#guo-jia-xin-wen-chu-ban-shu',
|
||||
source: '/nppa/channels/:channel',
|
||||
target: (params, url) => `/gov/nppa/${/nppa\/channels\/(\d+)\.shtml/.exec(url)[1]}`,
|
||||
},
|
||||
{
|
||||
title: '内容',
|
||||
docs: 'https://docs.rsshub.app/routes/government#guo-jia-xin-wen-chu-ban-shu',
|
||||
source: '/nppa/contents/:channel/:content',
|
||||
target: (params, url) => `/gov/nppa/${/nppa\/contents\/(\d+\/\d+)\.shtml/.exec(url)[1]}`,
|
||||
},
|
||||
],
|
||||
},
|
||||
'jjmhw.cc': {
|
||||
_name: '漫小肆',
|
||||
www: [
|
||||
{
|
||||
title: '漫画更新',
|
||||
docs: 'https://docs.rsshub.app/routes/anime#man-xiao-si',
|
||||
source: '/book/:id',
|
||||
target: '/manxiaosi/book/:id',
|
||||
},
|
||||
],
|
||||
},
|
||||
'wenxuecity.com': {
|
||||
_name: '文学城',
|
||||
blog: [
|
||||
{
|
||||
title: '博客',
|
||||
docs: 'https://docs.rsshub.app/routes/bbs#wen-xue-cheng-bo-ke',
|
||||
source: '/myblog/:id',
|
||||
target: '/wenxuecity/blog/:id',
|
||||
},
|
||||
{
|
||||
title: '博客',
|
||||
docs: 'https://docs.rsshub.app/routes/bbs#wen-xue-cheng-bo-ke',
|
||||
source: '/myoverview/:id',
|
||||
target: '/wenxuecity/blog/:id',
|
||||
},
|
||||
],
|
||||
bbs: [
|
||||
{
|
||||
title: '最新主题',
|
||||
docs: 'https://docs.rsshub.app/routes/bbs#wen-xue-cheng-zui-xin-zhu-ti',
|
||||
source: '/:cat',
|
||||
target: '/wenxuecity/bbs/:cat',
|
||||
},
|
||||
{
|
||||
title: '最新主题 - 精华区',
|
||||
docs: 'https://docs.rsshub.app/routes/bbs#wen-xue-cheng-zui-xin-zhu-ti',
|
||||
source: '/:cat',
|
||||
target: '/wenxuecity/bbs/:cat/1',
|
||||
},
|
||||
{
|
||||
title: '最热主题',
|
||||
docs: 'https://docs.rsshub.app/routes/bbs#wen-xue-cheng-zui-re-zhu-ti',
|
||||
source: '/?cid=*',
|
||||
target: (params, url, document) => {
|
||||
const cid = document && new URL(document.location).searchParams.get('cid');
|
||||
return `/wenxuecity/hot/${cid}`;
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
'huya.com': {
|
||||
_name: '虎牙直播',
|
||||
'.': [
|
||||
{
|
||||
title: '直播间开播',
|
||||
docs: 'https://docs.rsshub.app/routes/live#hu-ya-zhi-bo-zhi-bo-jian-kai-bo',
|
||||
source: '/:id',
|
||||
target: '/huya/live/:id',
|
||||
},
|
||||
],
|
||||
},
|
||||
'scboy.com': {
|
||||
_name: 'scboy 论坛',
|
||||
www: [
|
||||
{
|
||||
title: '帖子',
|
||||
docs: 'https://docs.rsshub.app/routes/bbs#scboy',
|
||||
source: '',
|
||||
target: (params, url) => {
|
||||
const id = url.includes('thread') ? url.split('-')[1].split('.')[0] : '';
|
||||
return id ? `/scboy/thread/${id}` : '';
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
'cqut.edu.cn': {
|
||||
_name: '重庆理工大学',
|
||||
tz: [
|
||||
{
|
||||
title: '通知',
|
||||
docs: 'https://docs.rsshub.app/routes/university#chong-qing-li-gong-da-xue',
|
||||
source: '/*',
|
||||
},
|
||||
],
|
||||
lib: [
|
||||
{
|
||||
title: '图书馆通知',
|
||||
docs: 'https://docs.rsshub.app/routes/university#chong-qing-li-gong-da-xue',
|
||||
source: '/*',
|
||||
},
|
||||
],
|
||||
},
|
||||
'trakt.tv': {
|
||||
_name: 'Trakt.tv',
|
||||
'.': [
|
||||
{
|
||||
title: '用户收藏',
|
||||
docs: 'https://docs.rsshub.app/routes/multimedia#trakt-tv-yong-hu-shou-cang',
|
||||
source: ['/users/:username/collection/:type/added', '/users/:username/collection'],
|
||||
target: (params) => `/trakt/collection/${params.username}/${params.type || 'all'}`,
|
||||
},
|
||||
],
|
||||
},
|
||||
'furaffinity.net': {
|
||||
_name: 'Fur Affinity',
|
||||
www: [
|
||||
{
|
||||
title: '主页',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/',
|
||||
target: '/furaffinity/home',
|
||||
},
|
||||
{
|
||||
title: '浏览',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/browse/',
|
||||
target: '/furaffinity/browse',
|
||||
},
|
||||
{
|
||||
title: '站点状态',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/',
|
||||
target: '/furaffinity/status',
|
||||
},
|
||||
{
|
||||
title: '搜索',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/search/',
|
||||
target: (params, url) => {
|
||||
const keyword = new URL(url).searchParams.get('q');
|
||||
if (keyword) {
|
||||
return `/furaffinity/search/${keyword}`;
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
title: '用户主页简介',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/user/:username/',
|
||||
target: '/furaffinity/user/:username',
|
||||
},
|
||||
{
|
||||
title: '用户关注列表',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/watchlist/by/:username/',
|
||||
target: '/furaffinity/watching/:username',
|
||||
},
|
||||
{
|
||||
title: '用户被关注列表',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/watchlist/to/:username/',
|
||||
target: '/furaffinity/watchers/:username',
|
||||
},
|
||||
{
|
||||
title: '用户接受委托信息',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/commissions/:username/',
|
||||
target: '/furaffinity/commissions/:username',
|
||||
},
|
||||
{
|
||||
title: '用户的 Shouts 留言',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/user/:username/',
|
||||
target: '/furaffinity/shouts/:username',
|
||||
},
|
||||
{
|
||||
title: '用户的日记',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/journals/:username/',
|
||||
target: '/furaffinity/journals/:username',
|
||||
},
|
||||
{
|
||||
title: '用户的创作画廊',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/gallery/:username/',
|
||||
target: '/furaffinity/gallery/:username',
|
||||
},
|
||||
{
|
||||
title: '用户非正式作品',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/scraps/:username/',
|
||||
target: '/furaffinity/scraps/:username',
|
||||
},
|
||||
{
|
||||
title: '用户的喜爱列表',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/favorites/:username/',
|
||||
target: '/furaffinity/favorites/:username',
|
||||
},
|
||||
{
|
||||
title: '作品评论区',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/view/:id/',
|
||||
target: '/furaffinity/submission_comments/:id',
|
||||
},
|
||||
{
|
||||
title: '日记评论区',
|
||||
docs: 'https://docs.rsshub.app/routes/social-media#fur-affinity',
|
||||
source: '/journal/:id/',
|
||||
target: '/furaffinity/journal_comments/:id',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user