UNPKG

tv-recommender-mcp-server

Version:

MCP server for TV show recommendations

64 lines (63 loc) 2.27 kB
"use strict"; 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)}`); } }