rsshub
Version:
Make RSS Great Again!
62 lines (60 loc) • 2.34 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import "./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 "./config-not-found-Dyp3RlZZ.mjs";
import { a as postFilter, n as generatePostDataItem, r as getClient, t as CONFIG_OPTIONS } from "./utils-k6GIPexf.mjs";
//#region lib/routes/mixi2/community.ts
const handler = async (ctx) => {
const limit = Number.parseInt(ctx.req.query("limit") ?? "20", 10);
const communityId = ctx.req.param("id");
const mediaOnly = ctx.req.param("media") === "media";
const client = getClient();
const [communityInfo, postsData] = await Promise.all([client.getCommunity({ communityId }), client.getCommunityTimeline({
communityId,
limit,
mediaOnly
})]);
const personasData = await client.getPersonas({ personaIds: postsData?.posts.map((post) => post.personaId) });
return {
title: `${communityInfo.community.name} - ${mediaOnly ? "メディア" : "ポスト"}`,
description: communityInfo.community.purpose.replaceAll("\n", " "),
link: `https://mixi.social/communities/${communityId}/about`,
image: communityInfo.community.coverImage.postImage?.largeImageUrl,
item: postsData?.posts?.filter(postFilter).map((post) => ({
title: communityInfo.community.name,
...generatePostDataItem(post, personasData.personas)
})) ?? []
};
};
const route = {
path: "/community/:id/:media?",
name: "コミュニティ",
categories: ["social-media"],
example: "/mixi2/community/62e7e813-d242-4c54-a0ee-0aab5b2bbad2",
parameters: {
id: { description: "コミュニティID" },
media: { description: "`media`を入力するとメディアを含むポストのみを取得、デフォルトは空で全てのポストを取得" }
},
features: {
supportRadar: true,
requireConfig: CONFIG_OPTIONS
},
radar: [{
source: ["mixi.social/communities/:id", "mixi.social/communities/:id/about"],
target: "/community/:id",
title: "コミュニティ - ポスト"
}, {
source: ["mixi.social/communities/:id", "mixi.social/communities/:id/about"],
target: "/community/:id/media",
title: "コミュニティ - メディア"
}],
view: ViewType.SocialMedia,
handler,
maintainers: ["KarasuShin"]
};
//#endregion
export { route };