UNPKG

rsshub

Version:
234 lines (178 loc) 11.2 kB
import { Route } from '@/types'; import { parseDate } from '@/utils/parse-date'; import parser from '@/utils/rss-parser'; import { rootUrl, rootRSSUrl, title, categories, getInfo, processItems } from './util'; export const route: Route = { path: '/cid/:id?', name: '更多分类', parameters: { id: '分类,见下表,留空为直播' }, example: '/mydrivers/cid/2', maintainers: ['nczitzk'], handler, url: 'm.mydrivers.com/', radar: [ { source: ['m.mydrivers.com/'], target: '/zhibo', }, ], description: `::: details 更多分类 | 电脑配件 | 手机之家 | 家用电器 | 网络设备 | 办公外设 | 游戏之家 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/2 | cid/3 | cid/4 | cid/5 | cid/6 | cid/7 | | 电脑软件 | 业内动向 | 品牌整机 | 其它资讯 | 显卡 | CPU | | -------- | -------- | -------- | -------- | ------ | ------ | | cid/8 | cid/9 | cid/10 | cid/11 | cid/12 | cid/13 | | 主板 | 内存 | 硬盘 | 机箱 | 电源 | 散热器 | | ------ | ------ | ------ | ------ | ------ | ------ | | cid/14 | cid/15 | cid/16 | cid/17 | cid/18 | cid/19 | | 光驱 | 声卡 | 键鼠 | 音箱 | 手机厂商 | 手机配件 | | ------ | ------ | ------ | ------ | -------- | -------- | | cid/20 | cid/21 | cid/22 | cid/23 | cid/24 | cid/25 | | PDA | MP3/MP4 | 摄像机 | 数码相机 | 摄像头 | 数码配件 | | ------ | ------- | ------ | -------- | ------ | -------- | | cid/26 | cid/27 | cid/29 | cid/30 | cid/31 | cid/32 | | 电子书 | 导航产品 | 录音笔 | 交换机 | 路由器 | 防火墙 | | ------ | -------- | ------ | ------ | ------ | ------ | | cid/33 | cid/34 | cid/35 | cid/37 | cid/38 | cid/40 | | 网卡 | 网络存储 | UPS | 打印机 | 复印机 | 复合机 | | ------ | -------- | ------ | ------ | ------ | ------ | | cid/41 | cid/43 | cid/44 | cid/45 | cid/46 | cid/47 | | 投影仪 | 扫描仪 | 传真机 | 电脑游戏 | 主机游戏 | 游戏主机 | | ------ | ------ | ------ | -------- | -------- | -------- | | cid/48 | cid/49 | cid/51 | cid/52 | cid/53 | cid/54 | | 掌机游戏 | 电脑驱动 | 桌面系统 | 视点人物 | 数据报告 | 科技前沿 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/55 | cid/57 | cid/58 | cid/62 | cid/63 | cid/65 | | 笔记本 | 台式机 | 服务器 | 一体机 | 其他 | PC硬件 | | ------ | ------ | ------ | ------ | ------ | ------ | | cid/66 | cid/67 | cid/68 | cid/69 | cid/73 | cid/74 | | 时尚数码 | 软件驱动 | 显示器 | 音箱耳机 | 投影机 | 便携机 | | -------- | -------- | ------ | -------- | ------- | ------- | | cid/78 | cid/79 | cid/80 | cid/92 | cid/100 | cid/108 | | 手机 | MP3 | MP4 | 闪存盘 | DV摄像机 | U盘 | | ------- | ------- | ------- | ------- | -------- | ------- | | cid/109 | cid/112 | cid/113 | cid/114 | cid/115 | cid/116 | | GPS | 移动硬盘 | 操作系统 | 驱动 | 软件 | 软件更新 | | ------- | -------- | -------- | ------- | ------- | -------- | | cid/117 | cid/119 | cid/120 | cid/121 | cid/122 | cid/123 | | 新软推荐 | 业界动态 | 软件评测 | 软件技巧 | 游戏相关 | 驱动研究 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/124 | cid/125 | cid/126 | cid/127 | cid/128 | cid/130 | | 游戏试玩 | 硬件学堂 | 实用技巧 | 新软体验 | 资讯教程 | 软件横评 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/131 | cid/132 | cid/133 | cid/134 | cid/135 | cid/136 | | Windows | Mac | Linux | 其它 | 使用技巧 | 深入研究 | | ------- | ------- | ------- | ------- | -------- | -------- | | cid/137 | cid/138 | cid/139 | cid/140 | cid/141 | cid/142 | | 游戏机 | 显示 | 存储 | 音频 | 外设 | 数码 | | ------- | ------- | ------- | ------- | ------- | ------- | | cid/144 | cid/145 | cid/146 | cid/147 | cid/148 | cid/151 | | 网络 | 办公 | 维修 | 安全 | 聊天 | 影音 | | ------- | ------- | ------- | ------- | ------- | ------- | | cid/152 | cid/154 | cid/155 | cid/156 | cid/157 | cid/158 | | 国内 | 国外 | 办公应用 | 设计创意 | 基础知识 | 程序 | | ------- | ------- | -------- | -------- | -------- | ------- | | cid/159 | cid/160 | cid/161 | cid/162 | cid/163 | cid/164 | | 其他硬件 | 电视卡/| 游戏体验 | 平板电视 | 企业动态 | 天文航天 | | -------- | --------- | -------- | -------- | -------- | -------- | | cid/166 | cid/170 | cid/172 | cid/173 | cid/174 | cid/175 | | MID设备 | 数码相框 | 耳机 | 通讯运营商 | 电视盒 | 线材线缆 | | ------- | -------- | ------- | ---------- | ------- | -------- | | cid/176 | cid/177 | cid/179 | cid/180 | cid/182 | cid/183 | | 小家电 | 网络游戏 | 行情信息 | 科学动态 | 生物世界 | 历史考古 | | ------- | -------- | -------- | -------- | -------- | -------- | | cid/184 | cid/186 | cid/188 | cid/192 | cid/193 | cid/194 | | 生科医学 | 地理自然 | 工程建筑 | 苹果手机 | 谷歌Android | 塞班手机 | | -------- | -------- | -------- | -------- | ----------- | -------- | | cid/195 | cid/196 | cid/197 | cid/201 | cid/202 | cid/203 | | 黑莓手机 | 微软手机 | 移动处理器 | 山寨机 | 手机游戏 | 安卓应用 | | -------- | -------- | ---------- | ------- | -------- | -------- | | cid/204 | cid/205 | cid/206 | cid/208 | cid/209 | cid/210 | | 娱乐生活 | 明星全接触 | 电影影讯 | 电视节目 | 音乐戏曲 | 国际风云 | | -------- | ---------- | -------- | -------- | -------- | -------- | | cid/212 | cid/213 | cid/214 | cid/215 | cid/216 | cid/217 | | 国内传真 | 社会民生 | 生活百态 | 医药健康 | 家居尚品 | 星座旅游 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/218 | cid/219 | cid/220 | cid/221 | cid/222 | cid/223 | | 评论分析 | 体育竞技 | IT八卦 | 科技动态 | 游戏动态 | 手机系统 | | -------- | -------- | ------- | -------- | -------- | -------- | | cid/224 | cid/225 | cid/226 | cid/227 | cid/228 | cid/232 | | 智能设备 | 生活电器 | 汽车相关 | 飞机航空 | 手机周边 | 网络运营商 | | -------- | -------- | -------- | -------- | -------- | ---------- | | cid/233 | cid/234 | cid/235 | cid/236 | cid/237 | cid/238 | | 平板电脑 | 苹果iPad | 安卓平板 | Windows平板 | 创业路上 | 网友热议 | | -------- | -------- | -------- | ----------- | -------- | -------- | | cid/239 | cid/240 | cid/241 | cid/242 | cid/243 | cid/244 | | IT圈 | 数码周边 | 智能手环 | 智能眼镜 | 智能手表 | iOS应用 | | ------- | -------- | -------- | -------- | -------- | ------- | | cid/246 | cid/247 | cid/248 | cid/249 | cid/250 | cid/251 | | 壁纸主题 | 游戏厂商 | 数理化学 | 科普知识 | 奇趣探险 | 汽车世界 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/252 | cid/253 | cid/254 | cid/255 | cid/256 | cid/257 | | 传统汽车 | 电动汽车 | 新能源汽车 | 无人驾驶汽车 | 车载系统 | 车载配件 | | -------- | -------- | ---------- | ------------ | -------- | -------- | | cid/258 | cid/259 | cid/260 | cid/261 | cid/262 | cid/263 | | 汽车厂商 | 影音动漫 | 精彩影视 | 电影动画 | 艺术设计 | 摄影达人 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/264 | cid/265 | cid/266 | cid/267 | cid/269 | cid/270 | | 固件 | 样张赏析 | 创意摄影 | WP应用 | 教育未来 | 安卓手机 | | ------- | -------- | -------- | ------- | -------- | -------- | | cid/272 | cid/273 | cid/274 | cid/284 | cid/285 | cid/288 | | 智能穿戴 | 移动应用 | 电子竞技 | 游戏八卦 | 游戏评测 | 生活百科 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/290 | cid/292 | cid/297 | cid/298 | cid/299 | cid/301 | | 智能家居 | 智能插座 | 智能摄像头 | 智能路由器 | 智能体重秤 | 智能血压计 | | -------- | -------- | ---------- | ---------- | ---------- | ---------- | | cid/302 | cid/303 | cid/304 | cid/305 | cid/306 | cid/307 | | 空气净化器 | 智能净水器 | 电动两轮车 | 公司财报 | 智能行车记录仪 | 网络影视 | | ---------- | ---------- | ---------- | -------- | -------------- | -------- | | cid/308 | cid/309 | cid/310 | cid/311 | cid/312 | cid/313 | | 多轴无人机 | 摩托车 | 自行车 | 共享经济 | 生活周边 | 网络安全 | | ---------- | ------- | ------- | -------- | -------- | -------- | | cid/314 | cid/316 | cid/317 | cid/320 | cid/321 | cid/322 | | 考勤机 | 网络红人 | 火车高铁 | 机器人 | 其他网络 | 快递物流 | | ------- | -------- | -------- | ------- | -------- | -------- | | cid/323 | cid/324 | cid/325 | cid/326 | cid/327 | cid/328 | | 科技资讯 | 好货推荐 | 日常用品 | 餐饮零食 | 化妆品 | 运动健康 | | -------- | -------- | -------- | -------- | ------- | -------- | | cid/329 | cid/334 | cid/335 | cid/336 | cid/339 | cid/340 | | 酒水饮料 | 个人洗护 | 电子产品 | 服装鞋帽 | 会员卡 | 用户投稿 | | -------- | -------- | -------- | -------- | ------- | -------- | | cid/341 | cid/342 | cid/343 | cid/345 | cid/346 | cid/351 | | APP投稿 | PC投稿 | 视频快讯 | 新品开箱 | 技巧教程 | 科技快讯 | | ------- | ------- | -------- | -------- | -------- | -------- | | cid/352 | cid/353 | cid/354 | cid/355 | cid/356 | cid/357 | | 产品评测 | 人物专访 | 会议活动 | 数码影音 | 数码影像 | 游戏周边 | | -------- | -------- | -------- | -------- | -------- | -------- | | cid/358 | cid/359 | cid/360 | cid/361 | cid/362 | cid/368 | | 汽车周边 | 个人交通 | 其他交通 | | -------- | -------- | -------- | | cid/369 | cid/370 | cid/371 | :::`, }; async function handler(ctx) { const id = ctx.req.param('id'); const limit = ctx.req.query('limit') ? Number.parseInt(ctx.req.query('limit'), 10) : 100; const queryString = id ? `?cid=${id}` : ''; const currentUrl = new URL(id ? `newsclass.aspx${queryString}` : '', rootUrl).href; const rssUrl = new URL(`rss.aspx${queryString}`, rootRSSUrl).href; const feed = await parser.parseURL(rssUrl); let items = feed.items.slice(0, limit).map((item) => ({ title: item.title, link: item.link, description: item.content, author: item.creator, category: item.categories, guid: item.guid.match(/\/(\d+)\.htm/)[1], pubDate: parseDate(item.isoDate), })); if (id) { items = await processItems(items); } return { ...(await getInfo(currentUrl)), item: items, title: `${title} - ${feed.title.split(/_/).pop() || categories.zhibo}`, }; }