rsshub
Version:
Make RSS Great Again!
54 lines (52 loc) • 1.68 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 "./cache-Bo__VnGm.mjs";
import "./render-BQo6B4tL.mjs";
import { i as renderVideo, n as getUserInfoById, r as getUserVideosById } from "./utils-CZH2BSR1.mjs";
//#region lib/routes/nicovideo/video.ts
const handler = async (ctx) => {
const { id } = ctx.req.param();
const embed = !ctx.req.param("embed");
const userInfo = await getUserInfoById(id);
const items = (await getUserVideosById(id)).map(({ essential: video }) => ({
title: video.title,
link: `https://www.nicovideo.jp/watch/${video.id}`,
pubDate: parseDate(video.registeredAt),
author: [{
name: video.owner.name,
avatar: video.owner.iconUrl,
url: `https://www.nicovideo.jp/user/${video.owner.id}`
}],
description: renderVideo(video, embed),
image: video.thumbnail.nHdUrl || video.thumbnail.largeUrl || video.thumbnail.middleUrl,
upvotes: video.count.like,
comments: video.count.comment
}));
return {
title: `${userInfo.nickname} - ニコニコ`,
link: `https://www.nicovideo.jp/user/${id}/video`,
image: userInfo.icon,
item: items
};
};
const route = {
name: "User Videos",
path: "/user/:id/video/:embed?",
parameters: {
id: "User ID",
embed: "Default to embed the video, set to any value to disable embedding"
},
example: "/nicovideo/user/16690815/video",
maintainers: ["TonyRL"],
radar: [{
source: ["www.nicovideo.jp/user/:id", "www.nicovideo.jp/user/:id/video"],
target: "/user/:id/video"
}],
handler
};
//#endregion
export { route };