rsshub
Version:
Make RSS Great Again!
57 lines (56 loc) • 2.23 kB
JavaScript
import { t as rofetch } from "./ofetch-C3ts-Hud.mjs";
import { t as parseDate } from "./parse-date-Cr0wQjV_.mjs";
import { t as InvalidParameterError } from "./invalid-parameter-CGxhjomn.mjs";
import { n as fetchArticle } from "./common-DcqxCICR.mjs";
//#region lib/routes/jiemian/account.ts
const categoryMap = {
"1": {
ckey: "finance_config_index",
name: "财经号"
},
"2": {
ckey: "city_config_index",
name: "城市号"
},
"3": {
ckey: "media_config_index",
name: "媒体号"
}
};
const route = {
path: "/account/main/:id",
parameters: { id: "分类 id,见下表,可在对应分类页 URL 中找到" },
name: "界面号",
example: "/jiemian/account/main/1",
maintainers: ["nczitzk", "pseudoyu"],
handler,
description: `| [财经号](https://www.jiemian.com/account/main/1.html) | [城市号](https://www.jiemian.com/account/main/2.html) | [媒体号](https://www.jiemian.com/account/main/3.html) |
| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- |
| 1 | 2 | 3 |`
};
async function handler(ctx) {
const { id } = ctx.req.param();
const limit = ctx.req.query("limit") ? Number(ctx.req.query("limit")) : 10;
const category = categoryMap[id];
if (!category) throw new InvalidParameterError("Invalid id");
const response = await rofetch("https://papi.jiemian.com/page/api/officialAccount/get_index_lists", { query: {
ckey: category.ckey,
page: 1
} });
const list = JSON.parse(response.slice(response.indexOf("(") + 1, response.lastIndexOf(")"))).result.slice(0, limit).map((article) => ({
title: article.title,
description: article.summary,
link: article.url,
pubDate: parseDate(article.publish_time, "X"),
author: article.source_name,
image: article.image
}));
const items = await Promise.all(list.map((item) => fetchArticle(item)));
return {
title: `界面新闻 - ${category.name}`,
link: `https://www.jiemian.com/account/main/${id}.html`,
item: items
};
}
//#endregion
export { route };