rsshub
Version:
Make RSS Great Again!
63 lines (61 loc) • 2.21 kB
JavaScript
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 "./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/account-id.ts
const route = {
path: "/account_id/:site/:account_id/statuses/:only_media?",
categories: ["social-media"],
view: ViewType.SocialMedia,
example: "/mastodon/account_id/mas.to/109300507275095341/statuses/false",
parameters: {
site: "instance address, only domain, no `http://` or `https://` protocol header",
account_id: "account ID, you can get it from `https://INSTANCE/api/v1/accounts/lookup?acct=USERNAME` api",
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: "User timeline (by account ID)",
maintainers: ["notofoe", "pseudoyu"],
handler
};
async function handler(ctx) {
const site = ctx.req.param("site");
const account_id = ctx.req.param("account_id");
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 { account_data, data } = await utils_default.getAccountStatuses(site, account_id, only_media);
return {
title: `${account_data.display_name} (@${account_data.acct})`,
link: account_data.url,
description: account_data.note,
item: utils_default.parseStatuses(data),
allowEmpty: true
};
}
//#endregion
export { route };