rsshub
Version:
Make RSS Great Again!
128 lines (126 loc) • 3.82 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import "./ofetch-BIyrKU3Y.mjs";
import { t as parseDate } from "./parse-date-BrP7mxXf.mjs";
import { t as cache_default } from "./cache-Bo__VnGm.mjs";
import "./helpers-DxBp0Pty.mjs";
import { t as got_default } from "./got-KxxWdaxq.mjs";
import { t as invalid_parameter_default } from "./invalid-parameter-rr4AgGpp.mjs";
import { load } from "cheerio";
//#region lib/routes/163/news/special.ts
const typeMap = {
1: "轻松一刻",
2: "槽值",
3: "人间",
4: "大国小民",
5: "三三有梗",
6: "数读",
7: "看客",
8: "下划线",
9: "谈心社",
10: "哒哒",
11: "胖编怪聊",
12: "曲一刀",
13: "今日之声",
14: "浪潮",
15: "沸点"
};
const route = {
path: "/news/special/:type?",
categories: ["new-media"],
example: "/163/news/special/1",
parameters: { type: "栏目" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
name: "专栏",
maintainers: ["nczitzk"],
handler,
description: `| 轻松一刻 | 槽值 | 人间 | 大国小民 | 三三有梗 | 数读 | 看客 | 下划线 | 谈心社 | 哒哒 | 胖编怪聊 | 曲一刀 | 今日之声 | 浪潮 | 沸点 |
| -------- | ---- | ---- | -------- | -------- | ---- | ---- | ------ | ------ | ---- | -------- | ------ | -------- | ---- | ---- |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |`
};
async function handler(ctx) {
if (!ctx.req.param("type")) throw new invalid_parameter_default("Bad parameter. See <a href=\"https://docs.rsshub.app/routes/game#wang-yi-da-shen\">https://docs.rsshub.app/routes/game#wang-yi-da-shen</a>");
const selectedType = Number.parseInt(ctx.req.param("type"));
let type;
switch (selectedType) {
case 1:
type = `BD21K0DLwangning`;
break;
case 2:
type = `CICMICLUwangning`;
break;
case 3:
type = `CICMOMBLwangning`;
break;
case 4:
type = `CICMPVC5wangning`;
break;
case 5:
type = `CICMLCOUwangning`;
break;
case 6:
type = `D551V75Cwangning`;
break;
case 7:
type = `D55253RHwangning`;
break;
case 8:
type = `D553A53Lwangning`;
break;
case 9:
type = `D553PGHQwangning`;
break;
case 10:
type = `CICMS5BIwangning`;
break;
case 11:
type = `CQ9UDVKOwangning`;
break;
case 12:
type = `CQ9UJIJNwangning`;
break;
case 13:
type = `BD284UM8wangning`;
break;
case 14:
type = `CICMMGBHwangning`;
break;
case 15:
type = `D5543R68wangning`;
break;
default: break;
}
const articlelist0 = (await got_default(`https://3g.163.com/touch/reconstruct/article/list/${type}/0-20.html`)).data.replaceAll(/\s/g, "").match(/artiList\((.*?)]}\)/)[1].replace(/".*?wangning/, "\"articles") + "]}";
const articles = JSON.parse(articlelist0).articles;
const items = await Promise.all(articles.map((article) => {
let url = article.url;
if (url === null || article.skipType === "video") {
const vid = article.skipURL.match(/vid=(.*?)$/);
if (vid !== null) url = `https://3g.163.com/exclusive/video/${vid[1]}.html`;
}
return cache_default.tryGet(url, async () => {
const $ = load((await got_default(url)).data);
article.link = url;
article.description = $(".article-body").html() || $("div[class=\"video\"]").html();
article.pubDate = parseDate(article.ptime);
return article;
});
}));
const selectedTypeName = typeMap[selectedType];
return {
title: selectedTypeName ? `${selectedTypeName} - 网易专栏` : "网易专栏",
link: "https://3g.163.com/touch/exclusive/?referFrom=163",
item: items
};
}
//#endregion
export { route };