rsshub
Version:
Make RSS Great Again!
222 lines (215 loc) • 6.29 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: '/category/:id',
categories: ['finance'],
view: ViewType.Notifications,
example: '/jin10/category/36',
parameters: { id: '分类id,见下表' },
description: `
| Name | ID |
|----------------|------|
| 贵金属 | 1 |
| 黄金 | 2 |
| 白银 | 3 |
| 钯金 | 4 |
| 铂金 | 5 |
| 石油 | 6 |
| WTI原油 | 7 |
| 布伦特原油 | 8 |
| 欧佩克 | 9 |
| 页岩气 | 10 |
| 原油市场报告 | 11 |
| 外汇 | 12 |
| 欧元 | 13 |
| 英镑 | 14 |
| 日元 | 15 |
| 美元 | 16 |
| 瑞郎 | 17 |
| 人民币 | 18 |
| 期货 | 36 |
| 油脂油料 | 145 |
| 钢矿 | 146 |
| 煤炭 | 147 |
| 化工 | 148 |
| 有色 | 149 |
| 谷物 | 150 |
| 糖棉果蛋 | 151 |
| 生猪 | 152 |
| 碳排放 | 154 |
| 数字货币 | 19 |
| 数字人民币 | 107 |
| 科技 | 22 |
| 手机 | 23 |
| 电动汽车 | 39 |
| 芯片 | 40 |
| 中国突破 | 41 |
| 5G | 42 |
| 量子计算 | 43 |
| 航空航天 | 158 |
| 元宇宙 | 165 |
| 人工智能 | 168 |
| 地缘局势 | 24 |
| 缅甸局势 | 44 |
| 印巴纷争 | 45 |
| 中东风云 | 46 |
| 阿富汗局势 | 155 |
| 俄乌冲突 | 167 |
| 人物 | 25 |
| 鲍威尔 | 47 |
| 马斯克 | 48 |
| 拉加德 | 49 |
| 特朗普 | 50 |
| 拜登 | 51 |
| 巴菲特 | 157 |
| 央行 | 26 |
| 美联储 | 53 |
| 中国央行 | 54 |
| 欧洲央行 | 55 |
| 日本央行 | 56 |
| 货币政策调整 | 137 |
| 英国央行 | 141 |
| 澳洲联储 | 159 |
| 新西兰联储 | 160 |
| 加拿大央行 | 161 |
| 美股 | 27 |
| 财报 | 59 |
| Reddit散户动态 | 60 |
| 个股动态 | 108 |
| 港股 | 28 |
| 美股回港 | 61 |
| 交易所动态 | 62 |
| 指数动态 | 63 |
| 个股动态 | 109 |
| A股 | 29 |
| 美股回A | 64 |
| 券商分析 | 65 |
| 板块异动 | 66 |
| 大盘动态 | 67 |
| 南北资金 | 68 |
| 亚盘动态 | 69 |
| IPO信息 | 70 |
| 个股动态 | 110 |
| 北交所 | 166 |
| 基金 | 30 |
| 投行机构 | 31 |
| 标普、惠誉、穆迪 | 71 |
| 美银 | 72 |
| 高盛 | 112 |
| 疫情 | 32 |
| 疫苗动态 | 73 |
| 确诊数据 | 74 |
| 新冠药物 | 113 |
| 债券 | 33 |
| 政策 | 34 |
| 中国 | 75 |
| 美国 | 76 |
| 欧盟 | 77 |
| 日本 | 78 |
| 贸易、关税 | 79 |
| 碳中和 | 80 |
| 中国香港 | 81 |
| 英国 | 120 |
| 房地产动态 | 156 |
| 经济数据 | 35 |
| 中国 | 82 |
| 美国 | 83 |
| 欧盟 | 84 |
| 日本 | 85 |
| 公司 | 37 |
| 特斯拉 | 86 |
| 苹果 | 90 |
| 独角兽 | 91 |
| 谷歌 | 92 |
| 华为 | 93 |
| 阿里巴巴 | 94 |
| 小米 | 95 |
| 字节跳动 | 116 |
| 腾讯 | 117 |
| 微软 | 118 |
| 百度 | 119 |
| 美团 | 162 |
| 滴滴 | 163 |
| 中国恒大 | 164 |
| 灾害事故 | 38 |
| 地震 | 96 |
| 爆炸 | 97 |
| 海啸 | 98 |
| 寒潮 | 99 |
| 洪涝 | 100 |
| 火灾 | 101 |
| 矿难 | 102 |
| 枪击案 | 103 |
`,
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 id = ctx.req.param('id');
const data = await cache.tryGet(
'jin10:aa:${category}',
async () => {
const { data: response } = await got('https://4a735ea38f8146198dc205d2e2d1bd28.z3c.jin10.com/flash', {
headers: {
'x-app-id': 'bVBF4FyRTn5NJF5n',
'x-version': '1.0',
},
searchParams: {
channel: '-8200',
vip: '1',
classify: `[${id}]`,
},
});
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),
guid: `jin10:category:${item.id}`,
};
});
return {
title: '金十数据',
link: 'https://www.jin10.com/',
item,
};
}