UNPKG

rsshub

Version:
61 lines (59 loc) 2.25 kB
import "./esm-shims-CzJ_djXG.mjs"; import { t as config } from "./config-C37vj7VH.mjs"; import { t as ViewType } from "./types-D84BRIt4.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./parse-date-BrP7mxXf.mjs"; import "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as config_not_found_default } from "./config-not-found-Dyp3RlZZ.mjs"; import { t as utils_default } from "./utils-C0JQJOC9.mjs"; //#region lib/routes/mastodon/timeline-local.ts const route = { path: "/timeline/:site/:only_media?", categories: ["social-media"], view: ViewType.SocialMedia, example: "/mastodon/timeline/pawoo.net/true", parameters: { site: "instance address, only domain, no `http://` or `https://` protocol header", only_media: { description: "whether only display media content, default to false, any value to true", options: [{ value: "true", label: "true" }, { value: "false", label: "false" }], default: "false" } }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "Instance timeline (local)", maintainers: ["hoilc"], handler, description: `If the instance address is not \`mastodon.social\` or \`pawoo.net\`, then the route requires \`ALLOW_USER_SUPPLY_UNSAFE_DOMAIN\` to be \`true\`.` }; async function handler(ctx) { const site = ctx.req.param("site"); const only_media = ctx.req.param("only_media") === "true" ? "true" : "false"; if (!config.feature.allow_user_supply_unsafe_domain && !utils_default.allowSiteList.includes(site)) throw new config_not_found_default(`This RSS is disabled unless 'ALLOW_USER_SUPPLY_UNSAFE_DOMAIN' is set to 'true'.`); const url = `http://${site}/api/v1/timelines/public?local=true&only_media=${only_media}`; const list = (await got_default.get(url, { headers: utils_default.apiHeaders(site) })).data; return { title: `Local Public${ctx.req.param("only_media") === "true" ? " Media" : ""} Timeline on ${site}`, link: `https://${site}`, item: utils_default.parseStatuses(list) }; } //#endregion export { route };