rsshub
Version:
Make RSS Great Again!
66 lines (65 loc) • 2.35 kB
JavaScript
import { t as rofetch } from "./ofetch-C3ts-Hud.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/inceptionlabs/blog.ts
const ROOT_URL = "https://www.inceptionlabs.ai";
const route = {
path: "/blog",
categories: ["programming"],
example: "/inceptionlabs/blog",
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{ source: ["www.inceptionlabs.ai/blog"] }],
name: "Blog",
maintainers: ["zdenek-stursa"],
handler,
url: "inceptionlabs.ai/blog"
};
async function handler() {
const $ = load(await rofetch(`${ROOT_URL}/blog`));
const posts = $("a[href^=\"./blog/\"][data-framer-name=\"Desktop\"]").toArray().map((el) => {
const $el = $(el);
const href = $el.attr("href") ?? "";
if (href.includes("categories") || href.includes("#")) return null;
const title = $el.find("h6.framer-text").toArray().map((h6) => $(h6).text()).find((text) => text && text !== "Read story");
if (!title) return null;
const slug = href.replace("./blog/", "");
const link = `${ROOT_URL}/blog/${slug}`;
const dateBlocks = $el.find("[data-framer-name=\"Date\"] p.framer-text").toArray().map((p) => $(p).text());
const categoryEl = $el.find("[data-framer-name=\"Category\"]");
const category = categoryEl.length > 0 ? categoryEl.first().text() : dateBlocks[0] ?? "";
const pubDate = dateBlocks.length >= 2 ? dateBlocks[1] : dateBlocks[0] ?? "";
return {
title,
link,
category: category ? [category] : [],
pubDate
};
}).filter((post) => post !== null);
const items = await Promise.all(posts.map((post) => cache_default.tryGet(post.link, async () => {
const $post = load(await rofetch(post.link));
const contentHtml = $post("[data-framer-name=\"Content\"]").first().html();
const author = $post("[data-framer-name=\"Author\"] p.framer-text").first().text();
return {
...post,
description: contentHtml,
author,
pubDate: parseDate(post.pubDate)
};
})));
return {
title: "Inception Labs Blog",
link: `${ROOT_URL}/blog`,
description: "Latest posts from the Inception Labs blog about diffusion LLMs and AI research",
item: items
};
}
//#endregion
export { route };