rsshub
Version:
Make RSS Great Again!
88 lines (83 loc) • 3.03 kB
JavaScript
import { n as init_esm_shims, t as __dirname } from "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs";
import { t as art } from "./render-BQo6B4tL.mjs";
import path from "node:path";
//#region lib/routes/steam/appcommunityfeed.ts
init_esm_shims();
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 ofetch_default(`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: art(path.join(__dirname, "templates/appcommunityfeed-description-b79402f1.art"), {
image: item.full_image_url,
description: item.description
}),
author: item.creator.name,
category: workshopFileTypes[item.type]
}))
};
}
};
//#endregion
export { route };