UNPKG

rsshub

Version:
69 lines (67 loc) 2.71 kB
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs"; import { t as config } from "./config-C37vj7VH.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as cache_default } from "./cache-Bo__VnGm.mjs"; import { t as art } from "./render-BQo6B4tL.mjs"; import path from "node:path"; //#region lib/routes/skeb/utils.ts init_esm_shims(); const baseUrl = "https://skeb.jp"; function processWork(work) { if (!work || typeof work !== "object" || work.private === true) return null; const imageUrl = work.thumbnail_image_urls?.srcset?.split(",").pop()?.trim().split(" ")[0] || ""; const body = work.body || ""; const audioUrl = work.genre === "music" || work.genre === "voice" ? work.preview_url : null; const renderedHtml = art(path.join(__dirname, "templates/work-99aa5c91.art"), { imageUrl, body, audioUrl }); return { title: work.path || "", link: `${baseUrl}${work.path || ""}`, description: renderedHtml }; } const skillMap = { art: "Illust", voice: "Voice", novel: "Novel", video: "Video", music: "Music", correction: "Advice", comic: "Comic" }; function processCreator(creator) { if (!creator || typeof creator !== "object") return null; const avatarUrl = creator.avatar_url || ""; let renderedHtml; if (creator.creator) { const acceptingCommissions = creator.acceptable ? "Yes" : "No"; const nsfwAcceptable = creator.nsfw_acceptable ? "Yes" : "No"; let skills = ""; if (Array.isArray(creator.skills) && creator.skills.length > 0) skills = creator.skills.map((skill) => skillMap[skill.genre] || skill.genre).filter(Boolean).join(", "); renderedHtml = art(path.join(__dirname, "templates/creator-f3fb4f56.art"), { avatarUrl, acceptingCommissions, nsfwAcceptable, skills }); } return { title: creator.name || "", link: `${baseUrl}/@${creator.screen_name || ""}`, description: renderedHtml }; } async function getFollowingsItems(username, path$1) { const url = `${baseUrl}/api/users/${username.replace("@", "")}/followings`; const followings_data = await cache_default.tryGet(`skeb:followings_data:${username}`, async () => { return await ofetch_default(url, { headers: { Authorization: `Bearer ${config.skeb.bearerToken}` } }); }, config.cache.routeExpire, false); if (!followings_data || typeof followings_data !== "object") throw new Error("Failed to fetch followings data"); if (path$1 === "following_creators") return followings_data[path$1].map((item) => processCreator(item)).filter(Boolean); return followings_data[path$1].map((item) => processWork(item)).filter(Boolean); } //#endregion export { processWork as i, getFollowingsItems as n, processCreator as r, baseUrl as t };