rsshub
Version:
Make RSS Great Again!
46 lines (45 loc) • 1.67 kB
JavaScript
import { t as parseDate } from "./parse-date-CjhZE69i.mjs";
import { t as cache_default } from "./cache-CiDoUSLo.mjs";
import { t as got_default } from "./got-BDnf4rdT.mjs";
import { n as processFeedType2 } from "./utils-Bnjv1voT.mjs";
import { FetchError } from "ofetch";
//#region lib/routes/dongqiudi/special.ts
const route = {
path: "/special/:id",
categories: ["sport"],
example: "/dongqiudi/special/41",
parameters: { id: "专题 id, 可自行通过 https://www.dongqiudi.com/special/+数字匹配" },
radar: [{ source: ["www.dongqiudi.com/special/:id"] }],
name: "专题",
maintainers: ["dxmpalb"],
handler,
description: `| 新闻大爆炸 | 懂球帝十佳球 | 懂球帝本周 MVP |
| ---------- | ------------ | -------------- |
| 41 | 52 | 53 |`
};
async function handler(ctx) {
const id = ctx.req.param("id");
const { data: response } = await got_default(`https://www.dongqiudi.com/api/old/columns/${id}`);
const list = response.data.map((item) => ({
title: item.title,
link: `https://www.dongqiudi.com/articles/${item.aid}.html`,
pubDate: parseDate(item.show_time, "X")
}));
const out = await Promise.all(list.map((item) => cache_default.tryGet(item.link, async () => {
try {
const { data: response } = await got_default(item.link);
processFeedType2(item, response);
} catch (error) {
if (!(error instanceof FetchError) || error.statusCode !== 404) throw error;
}
return item;
})));
return {
title: `懂球帝专题-${response.title}`,
description: response.description,
link: `https://www.dongqiudi.com/special/${id}`,
item: out.filter(Boolean)
};
}
//#endregion
export { route };