mirror of
https://github.com/DIYgod/RSSHub.git
synced 2026-09-01 14:57:14 +08:00
feat(route): add jlu ccst xwzx (#15758)
* feat: add jlujwc * feat: add jlujwc * feat: add jlujwc * add jlu ccst xwzx * feat: add jlu ccst xwzx * feat: add jlu ccst xwzx * feat: add jlu ccst xwzx * feat: add jlu ccst xwzx ---------
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
import { Route } from '@/types';
|
||||
import got from '@/utils/got'; // Custom got instance
|
||||
import { load } from 'cheerio'; // HTML parser with jQuery-like API
|
||||
|
||||
export const route: Route = {
|
||||
path: '/ccst/xwzx/:category',
|
||||
categories: ['university'],
|
||||
example: '/jlu/ccst/xwzx/gsl',
|
||||
radar: [
|
||||
{
|
||||
source: ['ccst.jlu.edu.cn/xwzx/gsl.htm', 'ccst.jlu.edu.cn/xwzx/xstd.htm', 'ccst.jlu.edu.cn/xwzx/xytz.htm', 'ccst.jlu.edu.cn/xwzx/xyxw.htm', 'ccst.jlu.edu.cn/xwzx/zsjy.htm'],
|
||||
},
|
||||
],
|
||||
name: '吉林大学计算机科学与技术学院 - 新闻中心',
|
||||
maintainers: ['mayouxi'],
|
||||
handler,
|
||||
url: 'ccst.jlu.edu.cn',
|
||||
};
|
||||
|
||||
async function handler(ctx: any) {
|
||||
const category = ctx.req.param('category');
|
||||
const baseUrl = 'https://ccst.jlu.edu.cn';
|
||||
const url = `${baseUrl}/xwzx/${category}.htm`;
|
||||
const response = await got(url);
|
||||
const $ = load(response.body);
|
||||
|
||||
const list = $('.section.container .main .list3 ul li');
|
||||
|
||||
const titles: { [key: string]: string } = {
|
||||
gsl: '公示栏',
|
||||
xstd: '学生天地',
|
||||
xytz: '学院通知',
|
||||
xyxw: '学院新闻',
|
||||
zsjy: '招生就业',
|
||||
};
|
||||
|
||||
const titleSuffix = titles[category] || '新闻中心'; // Fallback to '新闻中心' if category is not found
|
||||
|
||||
return {
|
||||
title: `吉林大学计算机科学与技术学院 - 新闻中心${titleSuffix}`,
|
||||
link: baseUrl,
|
||||
description: `吉林大学计算机科学与技术学院 - 新闻中心${titleSuffix}`,
|
||||
|
||||
item: list.toArray().map((item) => {
|
||||
const el = $(item);
|
||||
|
||||
const linkEl = el.find('a');
|
||||
const dateEl = el.find('.date');
|
||||
const dateStr = dateEl.text().trim();
|
||||
const title = linkEl.text().trim();
|
||||
const rawLink = linkEl.attr('href')!.replaceAll('..', ''); // Replace all occurrences of '..'
|
||||
const link = `${baseUrl}${encodeURI(rawLink)}`; // Encode the URL properly
|
||||
|
||||
const newsDate = new Date(dateStr);
|
||||
|
||||
return {
|
||||
title,
|
||||
link,
|
||||
pubDate: newsDate,
|
||||
};
|
||||
}),
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user