fix: weibo

This commit is contained in:
ourongxing
2025-08-06 20:26:39 +08:00
parent 681d137975
commit fc57acf9cc
+130 -34
View File
@@ -1,48 +1,144 @@
interface Res {
ok: number // 1 is ok
data: {
realtime:
{
num: number // 看上去是个 id
emoticon: string
icon?: string // 热,新 icon url
icon_width: number
icon_height: number
is_ad?: number // 1
note: string
small_icon_desc: string
icon_desc?: string // 如果是 荐 ,就是广告
topic_flag: number
icon_desc_color: string
flag: number
word_scheme: string
small_icon_desc_color: string
realpos: number
label_name: string
word: string // 热搜词
rank: number
}[]
}
export interface Root {
ok: number
data: Data
}
export interface Data {
mapi: any[]
cards: Card[]
cardlistInfo: CardlistInfo
scheme: string
showAppTips: number
}
export interface Card {
card_group: CardGroup[]
card_type: number
show_type: number
itemid?: string
title?: string
}
export interface CardGroup {
actionlog?: Actionlog
card_type: number
pic?: string
itemid?: string
icon?: string
icon_width?: number
icon_height?: number
desc?: string
scheme: string
desc_extr: any
promotion?: Promotion
display_arrow?: number
show_type?: number
title?: string
is_show_arrow?: number
left_tag_img?: string
sub_title?: string
}
export interface Actionlog {
luicode: string
lfid: string
uicode: string
act_code: number
act_type: number
fid: string
ext: string
}
export interface Promotion {
monitor_url: MonitorUrl[]
}
export interface MonitorUrl {
third_party_click: string
third_party_show: string
type: string
monitor_name?: string
}
export interface CardlistInfo {
select_id: string
title_top: string
show_style: number
starttime: number
can_shared: number
v_p: string
containerid: string
page_type: string
nick: string
cardlist_head_cards: CardlistHeadCard[]
enable_load_imge_scrolling: number
page_title: string
search_request_id: string
load_more_threshold: number
pagesize: number
page_common_ext: string
cardlist_menus: any[]
total: number
headbg_animation: string
page_size: number
page: any
}
export interface CardlistHeadCard {
title_top?: string
show_menu: boolean
head_type_name: string
head_type: number
head_data?: HeadData
channel_list?: ChannelList[]
}
export interface HeadData {
cover_url: string
show_navi_mask: boolean
show_title: boolean
data_type: number
scheme: string
}
export interface ChannelList {
actionlog: Actionlog2
scheme: string
containerid: string
name: string
default_add: number
id: number
must_show: number
replaced_name?: string
}
export interface Actionlog2 {
luicode: string
lfid: string
uicode: string
act_code: number
act_type: number
fid: string
ext: string
}
export default defineSource(async () => {
const url = "https://weibo.com/ajax/side/hotSearch"
const res: Res = await myFetch(url)
return res.data.realtime
.filter(k => !k.is_ad)
const url = "https://m.weibo.cn/api/container/getIndex?containerid=106003type%3D25%26t%3D3%26disable_hot%3D1%26filter_type%3Drealtimehot"
const res: Root = await myFetch(url)
return res.data.cards[0].card_group
.filter((k, i) => i !== 0 && k.desc && !k.actionlog?.ext.includes("ads_word"))
.map((k) => {
const keyword = k.word_scheme ? k.word_scheme : `#${k.word}#`
return {
id: k.word,
title: k.word,
id: k.desc!,
title: k.desc!,
extra: {
icon: k.icon && {
url: proxyPicture(k.icon),
scale: 1.5,
},
},
url: `https://s.weibo.com/weibo?q=${encodeURIComponent(keyword)}`,
mobileUrl: `https://m.weibo.cn/search?containerid=231522type%3D1%26q%3D${encodeURIComponent(keyword)}&_T_WM=16922097837&v_p=42`,
url: `https://s.weibo.com/weibo?q=${encodeURIComponent(`#${k.desc}#`)}`,
mobileUrl: k.scheme,
}
})
})