UNPKG

rsshub

Version:
62 lines (60 loc) 2.2 kB
import "./esm-shims-CzJ_djXG.mjs"; import "./config-C37vj7VH.mjs"; import "./dist-BInvbO1W.mjs"; import "./logger-Czu8UMNd.mjs"; import { t as ofetch_default } from "./ofetch-BIyrKU3Y.mjs"; import { t as parseDate } from "./parse-date-BrP7mxXf.mjs"; import "./md5-C8GRvctM.mjs"; import "./cache-Bo__VnGm.mjs"; import "./helpers-DxBp0Pty.mjs"; import "./render-BQo6B4tL.mjs"; import "./proxy-Db7uGcYb.mjs"; import "./got-KxxWdaxq.mjs"; import { t as timezone } from "./timezone-D8cuwzTY.mjs"; import "./puppeteer-DGmvuGvT.mjs"; import "./utils-XRYoJEu4.mjs"; import { t as cache_default } from "./cache-COvn8_4R.mjs"; import { decodeHTML } from "entities"; //#region lib/routes/bilibili/live-room.ts const route = { path: "/live/room/:roomID", categories: ["live"], example: "/bilibili/live/room/3", parameters: { roomID: "房间号, 可在直播间 URL 中找到, 长短号均可" }, features: { requireConfig: false, requirePuppeteer: false, antiCrawler: false, supportBT: false, supportPodcast: false, supportScihub: false }, radar: [{ source: ["live.bilibili.com/:roomID"] }], name: "直播开播", maintainers: ["Qixingchen"], handler }; async function handler(ctx) { let roomID = ctx.req.param("roomID"); if (Number.parseInt(roomID, 10) < 1e4) roomID = await cache_default.getLiveIDFromShortID(roomID); const info = await cache_default.getUserInfoFromLiveID(roomID); const data = (await ofetch_default(`https://api.live.bilibili.com/room/v1/Room/get_info?room_id=${roomID}&from=room`, { headers: { Referer: `https://live.bilibili.com/${roomID}` } })).data; const liveItem = []; if (data.live_status === 1) liveItem.push({ title: `${data.title} ${data.live_time}`, description: `<img src="${data.keyframe}"><br>${decodeHTML(data.description)}`, pubDate: timezone(parseDate(data.live_time), 8), guid: `https://live.bilibili.com/${roomID} ${data.live_time}`, link: `https://live.bilibili.com/${roomID}` }); return { title: `${info.uname} 直播间开播状态`, link: `https://live.bilibili.com/${roomID}`, description: `${info.uname} 直播间开播状态`, image: info.face, item: liveItem, allowEmpty: true }; } //#endregion export { route };