feat: remove notOperational routes - study
This commit is contained in:
parent
78001402b5
commit
053f0480e4
|
|
@ -676,10 +676,6 @@ router.get('/mit/csail/news', lazyloadRouteHandler('./routes/universities/mit/cs
|
|||
// 毕马威
|
||||
router.get('/kpmg/insights', lazyloadRouteHandler('./routes/kpmg/insights'));
|
||||
|
||||
// gradcafe
|
||||
router.get('/gradcafe/result/:type', lazyloadRouteHandler('./routes/gradcafe/result'));
|
||||
router.get('/gradcafe/result', lazyloadRouteHandler('./routes/gradcafe/result'));
|
||||
|
||||
// 朝日新闻
|
||||
router.get('/asahi/:genre?/:category?', lazyloadRouteHandler('./routes/asahi/index'));
|
||||
|
||||
|
|
@ -1084,9 +1080,6 @@ router.get('/nosec/:keykind?', lazyloadRouteHandler('./routes/nosec/index'));
|
|||
router.get('/xinquji/today', lazyloadRouteHandler('./routes/xinquji/today'));
|
||||
router.get('/xinquji/today/internal', lazyloadRouteHandler('./routes/xinquji/internal'));
|
||||
|
||||
// 英中协会
|
||||
router.get('/gbcc/trust', lazyloadRouteHandler('./routes/gbcc/trust'));
|
||||
|
||||
// discuz
|
||||
// router.get('/discuz/:ver([7|x])/:cid([0-9]{2})/:link(.*)', lazyloadRouteHandler('./routes/discuz/discuz'));
|
||||
// router.get('/discuz/:ver([7|x])/:link(.*)', lazyloadRouteHandler('./routes/discuz/discuz'));
|
||||
|
|
@ -1219,9 +1212,6 @@ router.get('/etoland/:bo_table', lazyloadRouteHandler('./routes/etoland/board'))
|
|||
// 辽宁工程技术大学教务在线公告
|
||||
router.get('/lntu/jwnews', lazyloadRouteHandler('./routes/universities/lntu/jwnews'));
|
||||
|
||||
// 51voa
|
||||
router.get('/51voa/:channel', lazyloadRouteHandler('./routes/51voa/channel'));
|
||||
|
||||
// 追新番
|
||||
router.get('/fanxinzhui', lazyloadRouteHandler('./routes/fanxinzhui/latest'));
|
||||
router.get('/zhuixinfan/list', lazyloadRouteHandler('./routes/fanxinzhui/latest'));
|
||||
|
|
@ -1262,9 +1252,6 @@ router.get('/slu/csggxy/:id', lazyloadRouteHandler('./routes/universities/slu/cs
|
|||
router.get('/ruby-china/topics/:type?', lazyloadRouteHandler('./routes/ruby-china/topics'));
|
||||
router.get('/ruby-china/jobs', lazyloadRouteHandler('./routes/ruby-china/jobs'));
|
||||
|
||||
// 中国人事考试网
|
||||
router.get('/cpta/notice', lazyloadRouteHandler('./routes/cpta/notice'));
|
||||
|
||||
// 广告网
|
||||
router.get('/adquan/:type?', lazyloadRouteHandler('./routes/adquan/index'));
|
||||
|
||||
|
|
@ -1298,10 +1285,6 @@ router.get('/199it', lazyloadRouteHandler('./routes/199it/index'));
|
|||
router.get('/199it/category/:caty', lazyloadRouteHandler('./routes/199it/category'));
|
||||
router.get('/199it/tag/:tag', lazyloadRouteHandler('./routes/199it/tag'));
|
||||
|
||||
// 唧唧堂
|
||||
router.get('/jijitang/article/:id', lazyloadRouteHandler('./routes/jijitang/article'));
|
||||
router.get('/jijitang/publication', lazyloadRouteHandler('./routes/jijitang/publication'));
|
||||
|
||||
// Grub Street
|
||||
// router.get('/grubstreet', lazyloadRouteHandler('./routes/grubstreet/index'));
|
||||
|
||||
|
|
@ -1642,26 +1625,15 @@ router.get('/lifetimes/:category?', lazyloadRouteHandler('./routes/lifetimes/ind
|
|||
// Zhimap 知识导图社区
|
||||
router.get('/zhimap/:categoryUuid?/:recommend?', lazyloadRouteHandler('./routes/zhimap/index'));
|
||||
|
||||
// ProcessOn
|
||||
router.get('/processon/popular/:cate?/:sort?', lazyloadRouteHandler('./routes/processon/popular'));
|
||||
|
||||
// Mathpix
|
||||
router.get('/mathpix/blog', lazyloadRouteHandler('./routes/mathpix/blog'));
|
||||
|
||||
// OneNote Gem Add-Ins
|
||||
router.get('/onenotegem/release', lazyloadRouteHandler('./routes/onenotegem/release'));
|
||||
|
||||
// Mind42
|
||||
router.get('/mind42/tag/:id', lazyloadRouteHandler('./routes/mind42/tag'));
|
||||
router.get('/mind42/search/:keyword', lazyloadRouteHandler('./routes/mind42/search'));
|
||||
router.get('/mind42/:caty?', lazyloadRouteHandler('./routes/mind42/index'));
|
||||
|
||||
// 幕布网
|
||||
router.get('/mubu/explore/:category?/:title?', lazyloadRouteHandler('./routes/mubu/explore'));
|
||||
|
||||
// 国家普通话测试 杭州市
|
||||
router.get('/putonghua', lazyloadRouteHandler('./routes/putonghua/hangzhou'));
|
||||
|
||||
// 有道云笔记
|
||||
router.get('/youdao/xueba', lazyloadRouteHandler('./routes/youdao/xueba'));
|
||||
router.get('/youdao/latest', lazyloadRouteHandler('./routes/youdao/latest'));
|
||||
|
|
|
|||
|
|
@ -1,158 +0,0 @@
|
|||
const got = require('@/utils/got');
|
||||
const date = require('@/utils/date');
|
||||
const cheerio = require('cheerio');
|
||||
|
||||
const HOST = 'https://www.51voa.com';
|
||||
const PAGE_ROUTER = {
|
||||
standard: {
|
||||
url: 'https://www.51voa.com/VOA_Standard_1.html',
|
||||
title: '常速英语',
|
||||
},
|
||||
archive: {
|
||||
url: 'https://www.51voa.com/VOA_Standard_1_archiver.html',
|
||||
title: '常速英语存档',
|
||||
},
|
||||
|
||||
technology: {
|
||||
url: 'https://www.51voa.com/Technology_Report_1.html',
|
||||
title: '科技报道',
|
||||
},
|
||||
daily: {
|
||||
url: 'https://www.51voa.com/This_is_America_1.html',
|
||||
title: '今日美国',
|
||||
},
|
||||
sciences: {
|
||||
url: 'https://www.51voa.com/Science_in_the_News_1.html',
|
||||
title: '科学报道',
|
||||
},
|
||||
health: {
|
||||
url: 'https://www.51voa.com/Health_Report_1.html',
|
||||
title: '健康报道',
|
||||
},
|
||||
education: {
|
||||
url: 'https://www.51voa.com/Education_Report_1.html',
|
||||
title: '教育报道',
|
||||
},
|
||||
economics: {
|
||||
url: 'https://www.51voa.com/Economics_Report_1.html',
|
||||
title: '经济报道',
|
||||
},
|
||||
culture: {
|
||||
url: 'https://www.51voa.com/American_Mosaic_1.html',
|
||||
title: '文化艺术',
|
||||
},
|
||||
events: {
|
||||
url: 'https://www.51voa.com/In_the_News_1.html',
|
||||
title: '时事新闻',
|
||||
},
|
||||
stories: {
|
||||
url: 'https://www.51voa.com/American_Stories_1.html',
|
||||
title: '美国故事',
|
||||
},
|
||||
words: {
|
||||
url: 'https://www.51voa.com/Words_And_Their_Stories_1.html',
|
||||
title: '词汇掌故',
|
||||
},
|
||||
trending: {
|
||||
url: 'https://www.51voa.com/Trending_Today_1.html',
|
||||
title: '今日热点',
|
||||
},
|
||||
magazine: {
|
||||
url: 'https://www.51voa.com/as_it_is_1.html',
|
||||
title: '新闻杂志',
|
||||
},
|
||||
grammar: {
|
||||
url: 'https://www.51voa.com/Everyday_Grammar_1.html',
|
||||
title: '日常语法',
|
||||
},
|
||||
queries: {
|
||||
url: 'https://www.51voa.com/ask_a_teacher_1.html',
|
||||
title: '名师答疑',
|
||||
},
|
||||
history: {
|
||||
url: 'https://www.51voa.com/The_Making_of_a_Nation_1.html',
|
||||
title: '美国历史',
|
||||
},
|
||||
park: {
|
||||
url: 'https://www.51voa.com/National_Parks_1.html',
|
||||
title: '国家公园',
|
||||
},
|
||||
president: {
|
||||
url: 'https://www.51voa.com/Americas_Presidents_1.html',
|
||||
title: '美国总统',
|
||||
},
|
||||
agriculture: {
|
||||
url: 'https://www.51voa.com/Agriculture_Report_1.html',
|
||||
title: '农业报道',
|
||||
},
|
||||
exploration: {
|
||||
url: 'https://www.51voa.com/Explorations_1.html',
|
||||
title: '自然探索',
|
||||
},
|
||||
people: {
|
||||
url: 'https://www.51voa.com/People_in_America_1.html',
|
||||
title: '美国人物',
|
||||
},
|
||||
bilingual: {
|
||||
url: 'https://www.51voa.com/Bilingual_News_1.html',
|
||||
title: '双语新闻',
|
||||
},
|
||||
address: {
|
||||
url: 'https://www.51voa.com/President_Address_1.html',
|
||||
title: '总统演讲',
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const { channel } = ctx.params;
|
||||
const { url, title } = PAGE_ROUTER[channel] || {};
|
||||
|
||||
const response = await got({
|
||||
method: 'get',
|
||||
url,
|
||||
});
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
const list = $('div.List ul li>a')
|
||||
.slice(0, 5)
|
||||
.map((i, e) => $(e).attr('href'))
|
||||
.get();
|
||||
|
||||
const out = await Promise.all(
|
||||
list.map(async (link) => {
|
||||
const pageUrl = HOST + link;
|
||||
const cache = await ctx.cache.get(link);
|
||||
if (cache) {
|
||||
return Promise.resolve(JSON.parse(cache));
|
||||
}
|
||||
|
||||
const response = await got({
|
||||
method: 'get',
|
||||
url: pageUrl,
|
||||
headers: {
|
||||
Referer: url,
|
||||
},
|
||||
});
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const single = {
|
||||
pubDate: date($('div.Content>span.datetime').text()),
|
||||
link: $('div.title h1').text(),
|
||||
title: $('div.title>h1').html(),
|
||||
description: $('div.Content').html(),
|
||||
category: ['study', 'English'],
|
||||
};
|
||||
|
||||
ctx.cache.set(link, JSON.stringify(single));
|
||||
return Promise.resolve(single);
|
||||
})
|
||||
);
|
||||
|
||||
ctx.state.data = {
|
||||
title,
|
||||
link: url,
|
||||
description: '51voa - ' + channel,
|
||||
item: out,
|
||||
};
|
||||
};
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
const url = require('url');
|
||||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
const iconv = require('iconv-lite');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const link = `http://www.cpta.com.cn/GB/360339/index.html`;
|
||||
const response = await got({ method: 'get', url: link, responseType: 'buffer' });
|
||||
|
||||
const $ = cheerio.load(iconv.decode(response.data, 'gbk'));
|
||||
const list = $('ul.list_14 li')
|
||||
.map((_, item) => {
|
||||
item = $(item).find('a');
|
||||
return {
|
||||
title: item.text(),
|
||||
link: url.resolve(`http://www.cpta.com.cn/`, item.attr('href')),
|
||||
};
|
||||
})
|
||||
.get();
|
||||
|
||||
ctx.state.data = {
|
||||
title: '中国人事考试网 - 通知公告',
|
||||
link,
|
||||
item: await Promise.all(
|
||||
list.map((item) =>
|
||||
ctx.cache.tryGet(item.link, async () => {
|
||||
const detailResponse = await got({ method: 'get', url: item.link, responseType: 'buffer' });
|
||||
const content = cheerio.load(iconv.decode(detailResponse.data, 'gbk'));
|
||||
item.description = content('div.text').html();
|
||||
item.pubDate = new Date(
|
||||
content('#p_publishtime')
|
||||
.text()
|
||||
.replace(/[年|月]/g, '-')
|
||||
.replace(/日/g, ' ') + ' GMT+8'
|
||||
).toUTCString();
|
||||
return item;
|
||||
})
|
||||
)
|
||||
),
|
||||
};
|
||||
};
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const link = 'http://www.gbcc.org.uk/educational-grants';
|
||||
const response = (await got.get(link)).data;
|
||||
|
||||
const $ = cheerio.load(response);
|
||||
|
||||
const items = $('.entry-anchorLinkId')
|
||||
.map((i, e) => {
|
||||
const text = $(e).next('.entry-text');
|
||||
return {
|
||||
title: $(text).find('h1').html(),
|
||||
link: `${link}#${$(e).children('div')[0].attribs.id}`,
|
||||
description: $(text).html(),
|
||||
pubDate: new Date().toUTCString(),
|
||||
};
|
||||
})
|
||||
.get();
|
||||
|
||||
ctx.state.data = {
|
||||
title: '英中协会 - 奖学金',
|
||||
description: '英中协会是由英国外交和联邦事务部于 1974 年创立的非政府部门公共机构。',
|
||||
link,
|
||||
item: items,
|
||||
};
|
||||
};
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
const cheerio = require('cheerio');
|
||||
const got = require('@/utils/got');
|
||||
const queryString = require('query-string');
|
||||
const url = 'https://www.thegradcafe.com/survey/';
|
||||
module.exports = async (ctx) => {
|
||||
const type = ctx.params.type;
|
||||
const res = await got.get(url, {
|
||||
searchParams: queryString.stringify({
|
||||
q: type,
|
||||
}),
|
||||
});
|
||||
const $ = cheerio.load(res.data);
|
||||
const list = $('table.submission-table tbody tr');
|
||||
const out = list
|
||||
.slice(0, 10)
|
||||
.map(function () {
|
||||
const title = $(this).find('.tcol1 ').text();
|
||||
const author = $(this).find('.tcol2').text();
|
||||
const description = $(this).find($('strong').parents('.tcol3')).text() + ' Note:' + $(this).find('.tcol6').text();
|
||||
const pubDate = $(this).find('.tcol5').text();
|
||||
const item = {
|
||||
title,
|
||||
author,
|
||||
description,
|
||||
pubDate,
|
||||
// note
|
||||
};
|
||||
return item;
|
||||
})
|
||||
.get();
|
||||
|
||||
ctx.state.data = {
|
||||
title: 'gradCafe',
|
||||
link: url,
|
||||
item: out,
|
||||
};
|
||||
};
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
const got = require('@/utils/got');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const id = ctx.params.id;
|
||||
const url = `http://www.jijitang.com/article/list?sort=${id}`;
|
||||
const res = await got.get(url);
|
||||
const data = res.data;
|
||||
|
||||
ctx.state.data = {
|
||||
title: `唧唧堂 ${id}`,
|
||||
link: url,
|
||||
item: data.map((item) => ({
|
||||
title: item.title,
|
||||
description: item.content,
|
||||
pubDate: item.createTime,
|
||||
link: `http://www.jijitang.com/article/${item._id}`,
|
||||
})),
|
||||
};
|
||||
};
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
const got = require('@/utils/got');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const url = `http://www.jijitang.com/api/publication/search?start=0&limit=40`;
|
||||
const res = await got.get(url);
|
||||
const data = res.data;
|
||||
|
||||
ctx.state.data = {
|
||||
title: `唧唧堂 publication`,
|
||||
link: url,
|
||||
item: data.result.map((item) => ({
|
||||
title: item.titleCn,
|
||||
description: `杂志名称:` + item.journalName + `<br/> 英文标题:` + item.title + `<br/> 摘要:` + item.summary,
|
||||
pubDate: item.created,
|
||||
link: item.fullArticleLink,
|
||||
})),
|
||||
};
|
||||
};
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
const utils = require('./utils');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const currentUrl = ctx.params.caty || 'mindmaps';
|
||||
|
||||
ctx.state.data = await utils(ctx, currentUrl);
|
||||
};
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
const utils = require('./utils');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
ctx.state.data = await utils(ctx, `search?q=${ctx.params.keyword}`);
|
||||
};
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
const utils = require('./utils');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
ctx.state.data = await utils(ctx, `tag/${ctx.params.id}`);
|
||||
};
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
|
||||
module.exports = async (ctx, currentUrl) => {
|
||||
const rootUrl = `https://mind42.com`;
|
||||
currentUrl = `${rootUrl}/${currentUrl}`;
|
||||
|
||||
const response = await got({
|
||||
method: 'get',
|
||||
url: currentUrl,
|
||||
});
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const list = $('.title a.title')
|
||||
.slice(0, 10)
|
||||
.map((_, item) => {
|
||||
item = $(item);
|
||||
return {
|
||||
link: `${rootUrl}${item.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 content = cheerio.load(detailResponse.data);
|
||||
|
||||
item.title = content('h1 a[name="info"]').text();
|
||||
item.author = content('.creator').text().trim().replace('by', '');
|
||||
item.description = `<img src="/api/ajax/mindmapThumbnail?mindmapId=${item.link.split('/public/')[1]}&size=gallery"><p>${content('.description').text()}</p>`;
|
||||
|
||||
return item;
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
return {
|
||||
title: $('title').text().split(' - ')[0],
|
||||
link: currentUrl,
|
||||
item: items,
|
||||
};
|
||||
};
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const cate = ctx.params.cate || '';
|
||||
const sort = ctx.params.sort || '';
|
||||
|
||||
const rootUrl = 'https://www.processon.com';
|
||||
const currentUrl = `${rootUrl}/popular/?cate=${cate}&sort=${sort}`;
|
||||
const response = await got({
|
||||
method: 'get',
|
||||
url: currentUrl,
|
||||
});
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const list = $('a.chart-title')
|
||||
.slice(0, 10)
|
||||
.map((_, item) => {
|
||||
item = $(item);
|
||||
return {
|
||||
title: item.text(),
|
||||
link: `${rootUrl}${item.attr('href')}`,
|
||||
description: `${item.parent().prev().html()}<p>${item.parent().find('p').text()}</p>`,
|
||||
};
|
||||
})
|
||||
.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 content = cheerio.load(detailResponse.data);
|
||||
|
||||
item.author = content('a.user_quickinfo').text();
|
||||
item.pubDate = content('.chart-pubtime').text().split('发布于 ')[1];
|
||||
|
||||
return item;
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
ctx.state.data = {
|
||||
title: $('title').text(),
|
||||
link: currentUrl,
|
||||
item: items,
|
||||
};
|
||||
};
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const rootUrl = 'http://cltt.51hzks.cn/queryExamInfo';
|
||||
const response = await got({
|
||||
method: 'get',
|
||||
url: rootUrl,
|
||||
});
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
const title = [];
|
||||
const items = [];
|
||||
$('.pth_smrtable')
|
||||
.find('th')
|
||||
.each((i, e) => {
|
||||
const titleStr = $(e).text().replace(/\n/g, '').replace(/\t/g, '');
|
||||
title.push(titleStr);
|
||||
});
|
||||
|
||||
$('.pth_smrtable')
|
||||
.find('tr')
|
||||
.slice(1)
|
||||
.each((i, e) => {
|
||||
let examInfo = '';
|
||||
$(e)
|
||||
.find('td')
|
||||
.each((i, e) => {
|
||||
const titleStr = $(e).text().trim().replace(/\n/g, '').replace(/\t/g, '');
|
||||
examInfo += `${title[i]}: ${titleStr} `;
|
||||
});
|
||||
items.push({ title: '近期杭州市普通话测试信息', description: examInfo });
|
||||
});
|
||||
|
||||
if (!(items.count > 0)) {
|
||||
items.push({ title: '近期杭州市普通话测试信息', description: '近期暂无考试' });
|
||||
}
|
||||
|
||||
ctx.state.data = {
|
||||
title: `近期杭州市普通话测试网报时间及考试地点公布`,
|
||||
link: rootUrl,
|
||||
item: items,
|
||||
};
|
||||
};
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
module.exports = {
|
||||
'/tzgg': ['nczitzk'],
|
||||
};
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
module.exports = {
|
||||
'cscse.edu.cn': {
|
||||
_name: '中国留学网',
|
||||
'.': [
|
||||
{
|
||||
title: '通知公告',
|
||||
docs: 'https://docs.rsshub.app/routes/study#zhong-guo-liu-xue-wang-tong-zhi-gong-gao',
|
||||
source: ['/cscse/index/tzgg', '/'],
|
||||
target: '/cscse/tzgg',
|
||||
},
|
||||
],
|
||||
},
|
||||
};
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
module.exports = function (router) {
|
||||
router.get('/tzgg', require('./tzgg'));
|
||||
};
|
||||
|
|
@ -1,54 +0,0 @@
|
|||
const got = require('@/utils/got');
|
||||
const cheerio = require('cheerio');
|
||||
const { parseDate } = require('@/utils/parse-date');
|
||||
|
||||
module.exports = async (ctx) => {
|
||||
const rootUrl = 'https://www.cscse.edu.cn';
|
||||
const currentUrl = `${rootUrl}/cscse/index/tzgg/index.html`;
|
||||
|
||||
const response = await got({
|
||||
method: 'get',
|
||||
url: currentUrl,
|
||||
});
|
||||
|
||||
const $ = cheerio.load(response.data);
|
||||
|
||||
let items = $('.news_list li a')
|
||||
.toArray()
|
||||
.map((item) => {
|
||||
item = $(item);
|
||||
|
||||
const link = item.attr('href');
|
||||
|
||||
return {
|
||||
title: item.text(),
|
||||
link: `${/^http/.test(link) ? '' : rootUrl}${item.attr('href')}`,
|
||||
pubDate: parseDate(item.next().text()),
|
||||
};
|
||||
});
|
||||
|
||||
items = await Promise.all(
|
||||
items.map((item) =>
|
||||
ctx.cache.tryGet(item.link, async () => {
|
||||
const detailResponse = await got({
|
||||
method: 'get',
|
||||
url: item.link,
|
||||
});
|
||||
|
||||
const content = cheerio.load(detailResponse.data);
|
||||
|
||||
item.description = content('.zoom').html();
|
||||
item.author = content('meta[name="Author"]').attr('content');
|
||||
item.category = content('meta[name="Keywords"]').attr('content')?.split(',');
|
||||
|
||||
return item;
|
||||
})
|
||||
)
|
||||
);
|
||||
|
||||
ctx.state.data = {
|
||||
title: '中国留学网 - 通知公告',
|
||||
link: currentUrl,
|
||||
item: items,
|
||||
};
|
||||
};
|
||||
|
|
@ -1,38 +1,5 @@
|
|||
# 📖 Study
|
||||
|
||||
## 51VOA 美国之音 {#51voa-mei-guo-zhi-yin}
|
||||
|
||||
### 频道 {#51voa-mei-guo-zhi-yin-pin-dao}
|
||||
|
||||
<Route author="guhuaijin" example="/51voa/address" path="/51voa/:channel" paramsDesc={['频道名称']} notOperational="1" />
|
||||
|
||||
| `:channel` | 对应网站栏目 |
|
||||
| ----------- | -------------------------------------------- |
|
||||
| standard | 常速英语 (VOA Standard English) |
|
||||
| archive | 常速英语存档 (VOA Standard English Archives) |
|
||||
| technology | 科技报道 (Technology Report) |
|
||||
| daily | 今日美国 (This is America) |
|
||||
| sciences | 科技报道 (Science in the News) |
|
||||
| health | 健康报道 (Health Report) |
|
||||
| education | 教育报道 (Education Report) |
|
||||
| economics | 经济报道 (Economics Report) |
|
||||
| culture | 文化艺术 (American Mosaic) |
|
||||
| events | 时事新闻 (In the News) |
|
||||
| stories | 美国故事 (American Stories) |
|
||||
| words | 词汇掌故 (Words And Their Stories) |
|
||||
| trending | 今日热点 (Trending Today) |
|
||||
| magazine | 新闻杂志 (AS IT IS) |
|
||||
| grammar | 日常语法 (Everyday Grammar) |
|
||||
| queries | 名师答疑 (Ask a Teacher) |
|
||||
| history | 美国历史 (U.S. History) |
|
||||
| park | 国家公园 (America's National Parks) |
|
||||
| president | 美国总统 (America's Presidents) |
|
||||
| agriculture | 农业报道 (Agriculture Report) |
|
||||
| exploration | 自然探索 (Explorations) |
|
||||
| people | 美国人物 (People in America) |
|
||||
| bilingual | 双语新闻 (Bilingual News) |
|
||||
| address | 总统演讲 (President Address) |
|
||||
|
||||
## Asian Innovation and Entrepreneurship Association {#asian-innovation-and-entrepreneurship-association}
|
||||
|
||||
### Seminar Series {#asian-innovation-and-entrepreneurship-association-seminar-series}
|
||||
|
|
@ -83,22 +50,6 @@
|
|||
|
||||
<Route author="ytno1" example="/dblp/knowledge%20tracing" path="/dblp/:field" paramsDesc={['Research field']} radar="1" />
|
||||
|
||||
## gradCafe {#gradcafe}
|
||||
|
||||
### gradCafe result {#gradcafe-gradcafe-result}
|
||||
|
||||
<Route author="liecn" example="/gradcafe/result" path="/gradcafe/result" notOperational="1" />
|
||||
|
||||
### gradCafe result by key words {#gradcafe-gradcafe-result-by-key-words}
|
||||
|
||||
<Route author="liecn" example="/gradcafe/result/computer" path="/gradcafe/result/:type" paramsDesc={['Keyword']} notOperational="1" />
|
||||
|
||||
## Great Britain China Centre {#great-britain-china-centre}
|
||||
|
||||
### Educational Trust {#great-britain-china-centre-educational-trust}
|
||||
|
||||
<Route author="HenryQW" example="/gbcc/trust" path="/gbcc/trust" notOperational="1" />
|
||||
|
||||
## iciba {#iciba}
|
||||
|
||||
### Daily English Sentence {#iciba-daily-english-sentence}
|
||||
|
|
@ -116,7 +67,7 @@
|
|||
|
||||
### 最新消息 {#ielts-ya-si-zui-xin-xiao-xi}
|
||||
|
||||
<Route author="zenxds" example="/ielts" path="/ielts" puppeteer="1" notOperational="1" />
|
||||
<Route author="zenxds" example="/ielts" path="/ielts" puppeteer="1" />
|
||||
|
||||
## Link Research {#link-research}
|
||||
|
||||
|
|
@ -140,27 +91,6 @@
|
|||
| -------- | -------- | ---------- | -------- | -------- | -------- | -------- | ----------------- | ---------------- | ------------------ | ---------- | -------- | ------------ | ------ | ---- |
|
||||
</Route>
|
||||
|
||||
## Mind42 {#mind42}
|
||||
|
||||
### 分类 {#mind42-fen-lei}
|
||||
|
||||
<Route author="nczitzk" example="/mind42" path="/mind42/:caty?" paramsDesc={['分类,见下表,默认为 Overview']} notOperational="1">
|
||||
| Overview | Popular | All |
|
||||
| -------- | ------- | ------ |
|
||||
| mindmaps | popular | public |
|
||||
</Route>
|
||||
|
||||
### 标签 {#mind42-biao-qian}
|
||||
|
||||
<Route author="nczitzk" example="/mind42/tag/online" path="/mind42/tag/:id" paramsDesc={['标签,见下表']} notOperational="1">
|
||||
| in | online | cleaning | buy | best | services | for | carpet | service | india | company | and | de | mapa | control | malware | online-dating-website-reviews | virus | international-online-dating-sites-review | repair |
|
||||
| -- | ------ | -------- | --- | ---- | -------- | --- | ------ | ------- | ----- | ------- | --- | -- | ---- | ------- | ------- | ----------------------------- | ----- | ---------------------------------------- | ------ |
|
||||
</Route>
|
||||
|
||||
### 搜索 {#mind42-sou-suo}
|
||||
|
||||
<Route author="nczitzk" example="/mind42/search/online" path="/mind42/search/:keyword" paramsDesc={['关键字']} notOperational="1" />
|
||||
|
||||
## MindMeister {#mindmeister}
|
||||
|
||||
### Public Maps {#mindmeister-public-maps}
|
||||
|
|
@ -236,24 +166,6 @@
|
|||
|
||||
<Route author="OrangeEd1t" example="/orcid/0000-0002-4731-9700" path="/orcid/:id" paramsDesc={['Open Researcher and Contributor ID']} />
|
||||
|
||||
## ProcessOn {#processon}
|
||||
|
||||
### 推荐 {#processon-tui-jian}
|
||||
|
||||
<Route author="nczitzk" example="/processon/popular" path="/processon/popular/:cate?/:sort?" paramsDesc={['分类,见下表,默认为所有类型', '排序,见下表,默认为人气']} notOperational="1">
|
||||
分类
|
||||
|
||||
| 所有类型 | 流程图 | BPMN | 思维导图 | UI 原型图 | UML | Org 组织结构图 | 网络拓扑图 | 韦恩图 | |
|
||||
| -------- | ------ | ---- | -------- | ---------- | --- | -------------- | ---------- | ------- | ---- |
|
||||
| | es | flow | bpmn | mind\_free | ui | uml | org | network | venn |
|
||||
|
||||
排序
|
||||
|
||||
| 人气 | 最多人赞 | 最多收藏 | 最多浏览 | 最新发布 |
|
||||
| ---- | --------- | -------------- | --------- | ----------- |
|
||||
| | likeCount | favouriteCount | viewCount | publishTime |
|
||||
</Route>
|
||||
|
||||
## ResearchGate {#researchgate}
|
||||
|
||||
### Publications {#researchgate-publications}
|
||||
|
|
@ -373,28 +285,12 @@
|
|||
| 0 | 1 | 2 | 3 | 4 | 5 | news | policy |
|
||||
</Route>
|
||||
|
||||
## 杭州市国家普通话测试网报信息 {#hang-zhou-shi-guo-jia-pu-tong-hua-ce-shi-wang-bao-xin-xi}
|
||||
|
||||
### 考试信息 {#hang-zhou-shi-guo-jia-pu-tong-hua-ce-shi-wang-bao-xin-xi-kao-shi-xin-xi}
|
||||
|
||||
<Route author="ChaosTong" example="/putonghua" path="/putonghua" notOperational="1" />
|
||||
|
||||
## 湖南人事考试网 {#hu-nan-ren-shi-kao-shi-wang}
|
||||
|
||||
### 公告 {#hu-nan-ren-shi-kao-shi-wang-gong-gao}
|
||||
|
||||
<Route author="TonyRL" example="/hunanpea/rsks/2f1a6239-b4dc-491b-92af-7d95e0f0543e" path="/hunanpea/rsks/:guid" paramsDesc={['分类 id,可在 URL 中找到']} radar="1" />
|
||||
|
||||
## 唧唧堂 {#ji-ji-tang}
|
||||
|
||||
### 论文 {#ji-ji-tang-lun-wen}
|
||||
|
||||
<Route author="xfangbao" example="/jijitang/publication" path="/jijitang/publication/" />
|
||||
|
||||
### 文档 {#ji-ji-tang-wen-dang}
|
||||
|
||||
<Route author="xfangbao" example="/jijitang/article/latest" path="/jijitang/article/:id" paramsDesc={['类别,latest 或者 recommand']} />
|
||||
|
||||
## 经济 50 人论坛 {#jing-ji-50-ren-lun-tan}
|
||||
|
||||
### 专家文章 {#jing-ji-50-ren-lun-tan-zhuan-jia-wen-zhang}
|
||||
|
|
@ -663,24 +559,12 @@
|
|||
| 16 | 18 | 19 | 20 | 21 |
|
||||
</Route>
|
||||
|
||||
## 中国留学网 {#zhong-guo-liu-xue-wang}
|
||||
|
||||
### 通知公告 {#zhong-guo-liu-xue-wang-tong-zhi-gong-gao}
|
||||
|
||||
<Route author="nczitzk" example="/cscse/tzgg" path="/cscse/tzgg" notOperational="1" />
|
||||
|
||||
## 中国人工智能学会 {#zhong-guo-ren-gong-zhi-neng-xue-hui}
|
||||
|
||||
### 学会动态 {#zhong-guo-ren-gong-zhi-neng-xue-hui-xue-hui-dong-tai}
|
||||
|
||||
<Route author="tudou027" example="/caai/45" path="/caai/:caty" paramsDesc={['分类 ID,可在 URL 找到']} radar="1" />
|
||||
|
||||
## 中国人事考试网 {#zhong-guo-ren-shi-kao-shi-wang}
|
||||
|
||||
### 通知公告 {#zhong-guo-ren-shi-kao-shi-wang-tong-zhi-gong-gao}
|
||||
|
||||
<Route author="nczitzk" example="/cpta/notice" path="/cpta/notice" notOperational="1" />
|
||||
|
||||
## 中国研究生招生信息网 {#zhong-guo-yan-jiu-sheng-zhao-sheng-xin-xi-wang}
|
||||
|
||||
### 考研热点新闻 {#zhong-guo-yan-jiu-sheng-zhao-sheng-xin-xi-wang-kao-yan-re-dian-xin-wen}
|
||||
|
|
|
|||
Loading…
Reference in New Issue