rsshub
Version:
Make RSS Great Again!
126 lines (122 loc) • 2.72 kB
JavaScript
import "./types-DNj6Etbg.mjs";
import { t as got_default } from "./got-BTowW50G.mjs";
import { a as getBuildId, c as parseList, i as getBParam, o as getGToken, r as favicon, s as parseItem, t as apiUrl } from "./utils-c1gTZZgx.mjs";
//#region lib/routes/followin/index.ts
const route = {
path: "/:categoryId?/:lang?",
categories: ["finance"],
view: 0,
example: "/followin",
parameters: {
categoryId: {
description: "Category ID",
options: [
{
value: "1",
label: "For You"
},
{
value: "9",
label: "Market"
},
{
value: "13",
label: "Meme"
},
{
value: "14",
label: "BRC20"
},
{
value: "3",
label: "NFT"
},
{
value: "5",
label: "Thread"
},
{
value: "6",
label: "In-depth"
},
{
value: "8",
label: "Tutorials"
},
{
value: "11",
label: "Videos"
}
],
default: "1"
},
lang: {
description: "Language",
options: [
{
value: "en",
label: "English"
},
{
value: "zh-Hans",
label: "简体中文"
},
{
value: "zh-Hant",
label: "繁體中文"
},
{
value: "vi",
label: "Tiếng Việt"
}
],
default: "en"
}
},
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
name: "Home",
maintainers: ["TonyRL"],
handler,
description: `Category ID
| For You | Market | Meme | BRC20 | NFT | Thread | In-depth | Tutorials | Videos |
| ------- | ------ | ---- | ----- | --- | ------ | -------- | --------- | ------ |
| 1 | 9 | 13 | 14 | 3 | 5 | 6 | 8 | 11 |
Language
| English | 简体中文 | 繁體中文 | Tiếng Việt |
| ------- | -------- | -------- | ---------- |
| en | zh-Hans | zh-Hant | vi |`
};
async function handler(ctx) {
const { categoryId = "1", lang = "en" } = ctx.req.param();
const { limit = 20 } = ctx.req.query();
const gToken = await getGToken();
const bParam = getBParam(lang);
const { data: response } = await got_default.post(`${apiUrl}/feed/list/recommended`, {
headers: {
"x-bparam": JSON.stringify(bParam),
"x-gtoken": gToken
},
json: {
category_id: Number.parseInt(categoryId),
count: Number.parseInt(limit)
}
});
if (response.code !== 2e3) throw new Error(response.msg);
const buildId = await getBuildId();
const list = parseList(response.data.list, lang, buildId);
return {
title: "Followin",
link: "https://followin.io",
image: favicon,
item: await Promise.all(list.map((item) => parseItem(item)))
};
}
//#endregion
export { route };