fix: filter out ad/live/invalid cards from recommend feed

推荐流中混入广告、直播等特殊条目,缺少 pic/duration/bvid 字段,
导致页面出现空白卡片。过滤掉不满足条件的条目。
This commit is contained in:
Developer
2026-03-10 20:50:44 +08:00
parent 4d71f39ee9
commit f2b4c404c3

View File

@@ -76,12 +76,14 @@ export async function getRecommendFeed(freshIdx = 0): Promise<VideoItem[]> {
);
const res = await api.get('/x/web-interface/wbi/index/top/feed/rcmd', { params: signed });
const items: any[] = res.data.data?.item ?? [];
return items.map(item => ({
...item,
aid: item.id ?? item.aid,
pic: item.pic ?? item.cover,
owner: item.owner ?? { mid: 0, name: item.owner_info?.name ?? '', face: item.owner_info?.face ?? '' },
})) as VideoItem[];
return items
.map(item => ({
...item,
aid: item.id ?? item.aid,
pic: item.pic ?? item.cover,
owner: item.owner ?? { mid: 0, name: item.owner_info?.name ?? '', face: item.owner_info?.face ?? '' },
}))
.filter((item: any) => item.bvid && (item.pic || item.cover) && item.duration > 0) as VideoItem[];
}
export async function getPopularVideos(pn = 1): Promise<VideoItem[]> {