cvsa/packages/crawler/net/getLatestVideoAids.ts
2025-05-05 01:53:33 +08:00

22 lines
921 B
TypeScript

import type { VideoListResponse } from "@core/net/bilibili.d.ts";
import logger from "@core/log/logger.ts";
import networkDelegate from "@core/net/delegate.ts";
export async function getLatestVideoAids(page: number = 1, pageSize: number = 10): Promise<number[]> {
const startFrom = 1 + pageSize * (page - 1);
const endTo = pageSize * page;
const range = `${startFrom}-${endTo}`;
const errMessage = `Error fetching latest aid for ${range}:`;
const url = `https://api.bilibili.com/x/web-interface/newlist?rid=30&ps=${pageSize}&pn=${page}`;
const data = await networkDelegate.request<VideoListResponse>(url, "getLatestVideos");
if (data.code != 0) {
logger.error(errMessage + data.message, "net", "getLastestVideos");
return [];
}
if (data.data.archives.length === 0) {
logger.verbose("No more videos found", "net", "getLatestVideos");
return [];
}
return data.data.archives.map((video) => video.aid);
}