UNPKG

rsshub

Version:
71 lines (58 loc) 1.96 kB
import { Route } from '@/types'; import got from '@/utils/got'; import { load } from 'cheerio'; export const route: Route = { path: '/', radar: [ { source: ['globallawreview.org/Magazine/GetIssueContentList', 'globallawreview.org/'], target: '', }, ], name: 'Unknown', maintainers: ['nczitzk'], handler, url: 'globallawreview.org/Magazine/GetIssueContentList', }; async function handler(ctx) { const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 30; const rootUrl = 'http://www.globallawreview.org'; const { data: firstResponse } = await got(rootUrl); let $ = load(firstResponse); const currentUrl = new URL($('p.tabBtn span a').prop('href'), rootUrl).href; const { data: response } = await got(currentUrl); $ = 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, }; }); return { item: items, title: $('title').text(), link: currentUrl, language: 'zh-cn', author: '中国社会科学院法学研究所', }; }