From 2f33a3e81beaa39620b10c18da4086b3a609398b Mon Sep 17 00:00:00 2001 From: mayouxi <2785631446@qq.com> Date: Tue, 28 May 2024 23:01:21 +0800 Subject: [PATCH] feat(route): add jlujwc (#15747) * feat: add jlujwc * feat: add jlujwc * feat: add jlujwc --- lib/routes/jlu/jwc.ts | 55 +++++++++++++++++++++++++++++++++++++ lib/routes/jlu/namespace.ts | 6 ++++ 2 files changed, 61 insertions(+) create mode 100644 lib/routes/jlu/jwc.ts create mode 100644 lib/routes/jlu/namespace.ts diff --git a/lib/routes/jlu/jwc.ts b/lib/routes/jlu/jwc.ts new file mode 100644 index 000000000..b3056275e --- /dev/null +++ b/lib/routes/jlu/jwc.ts @@ -0,0 +1,55 @@ +import { Route } from '@/types'; +import got from '@/utils/got'; // 自订的 got +import { load } from 'cheerio'; // 可以使用类似 jQuery 的 API HTML 解析器 + +export const route: Route = { + path: '/jwc', + categories: ['university'], + example: '/jlu/jwc', + radar: [ + { + source: ['jwc.jlu.edu.cn', 'jwc.jlu.edu.cn/index.htm'], + }, + ], + name: '教务通知', + maintainers: ['mayouxi'], + handler, + url: 'jwc.jlu.edu.cn', +}; + +async function handler() { + const baseUrl = 'https://jwc.jlu.edu.cn'; + const response = await got(baseUrl); + const $ = load(response.body); + + const list = $('.section2 .s2-r .s3-list ul li'); + + return { + title: '吉林大学教务处', + link: baseUrl, + description: '吉林大学教务处通知公告', + + item: list?.toArray().map((item) => { + const el = $(item); + + const linkEl = el.find('a'); + const YMDiv = el.find('.tm p'); + const YMStr = YMDiv.text().trim(); + const DDiv = el.find('.tm span'); + const DStr = DDiv.text().trim(); + + const titleDiv = el.find('.s3-info p'); + const title = titleDiv.text().trim(); + + const link = `${baseUrl}/${linkEl.attr('href')}`; + + const newsDate = new Date(YMStr + '-' + DStr); + + return { + title, + link, + pubDate: newsDate, + }; + }), + }; +} diff --git a/lib/routes/jlu/namespace.ts b/lib/routes/jlu/namespace.ts new file mode 100644 index 000000000..3c8c00fa5 --- /dev/null +++ b/lib/routes/jlu/namespace.ts @@ -0,0 +1,6 @@ +import type { Namespace } from '@/types'; + +export const namespace: Namespace = { + name: '吉林大学', + url: 'jlu.edu.cn', +};