rsshub
Version:
Make RSS Great Again!
56 lines (54 loc) • 1.56 kB
JavaScript
import "./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 "./parse-date-BrP7mxXf.mjs";
import "./cache-Bo__VnGm.mjs";
import { o as parseList, t as ProcessFeed } from "./utils-Do7XKeOT.mjs";
//#region lib/routes/juejin/posts.ts
const route = {
path: "/posts/:id",
categories: ["programming"],
example: "/juejin/posts/3051900006845944",
parameters: { id: "用户 id, 可在用户页 URL 中找到" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{ source: ["juejin.cn/user/:id", "juejin.cn/user/:id/posts"] }],
name: "用户文章",
maintainers: ["Maecenas"],
handler
};
const getUserInfo = (data) => ({
username: data.user_name,
description: data.description,
avatar: data.avatar_large
});
async function handler(ctx) {
const id = ctx.req.param("id");
const data = (await ofetch_default("https://api.juejin.cn/content_api/v1/article/query_list", {
method: "POST",
body: {
user_id: id,
sort_type: 2
}
})).data;
const list = parseList(data);
const authorInfo = getUserInfo(data[0].author_user_info);
const resultItems = await ProcessFeed(list);
return {
title: `掘金专栏-${authorInfo.username}`,
link: `https://juejin.cn/user/${id}/posts`,
description: authorInfo.description,
image: authorInfo.avatar,
item: resultItems
};
}
//#endregion
export { route };