UNPKG

rsshub

Version:
63 lines (61 loc) 2.4 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import { t as logger_default } from "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import { load } from "cheerio"; //#region lib/routes/openai/cookbook.ts const route = { path: "/cookbook", categories: ["programming"], description: "OpenAI Cookbook 提供了大量使用 OpenAI API 的实用指南和示例代码,涵盖了从基础到高级的各种主题,包括 GPT 模型、嵌入、函数调用、微调等。这里汇集了最新的 API 功能介绍和流行的应用案例,是开发者学习和应用 OpenAI 技术的宝贵资源。", maintainers: ["liyaozhong"], radar: [{ source: ["cookbook.openai.com/"] }], url: "cookbook.openai.com/", handler, example: "/openai/cookbook", name: "Cookbook" }; async function handler() { const rootUrl = "https://cookbook.openai.com"; const currentUrl = `${rootUrl}/`; try { const $ = load(await ofetch_default(currentUrl)); let items = $("[class=\"min-h-[90vh] mt-4\"] .grid a").toArray().map((element) => { const $element = $(element); const $title = $element.find("div.font-semibold.text-sm.text-primary.line-clamp-1.overflow-ellipsis"); const $date = $element.find(String.raw`span.text-xs.text-muted-foreground.md\:w-24.text-end`); const $author = $element.find("p:contains(\"OpenAI\")"); const $tags = $element.find("span[style^=\"color:\"]"); return { title: $title.text().trim(), link: `${rootUrl}/${$element.attr("href")}`, pubDate: $date.text().trim(), author: $author.text().replace("OpenAI", "").trim(), category: $tags.toArray().map((tag) => $(tag).text().trim()) }; }); items = (await Promise.all(items.map((item) => cache_default.tryGet(item.link, async () => { try { item.description = load(await ofetch_default(item.link))(String.raw`article.prose.prose-sm.sm\:prose-base.max-w-none.dark\:prose-invert`).html(); return item; } catch { return { ...item, description: "" }; } })))).filter((item) => item?.description); return { title: "OpenAI Cookbook", link: currentUrl, item: items }; } catch (error) { logger_default.error(`处理 OpenAI Cookbook 请求时发生错误: ${error}`); throw error; } } //#endregion export { route };