rsshub
Version:
Make RSS Great Again!
73 lines (71 loc) • 1.85 kB
JavaScript
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";
//#region lib/routes/furaffinity/home.ts
const route = {
path: "/home/:category/:mode?",
name: "Home",
url: "furaffinity.net",
categories: ["social-media"],
example: "/furaffinity/home/nsfw",
maintainers: ["TigerCubDen", "SkyNetX007"],
parameters: {
category: "Category, default value is artwork, options are artwork, writing, music, crafts",
mode: "R18 content toggle, default value is sfw, options are sfw, nsfw"
},
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false,
nsfw: true
},
radar: [{
source: ["furaffinity.net"],
target: "/"
}],
handler
};
async function handler(ctx) {
const { category = "artwork", mode = "sfw" } = ctx.req.param();
let url = "https://faexport.spangle.org.uk/home.json?sfw=1";
if (mode === "nsfw") url = "https://faexport.spangle.org.uk/home.json";
const data = await ofetch_default(url, {
method: "GET",
headers: { Referer: "https://faexport.spangle.org.uk/" }
});
let dataSelect;
switch (category) {
case "artwork":
dataSelect = data.artwork;
break;
case "writing":
dataSelect = data.writing;
break;
case "music":
dataSelect = data.music;
break;
case "crafts":
dataSelect = data.crafts;
break;
default: dataSelect = data.artwork;
}
return {
title: "Fur Affinity | Home",
link: "https://www.furaffinity.net/",
description: `Fur Affinity Index`,
item: dataSelect.map((item) => ({
title: item.title,
link: item.link,
guid: item.id,
description: `<img src="${item.thumbnail}">`,
author: item.name
}))
};
}
//#endregion
export { route };