rsshub
Version:
Make RSS Great Again!
75 lines (73 loc) • 2.66 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import { t as config } from "./config-C37vj7VH.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 "./proxy-Db7uGcYb.mjs";
import "./got-KxxWdaxq.mjs";
import "./invalid-parameter-rr4AgGpp.mjs";
import "./config-not-found-Dyp3RlZZ.mjs";
import "./puppeteer-DGmvuGvT.mjs";
import { n as queryToBoolean, t as fallback } from "./readable-social-DoIL4WB3.mjs";
import { t as api_default } from "./api-DtVrjNN4.mjs";
import { t as utils_default } from "./utils-BmkxbUEd.mjs";
//#region lib/routes/twitter/tweet.ts
const route = {
path: "/tweet/:id/status/:status/:original?",
categories: ["social-media"],
example: "/twitter/tweet/DIYgod/status/1650844643997646852",
parameters: {
id: "username; in particular, if starts with `+`, it will be recognized as a [unique ID](https://github.com/DIYgod/RSSHub/issues/12221), e.g. `+44196397`",
status: "tweet ID",
original: "extra parameters, data type of return, if the value is not `0`/`false` and `config.isPackage` is `true`, return the original data of twitter"
},
features: {
requireConfig: [{
name: "TWITTER_USERNAME",
description: "Please see above for details."
}, {
name: "TWITTER_PASSWORD",
description: "Please see above for details."
}],
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
name: "Tweet Details",
maintainers: ["LarchLiu", "Rongronggg9"],
handler
};
async function handler(ctx) {
const id = ctx.req.param("id");
const status = ctx.req.param("status");
const original = fallback(void 0, queryToBoolean(new URLSearchParams(ctx.req.param("original")).get("original")), false);
const params = {
focalTweetId: status,
with_rux_injections: false,
includePromotedContent: true,
withCommunity: true,
withQuickPromoteEligibilityTweetFields: true,
withBirdwatchNotes: true,
withVoice: true,
withV2Timeline: true
};
await api_default.init();
const userInfo = await api_default.getUser(id);
const data = await api_default.getUserTweet(id, params);
const profileImageUrl = userInfo.profile_image_url || userInfo.profile_image_url_https;
const item = original && config.isPackage ? data : utils_default.ProcessFeed(ctx, { data });
return {
title: `Twitter @${userInfo.name}`,
link: `https://x.com/${userInfo.screen_name}/status/${status}`,
image: profileImageUrl.replace(/_normal.jpg$/, ".jpg"),
description: userInfo.description,
item
};
}
//#endregion
export { route };