hot-content-mcp
Version:
MCP服务器,支持获取百度热搜、B站热门视频等多平台热门内容数据
152 lines • 3.48 kB
TypeScript
import { ConfigManager } from './config.js';
export interface BaiduHotSearchItem {
appUrl: string;
desc: string;
hotChange: string;
hotScore: string;
hotTag: string;
hotTagImg: string;
img: string;
index: number;
indexUrl: string;
query: string;
rawUrl: string;
show: any[];
url: string;
word: string;
}
export interface BilibiliVideoItem {
title: string;
desc: string;
pic: string;
firstframe: string;
url: string;
publocation: string;
aid: number;
bvid: string;
mid: number;
name: string;
face: string;
view: number;
vv: number;
danmaku: number;
reply: number;
favorite: number;
coin: number;
share: number;
like: number;
}
export interface BaiduApiResponse {
code: number;
time: number;
time2: string;
data: BaiduHotSearchItem[];
}
export interface BilibiliApiResponse {
code: number;
time: number;
time2: string;
data: BilibiliVideoItem[];
}
export interface SimplifiedHotSearchItem {
rank: number;
title: string;
hotScore: string;
trend: string;
url: string;
description?: string;
}
export interface SimplifiedBilibiliItem {
rank: number;
title: string;
author: string;
views: number;
likes: number;
coins: number;
url: string;
bvid: string;
description?: string;
publishLocation?: string;
stats: {
danmaku: number;
reply: number;
favorite: number;
share: number;
};
}
export declare class BaiduHotSearchService {
private configManager;
private baseUrl;
private lastFetchTime;
private cacheData;
private readonly CACHE_DURATION;
constructor(configManager?: ConfigManager);
/**
* 获取百度热搜榜数据
*/
getHotSearchData(useCache?: boolean): Promise<SimplifiedHotSearchItem[]>;
/**
* 构建API请求URL
*/
private buildApiUrl;
/**
* 发送API请求
*/
private makeApiRequest;
/**
* 验证API响应
*/
private validateResponse;
/**
* 转换数据格式为简化版本
*/
private transformData;
/**
* 获取趋势文本描述
*/
private getTrendText;
/**
* 检查缓存是否有效
*/
private isCacheValid;
/**
* 更新缓存
*/
private updateCache;
/**
* 错误处理
*/
private handleError;
/**
* 搜索特定关键词的热搜
*/
searchHotSearch(keyword: string): Promise<SimplifiedHotSearchItem[]>;
/**
* 获取排名前N的热搜
*/
getTopHotSearch(count?: number): Promise<SimplifiedHotSearchItem[]>;
/**
* 清除缓存
*/
clearCache(): void;
}
export declare class BilibiliHotSearchService {
private configManager;
private baseUrl;
private lastFetchTime;
private cacheData;
private readonly CACHE_DURATION;
constructor(configManager?: ConfigManager);
getBilibiliHotData(useCache?: boolean): Promise<SimplifiedBilibiliItem[]>;
private buildApiUrl;
private makeApiRequest;
private validateResponse;
private transformData;
private isCacheValid;
private updateCache;
private handleError;
getTopBilibiliVideos(count?: number): Promise<SimplifiedBilibiliItem[]>;
searchBilibiliVideos(keyword: string): Promise<SimplifiedBilibiliItem[]>;
clearCache(): void;
}
//# sourceMappingURL=api.d.ts.map