newsnow/server/sources/bilibili.ts
2024-11-03 20:11:13 +08:00

55 lines
1.1 KiB
TypeScript

interface WapRes {
code: number
exp_str: string
list: {
hot_id: number
keyword: string
show_name: string
score: number
word_type: number
goto_type: number
goto_value: string
icon: string
live_id: any[]
call_reason: number
heat_layer: string
pos: number
id: number
status: string
name_type: string
resource_id: number
set_gray: number
card_values: any[]
heat_score: number
stat_datas: {
etime: string
stime: string
is_commercial: string
}
}[]
top_list: any[]
hotword_egg_info: string
seid: string
timestamp: number
total_count: number
}
const hotSearch = defineSource(async () => {
const url = "https://s.search.bilibili.com/main/hotword?limit=30"
const res: WapRes = await myFetch(url)
return res.list.map(k => ({
id: k.keyword,
title: k.show_name,
url: `https://search.bilibili.com/all?keyword=${encodeURIComponent(k.keyword)}`,
extra: {
icon: k.icon && proxyPicture(k.icon),
},
}))
})
export default defineSource({
"bilibili": hotSearch,
"bilibili-hot-search": hotSearch,
})