feat(route): add 环球法律评论 (#12780)

* feat(route): add 环球法律评论

* update lib/v2/globallawreview/radar.js

---------
This commit is contained in:
Ethan Shen
2023-07-12 15:52:15 +08:00
committed by GitHub
parent d513d6b9c3
commit 45f4155d4d
5 changed files with 80 additions and 0 deletions
+6
View File
@@ -505,6 +505,12 @@ You can get all short name of a journal from <https://www.nature.com/siteindex>
</Route>
## 环球法律评论
### 期刊
<Route author="nczitzk" example="/globallawreview" path="/globallawreview"/>
## 中国知网
### 期刊
+55
View File
@@ -0,0 +1,55 @@
const got = require('@/utils/got');
const cheerio = require('cheerio');
module.exports = async (ctx) => {
const limit = ctx.query.limit ? parseInt(ctx.query.limit, 10) : 30;
const rootUrl = 'http://www.globallawreview.org';
const { data: firstResponse } = await got(rootUrl);
let $ = cheerio.load(firstResponse);
const currentUrl = new URL($('p.tabBtn span a').prop('href'), rootUrl).href;
const { data: response } = await got(currentUrl);
$ = cheerio.load(response);
const items = $('ul.digest li')
.slice(0, limit)
.toArray()
.map((item) => {
item = $(item);
const a = item.find('p.p1 a');
const link = new URL(a.prop('href'), rootUrl).href;
return {
title: a.text(),
link,
description: item.find('p.p2').html(),
author: item.find('p.p3 span').text() || a.text().split('')[0],
category: [
item
.find('p.p4')
.text()
.match(/] (\d+\.\d+);/)[1],
],
enclosure_url: link,
enclosure_length:
item
.find('p.p4')
.text()
.match(/(\d+(\.\d+)?)\sKB/)[1] * 1000,
};
});
ctx.state.data = {
item: items,
title: $('title').text(),
link: currentUrl,
language: 'zh-cn',
author: '中国社会科学院法学研究所',
};
};
+3
View File
@@ -0,0 +1,3 @@
module.exports = {
'/': ['nczitzk'],
};
+13
View File
@@ -0,0 +1,13 @@
module.exports = {
'globallawreview.org': {
_name: '环球法律评论',
'.': [
{
title: '期刊',
docs: 'https://docs.rsshub.app/journal.html#huan-qiu-fa-lu-ping-lun',
source: ['/Magazine/GetIssueContentList', '/'],
target: '/globallawreview',
},
],
},
};
+3
View File
@@ -0,0 +1,3 @@
module.exports = function (router) {
router.get('/', require('./'));
};