UNPKG

rsshub

Version:
83 lines (78 loc) 3.07 kB
import { t as rofetch } from "./ofetch-C3ts-Hud.mjs"; import { Fragment, jsx, jsxs } from "hono/jsx/jsx-runtime"; import { renderToString } from "hono/jsx/dom/server"; //#region lib/routes/steam/appcommunityfeed.tsx const workshopFileTypes = { 0: "Community", 1: "Microtransaction", 2: "Collection", 3: "Art", 4: "Video", 5: "Screenshot", 6: "Game", 7: "Software", 8: "Concept", 9: "WebGuide", 10: "IntegratedGuide", 11: "Merch", 12: "ControllerBinding", 13: "SteamworksAccessInvite", 14: "SteamVideo", 15: "GameManagedItem" }; const route = { path: "/appcommunityfeed/:appid/:routeParams?", categories: ["game"], example: "/steam/appcommunityfeed/730", parameters: { appid: "Steam appid, can be found on the community hub page or store page URL.", routeParams: "Query parameters." }, radar: [{ title: "Community Hub", source: ["steamcommunity.com/app/:appid"], target: "/appcommunityfeed/:appid" }, { title: "Community Hub", source: ["store.steampowered.com/app/:appid/*/"], target: "/appcommunityfeed/:appid" }], description: `Query Parameters: | Name | Type | Description | | ---------------------- | ------ | ----------------------- | | p | string | p | | rgSections\\[] | string | rgSections | | filterLanguage | string | Filter Language | | languageTag | string | Language Tag | | nMaxInappropriateScore | string | Max Inappropriate Score | Example: - \`/appcommunityfeed/730/p=1&rgSections[]=2&rgSections[]=4&filterLanguage=english&languageTag=english&nMaxInappropriateScore=1\` for CS2 Screenshot and Artwork contents. - \`/appcommunityfeed/730/rgSections[]=6\` for CS2 Workshop contents only. - \`/appcommunityfeed/570/rgSections[]=3&rgSections[]=9\` for Dota2 Video and Guides contents. ::: tip It can also access community hub contents that require a logged-in account. :::`, name: "Steam Community Hub Feeds", maintainers: ["NyaaaDoge"], handler: async (ctx) => { const { appid = 730, routeParams } = ctx.req.param(); const response = await rofetch(`https://steamcommunity.com/library/appcommunityfeed/${appid}${routeParams ? `?${routeParams}` : ""}`); return { title: `${appid} Steam Community Hub`, link: `https://steamcommunity.com/app/${appid}`, item: response.hub.map((item) => ({ title: item.title === "" ? workshopFileTypes[item.type] : item.title, link: `https://steamcommunity.com/sharedfiles/filedetails/?id=${item.published_file_id}`, description: renderToString(/* @__PURE__ */ jsx(SteamAppCommunityDescription, { image: item.full_image_url, description: item.description })), author: item.creator.name, category: workshopFileTypes[item.type] })) }; } }; const SteamAppCommunityDescription = ({ image, description }) => /* @__PURE__ */ jsxs(Fragment, { children: [image ? /* @__PURE__ */ jsx("img", { src: image }) : null, /* @__PURE__ */ jsx("p", { children: description })] }); //#endregion export { route };