UNPKG

rsshub

Version:
88 lines (81 loc) 2.52 kB
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, }; }