diff --git a/lib/v2/bilibili/maintainer.js b/lib/v2/bilibili/maintainer.js index 4100e9d807..d9bf20523e 100644 --- a/lib/v2/bilibili/maintainer.js +++ b/lib/v2/bilibili/maintainer.js @@ -21,6 +21,7 @@ module.exports = { '/online/:disableEmbed?': ['TigerCubDen'], '/partion/:tid/:disableEmbed?': ['DIYgod'], '/partion/ranking/:tid/:days?/:disableEmbed?': ['lengthmin'], + '/platform/:area?/:p_type?/:uid?': ['nightmare-mio'], '/popular/all': ['ziminliu'], '/ranking/:rid?/:day?/:arc_type?/:disableEmbed?': ['DIYgod'], '/readlist/:listid': ['hoilc'], diff --git a/lib/v2/bilibili/platform.js b/lib/v2/bilibili/platform.js new file mode 100644 index 0000000000..c62e6836c0 --- /dev/null +++ b/lib/v2/bilibili/platform.js @@ -0,0 +1,43 @@ +const got = require('@/utils/got'); +const { parseDate } = require('@/utils/parse-date'); +const config = require('@/config').value; + +module.exports = async (ctx) => { + const { area = -1, type = '全部类型', uid } = ctx.params; + const cookie = config.bilibili.cookies[uid]; + const link = 'https://show.bilibili.com/api/ticket/project/listV2'; + + const headers = { + Referer: 'https://space.bilibili.com', + Cookie: cookie ? `SESSDATA=${cookie}` : undefined, + }; + + const { data: response } = await got({ + method: 'get', + url: `${link}?version=134&page=1&pagesize=16&area=${area}&filter=&platform=web&p_type=${type}`, + headers, + }); + // 列表 + const list = response.data.result; + + const items = list.map((item) => { + const bodyHtml = ``; + const coordinate = `
活动地点: ${item.city} ${item.venue_name}
`; + const liveTime = `
活动时间: ${item.tlabel}
`; + const staff = `
参展览嘉宾: ${item.staff}
`; + const countdown = `
结束日期: ${item.countdown}
`; + const price = `
最低价: ${item.price_low / 100} ; 最高价: ${item.price_high / 100}
`; + return { + title: item.project_name, + link: item.url, + description: bodyHtml + coordinate + liveTime + staff + countdown + price, + pubDate: parseDate(item.sale_start_time * 1000), + }; + }); + + ctx.state.data = { + title: `bilibili会员购票务-${area}`, + link, + item: items, + }; +}; diff --git a/lib/v2/bilibili/radar.js b/lib/v2/bilibili/radar.js index e5476880fe..f75d6714df 100644 --- a/lib/v2/bilibili/radar.js +++ b/lib/v2/bilibili/radar.js @@ -143,5 +143,13 @@ module.exports = { target: '/bilibili/live/room/:roomID', }, ], + show: [ + { + title: '会员购票务', + docs: 'https://docs.rsshub.app/routes/social-media#bilibili-hui-yuan-gou-zuo-pin', + source: '/platform', + target: '/bilibili/platform/:area?/:p_type?/:uid?', + }, + ], }, }; diff --git a/lib/v2/bilibili/router.js b/lib/v2/bilibili/router.js index 2e27b72b60..c2b2513b37 100644 --- a/lib/v2/bilibili/router.js +++ b/lib/v2/bilibili/router.js @@ -21,6 +21,7 @@ module.exports = (router) => { router.get('/online/:disableEmbed?', require('./online')); router.get('/partion/:tid/:disableEmbed?', require('./partion')); router.get('/partion/ranking/:tid/:days?/:disableEmbed?', require('./partion-ranking')); + router.get('/platform/:area?/:p_type?/:uid?', require('./platform')); router.get('/popular/all', require('./popular')); router.get('/ranking/:rid?/:day?/:arc_type?/:disableEmbed?', require('./ranking')); router.get('/readlist/:listid', require('./readlist')); diff --git a/website/docs/routes/social-media.mdx b/website/docs/routes/social-media.mdx index b06944e87c..a25e1ea1ad 100644 --- a/website/docs/routes/social-media.mdx +++ b/website/docs/routes/social-media.mdx @@ -341,6 +341,16 @@ UP 主关注用户现在需要 b 站登录后的 Cookie 值,所以只能自建 +### 会员购票务 {#bilibili-hui-yuan-gou-piao-wu} + + + +| 类型 | +| ---- | +| 演出 | +| 展览 | +| 本地生活 | + ### 综合热门 {#bilibili-zong-he-re-men}