UNPKG

rsshub

Version:
85 lines (83 loc) 2.77 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; //#region lib/routes/luma/index.ts const route = { path: "/:url", name: "Events", url: "lu.ma", maintainers: ["cxheng315"], example: "/luma/yieldnest", categories: ["other"], parameters: { url: "LuMa URL" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["lu.ma/:url"], target: "/:url" }], handler }; async function handler(ctx) { const response = await ofetch_default("https://api.lu.ma/url?url=" + ctx.req.param("url")); let items; switch (response.kind) { case "calendar": items = response.data.featured_items.map((item) => ({ title: item.event.name, link: "https://lu.ma/" + item.event.url, author: item.hosts ? item.hosts.map((host) => host.name).join(", ") : "", guid: item.event.api_id, pubDate: parseDate(item.event.start_at), itunes_item_image: item.event.cover_url, itunes_duration: (new Date(item.event.end_at).getTime() - new Date(item.event.start_at).getTime()) / 1e3 })); break; case "event": items = [{ title: response.data.event.name, link: "https://lu.ma/" + response.data.event.url, author: response.data.hosts ? response.data.hosts.map((host) => host.name).join(", ") : "", guid: response.data.event.api_id, pubDate: parseDate(response.data.event.start_at), itunes_item_image: response.data.event.cover_url, itunes_duration: (new Date(response.data.event.end_at).getTime() - new Date(response.data.event.start_at).getTime()) / 1e3 }]; break; case "discover-place": items = response.data.events.map((item) => ({ title: item.event.name, link: "https://lu.ma/" + item.event.url, author: item.hosts ? item.hosts.map((host) => host.name).join(", ") : "", guid: item.event.api_id, pubDate: parseDate(item.event.start_at), itunes_item_image: item.event.cover_url, itunes_duration: (new Date(item.event.end_at).getTime() - new Date(item.event.start_at).getTime()) / 1e3 })); break; default: items = [{ title: "Not Found", link: "Not Found" }]; break; } return { title: response.data.calendar ? response.data.calendar.name : response.data.place.name, description: response.data.place ? response.data.place.description : "", link: "https://lu.ma/" + ctx.req.param("url"), image: response.data.calendar ? response.data.calendar.cover_url : response.data.place.cover_url, item: items }; } //#endregion export { route };