rsshub
Version:
Make RSS Great Again!
99 lines (97 loc) • 3.27 kB
JavaScript
import "./esm-shims-CzJ_djXG.mjs";
import "./config-C37vj7VH.mjs";
import "./dist-BInvbO1W.mjs";
import "./logger-Czu8UMNd.mjs";
import "./ofetch-BIyrKU3Y.mjs";
import { t as parseDate } from "./parse-date-BrP7mxXf.mjs";
import "./helpers-DxBp0Pty.mjs";
import { t as got_default } from "./got-KxxWdaxq.mjs";
//#region lib/routes/sspai/activity.ts
const route = {
path: "/activity/:slug",
categories: ["new-media"],
example: "/sspai/activity/urfp0d9i",
parameters: { slug: "作者 slug,可在作者主页URL中找到" },
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: true,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{
source: ["sspai.com/u/:id/updates"],
target: "/activity/:id"
}],
name: "作者动态",
maintainers: ["umm233"],
handler
};
async function handler(ctx) {
const slug = ctx.req.param("slug");
const link = `https://sspai.com/u/${slug}/updates`;
const response = await got_default({
method: "get",
url: `https://sspai.com/api/v1/information/user/activity/page/get?limit=10&offset=0&slug=${slug}`,
headers: { Referer: link }
});
const user_nickname = (await got_default({
method: "get",
url: `https://sspai.com/api/v1/user/slug/info/get?slug=${slug}`,
headers: { Referer: link }
})).data.data.nickname;
const data = response.data.data;
let item_title = "";
let item_desc = "";
let item_url = "";
return {
title: `少数派用户「${user_nickname}」动态更新`,
link,
description: `少数派用户「${user_nickname}」的动态更新`,
item: data.map((item) => {
const content_data = item.data;
const nicknames = [];
const slugs = [];
switch (item.key) {
case "follow_user":
for (const i in content_data) {
nicknames[i] = content_data[i].nickname;
slugs[i] = `<a href=https://sspai.com/u/${content_data[i].slug}/updates>${content_data[i].nickname}</a>`;
}
item_title = `${item.author.nickname}${item.action}:${nicknames.join("、")}`;
item_desc = `${item.author.nickname}${item.action}:${slugs.join("、")}`;
item_url = `https://sspai.com/u/${slug}/follow`;
break;
case "like_article":
item_title = `${item.author.nickname}${item.action}:${content_data.title}`;
item_desc = `文章简介:<br>${content_data.summary}`;
item_url = `https://sspai.com/post/${content_data.id}`;
break;
case "comment_article":
item_title = `${item.author.nickname}${item.action}:${content_data.article_title}`;
item_desc = content_data.comment;
item_url = `https://sspai.com/post/${content_data.article_id}`;
break;
case "release_article":
item_title = `${item.author.nickname}${item.action}:${content_data.title}`;
item_desc = content_data.summary;
item_url = `https://sspai.com/post/${content_data.id}`;
break;
case "chosen_comment":
item_title = `${item.author.nickname}在文章「${content_data.article_title}」下的${item.action}`;
item_desc = content_data.comment;
item_url = content_data.comment;
break;
}
return {
title: item_title,
description: item_desc,
link: item_url,
pubDate: parseDate(item.created_at * 1e3)
};
})
};
}
//#endregion
export { route };