UNPKG

rsshub

Version:
126 lines (122 loc) 3.62 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import "./ofetch-BIyrKU3Y.mjs"; import "./parse-date-BrP7mxXf.mjs"; import "./md5-C8GRvctM.mjs"; import "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import { t as got_default } from "./got-KxxWdaxq.mjs"; import { t as utils_default } from "./utils-Brm8ba_H.mjs"; //#region lib/routes/coolapk/hot.ts const getLinkAndTitle = (type, period) => { const baseURL = "https://api.coolapk.com/v6/page/dataList?url="; let link; const res = {}; const types = { jrrm: { title: "今日热门", url: baseURL + "%2Ffeed%2FstatList%3FcacheExpires%3D300%26statType%3Dday%26sortField%3Ddetailnum%26title%3D%E4%BB%8A%E6%97%A5%E7%83%AD%E9%97%A8&title=%E4%BB%8A%E6%97%A5%E7%83%AD%E9%97%A8&subTitle=&page=1" }, dzb: { title: "点赞榜", sortField: "likenum" }, scb: { title: "收藏榜", sortField: "favnum" }, plb: { title: "评论榜", sortField: "replynum" }, ktb: { title: "酷图榜", sortField: "likenum" } }; const periods = { daily: { description: "日榜", statType: "day" }, weekly: { description: "周榜", statType: "7days" } }; if (type === "jrrm") { res.link = types.jrrm.url; res.title = types.jrrm.title; return res; } else if (type === "ktb") { const trans = { daily: { description: "周榜", statDays: "7days" }, weekly: { description: "月榜", statDays: "30days" } }; link = `#/feed/coolPictureList?statDays=` + trans[period].statDays + `&listType=statFavNum&buildCard=1&title=` + trans[period].description + `&page=1`; res.title = "酷图榜-" + trans[period].description; } else { link = `#/feed/statList?statType=` + periods[period].statType + `&sortField=` + types[type].sortField + `&title=` + periods[period].description + `&page=1`; res.title = types[type].title + `-` + periods[period].description; } res.link = baseURL + encodeURIComponent(link); return res; }; const route = { path: "/hot/:type?/:period?", categories: ["social-media"], example: "/coolapk/hot", parameters: { type: "默认为`jrrm`", period: "默认为`daily`" }, features: { requireConfig: [{ name: "ALLOW_USER_HOTLINK_TEMPLATE", optional: true, description: "设置为`true`并添加`image_hotlink_template`参数来代理图片" }], requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, name: "热榜", maintainers: ["xizeyoupan"], handler, description: `| 参数名称 | 今日热门 | 点赞榜 | 评论榜 | 收藏榜 | 酷图榜 | | -------- | -------- | ------ | ------ | ------ | ------ | | type | jrrm | dzb | plb | scb | ktb | | 参数名称 | 日榜 | 周榜 | | -------- | ----- | ------ | | period | daily | weekly | ::: tip 今日热门没有周榜,酷图榜日榜的参数会变成周榜,周榜的参数会变成月榜。 :::` }; async function handler(ctx) { const { link, title } = getLinkAndTitle(ctx.req.param("type") || "jrrm", ctx.req.param("period") || "daily"); const data = (await got_default(link, { headers: utils_default.getHeaders() })).data.data; const t = []; for (const i of data) if (i.entityType === "card") for (const k of i.entities) t.push(k); else t.push(i); let out = await Promise.all(t.map((item) => utils_default.parseDynamic(item))); out = out.filter(Boolean); return { title, link: "https://www.coolapk.com/", description: `热榜-` + title, item: out }; } //#endregion export { route };