tv-recommender-mcp-server
Version:
MCP server for TV show recommendations
64 lines (63 loc) • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPopularShows = getPopularShows;
exports.getTrendingShows = getTrendingShows;
const tmdbClient_1 = require("../services/tmdbClient");
/**
* 获取热门剧集
* @param params 页码参数
* @returns 热门剧集列表
*/
async function getPopularShows(params = {}) {
const { page = 1 } = params;
try {
const response = await tmdbClient_1.tmdbClient.getPopularTvShows(page);
// 格式化结果
const result = {
page: response.page,
results: response.results.map((show) => ({
id: show.id,
name: show.name,
overview: show.overview || '暂无简介',
poster_path: show.poster_path,
vote_average: show.vote_average || 0,
first_air_date: show.first_air_date
})),
total_pages: response.total_pages,
total_results: response.total_results
};
return result;
}
catch (error) {
throw new Error(`获取热门剧集失败: ${error instanceof Error ? error.message : String(error)}`);
}
}
/**
* 获取趋势剧集
* @param params 包含时间窗口和页码的参数
* @returns 趋势剧集列表
*/
async function getTrendingShows(params) {
const { time_window, page = 1 } = params;
try {
const response = await tmdbClient_1.tmdbClient.getTrendingTvShows(time_window, page);
// 格式化结果
const result = {
page: response.page,
results: response.results.map((show) => ({
id: show.id,
name: show.name || show.original_name,
overview: show.overview || '暂无简介',
poster_path: show.poster_path,
vote_average: show.vote_average || 0,
first_air_date: show.first_air_date
})),
total_pages: response.total_pages,
total_results: response.total_results
};
return result;
}
catch (error) {
throw new Error(`获取${time_window === 'day' ? '日' : '周'}趋势剧集失败: ${error instanceof Error ? error.message : String(error)}`);
}
}