UNPKG

rsshub

Version:
75 lines (73 loc) 2.66 kB
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 };