rsshub
Version:
Make RSS Great Again!
55 lines (54 loc) • 1.73 kB
JavaScript
import { t as rofetch } from "./ofetch-C3ts-Hud.mjs";
import { t as logger } from "./logger-BKy98Y8B.mjs";
import { t as parseDate } from "./parse-date-Cr0wQjV_.mjs";
import { t as cache_default } from "./cache-BkqOokyU.mjs";
import { load } from "cheerio";
//#region lib/routes/zhihu/daily.ts
const route = {
path: "/daily",
categories: ["social-media"],
example: "/zhihu/daily",
parameters: {},
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: true,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{ source: ["daily.zhihu.com/*"] }],
name: "知乎日报",
maintainers: ["DHPO", "pseudoyu"],
handler,
url: "daily.zhihu.com/*"
};
async function handler() {
const $ = load(await rofetch("https://daily.zhihu.com/"));
return {
title: "知乎日报",
link: "https://daily.zhihu.com",
description: "每天3次,每次7分钟",
image: "http://static.daily.zhihu.com/img/new_home_v3/mobile_top_logo.png",
item: (await Promise.all($(".box").toArray().map(async (item) => {
const storyUrl = "https://daily.zhihu.com/api/4" + $(item).find(".link-button").attr("href");
try {
const storyJson = await cache_default.tryGet(storyUrl, async () => {
return await rofetch(storyUrl);
});
return {
title: storyJson.title,
description: storyJson.body,
link: storyJson.url,
image: storyJson.image,
pubDate: storyJson.publish_time ? parseDate(storyJson.publish_time, "X") : void 0
};
} catch (error) {
logger.debug(`Failed to fetch story detail: ${storyUrl} - ${error instanceof Error ? error.message : String(error)}`);
return null;
}
}))).filter(Boolean)
};
}
//#endregion
export { route };