diff --git a/lib/routes/jin10/category.ts b/lib/routes/jin10/category.ts new file mode 100644 index 0000000000..52ff3c4247 --- /dev/null +++ b/lib/routes/jin10/category.ts @@ -0,0 +1,223 @@ +import { Route, ViewType } from '@/types'; +import { getCurrentPath } from '@/utils/helpers'; +const __dirname = getCurrentPath(import.meta.url); + +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, + }; +}