rsshub
Version:
Make RSS Great Again!
45 lines (44 loc) • 1.53 kB
JavaScript
import { t as rofetch } from "./ofetch-W1aeTHCo.mjs";
import { t as parseDate } from "./parse-date-CjhZE69i.mjs";
import { t as cache_default } from "./cache-CiDoUSLo.mjs";
import { t as timezone } from "./timezone-DE--ze1V.mjs";
import { load } from "cheerio";
//#region lib/routes/qq/mlol/article.ts
const route = {
path: "/mlol/article/:uuid",
categories: ["game"],
example: "/qq/mlol/article/ee97e19c-4a64-4637-b916-b9ee23744d1f",
parameters: { uuid: "用户 UUID,可在文章 html 中获取" },
name: "掌上英雄联盟用户文章",
maintainers: ["ztmzzz"],
handler
};
async function handler(ctx) {
const { uuid } = ctx.req.param();
const url = `https://mlol.qt.qq.com/go/mlol_news/author_feeds?author_uuid=${uuid}`;
const data = (await rofetch(url)).data.feedsInfo;
const name = data[0].feedNews.footer.source;
const items = await Promise.all(data.map((feed) => {
const body = feed.feedNews.body;
const link = `https://mlol.qt.qq.com/go/mlol_news/varcache_article?is_lqt=true&docid=${body.commentID}`;
const item = {
title: body.title,
description: `<img src='${body.imgUrl.split("?", 1)[0]}'>`,
pubDate: timezone(parseDate(body.comCreateDate), 8),
link
};
return cache_default.tryGet(link, async () => {
const $ = load(await rofetch(link));
item.description = $(".article_content").html() ?? item.description;
return item;
});
}));
return {
title: `${name}的文章`,
link: url,
description: `${name}的文章`,
item: items
};
}
//#endregion
export { route };