rsshub
Version:
Make RSS Great Again!
88 lines (81 loc) • 2.52 kB
text/typescript
import { Route, ViewType } from '@/types';
import cache from '@/utils/cache';
import got from '@/utils/got';
import { parseDate } from '@/utils/parse-date';
import timezone from '@/utils/timezone';
import { art } from '@/utils/render';
import path from 'node:path';
import { config } from '@/config';
export const route: Route = {
path: '/:important?',
categories: ['finance'],
view: ViewType.Notifications,
example: '/jin10',
parameters: { important: '只看重要,任意值开启,留空关闭' },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false,
},
radar: [
{
source: ['jin10.com/'],
target: '',
},
],
name: '市场快讯',
maintainers: ['laampui'],
handler,
url: 'jin10.com/',
};
async function handler(ctx) {
const { important = false } = ctx.req.param();
const data = await cache.tryGet(
'jin10:index',
async () => {
const { data: response } = await got('https://flash-api.jin10.com/get_flash_list', {
headers: {
'x-app-id': 'bVBF4FyRTn5NJF5n',
'x-version': '1.0.0',
},
searchParams: {
channel: '-8200',
vip: '1',
},
});
return response.data.filter((item) => item.type !== 1);
},
config.cache.routeExpire,
false
);
const item = data.map((item) => {
const titleMatch = item.data.content.match(/^【(.*?)】/);
let title;
let content = item.data.content;
if (titleMatch) {
title = titleMatch[1];
content = content.replace(titleMatch[0], '');
} else {
title = item.data.vip_title || item.data.content;
}
return {
title,
description: art(path.join(__dirname, 'templates/description.art'), {
content,
pic: item.data.pic,
}),
pubDate: timezone(parseDate(item.time), 8),
link: item.data.link,
guid: `jin10:index:${item.id}`,
important: item.important,
};
});
return {
title: '金十数据',
link: 'https://www.jin10.com/',
item: important ? item.filter((item) => item.important) : item,
};
}