rsshub
Version:
Make RSS Great Again!
67 lines (65 loc) • 2.56 kB
JavaScript
import "./dist-Bog6z_OM.mjs";
import "./config-MQ-7ebJ_.mjs";
import "./logger-C4avouvV.mjs";
import "./ofetch-DKl_Ma9g.mjs";
import "./parse-date-r5WDWHno.mjs";
import "./is-worker-DESPicPc.mjs";
import { t as cache_default } from "./cache-SV6W5EPy.mjs";
import "./helpers-Bo4JQYdN.mjs";
import "./got-CO-ndVl2.mjs";
import { t as invalid_parameter_default } from "./invalid-parameter-ByDtry1B.mjs";
import { a as parseItem, o as parseList, r as getList } from "./utils-Logb5ILJ.mjs";
//#region lib/routes/yahoo/news/listid.ts
const route = {
path: "/news/list/:region/:listId",
categories: ["new-media"],
example: "/yahoo/news/list/hk/09fcf7b0-0ab2-11e8-bf1f-4d52d4f79454",
parameters: {
region: "`hk`, `tw`",
listId: "見下表"
},
features: {
requireConfig: false,
requirePuppeteer: false,
antiCrawler: false,
supportBT: false,
supportPodcast: false,
supportScihub: false
},
radar: [{ source: ["hk.news.yahoo.com/"] }, { source: ["tw.news.yahoo.com/"] }],
name: "合作媒體",
maintainers: [
"TonyRL",
"williamgateszhao",
"tpnonthealps"
],
handler,
description: `
| 合作媒體 (\`HK\`) | \`:listId\` |
| ----------------- | ---------------------------------------- |
| 東方日報 | \`33ddd580-0ab3-11e8-bfe1-4b555fb1e429\` |
| now.com | \`01b4d760-0ab4-11e8-af3a-54037d3dced3\` |
| am730 | \`c4842090-0ab2-11e8-af7f-041a72ce7398\` |
| BBC | \`4d3fc9a0-fac8-11e9-87f2-564ca250983e\` |
| 信報財經新聞 | \`5a8a0aa0-0ab3-11e8-b3dc-d990c79d6cb1\` |
| 香港電台 | \`b4bfc2d0-0ab3-11e8-bf9f-c888fc09923f\` |
| 法新社 | \`1cc44280-facb-11e9-ad7c-f3ba971275c8\` |
| Bloomberg | \`40023670-facc-11e9-9dde-9175ff306602\` |
| 香港動物報 | \`6058fa9c-d74d-487a-8b49-aa99a2a2978e\` |`
};
async function handler(ctx) {
const { region, listId } = ctx.req.param();
if (!["hk", "tw"].includes(region)) throw new invalid_parameter_default(`Unsupported region: ${region}`);
const list = parseList(region, (await getList(region, listId)).stream_items);
const items = await Promise.all(list.map((item) => parseItem(item, cache_default.tryGet)));
const author = items[0].author;
const atIndex = author.indexOf("@");
return {
title: `Yahoo 新聞 - ${(atIndex === -1 ? author : author.slice(atIndex + 1).trim()) ?? ""}`,
link: `https://${region}.news.yahoo.com`,
image: "https://s.yimg.com/cv/apiv2/social/images/yahoo_default_logo-1200x1200.png",
item: items
};
}
//#endregion
export { route };