From f19a5d9c4cc293708a0074f0627d542d1c4f5cc4 Mon Sep 17 00:00:00 2001 From: haode <1730142004@qq.com> Date: Sat, 1 Aug 2026 12:55:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20bangumi=E3=80=81episode=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=BF=94=E5=9B=9E=E6=95=B0=E6=8D=AE=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=20url=20=E5=AD=97=E6=AE=B5=20(#403)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add files via upload * Add files via upload --- danmu_api/apis/dandan-api.js | 4 +++- danmu_api/models/dandan-model.js | 11 +++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/danmu_api/apis/dandan-api.js b/danmu_api/apis/dandan-api.js index 3a621b2..810c5df 100644 --- a/danmu_api/apis/dandan-api.js +++ b/danmu_api/apis/dandan-api.js @@ -1901,7 +1901,8 @@ export async function searchEpisodes(url) { typeDescription: animeItem.typeDescription, episodes: filteredEpisodes.map(ep => ({ episodeId: ep.episodeId, - episodeTitle: ep.episodeTitle + episodeTitle: ep.episodeTitle, + url: ep.url || "" })) })); } @@ -1948,6 +1949,7 @@ function buildBangumiData(anime, idParam = "") { episodeTitle: `${link.title}`, episodeNumber: `${i+1}`, airDate: anime.startDate, + url: link.url || "" }); } diff --git a/danmu_api/models/dandan-model.js b/danmu_api/models/dandan-model.js index c81a43e..1cf053a 100644 --- a/danmu_api/models/dandan-model.js +++ b/danmu_api/models/dandan-model.js @@ -115,9 +115,10 @@ export class AnimeMatch { // 数据模型:Episode // ===================== export class Episode { - constructor({ episodeId = "", episodeTitle = "" } = {}) { + constructor({ episodeId = "", episodeTitle = "", url = "" } = {}) { this.episodeId = episodeId; this.episodeTitle = episodeTitle; + this.url = url; } } @@ -125,7 +126,8 @@ export class Episode { Episode.prototype.toJson = function () { return { episodeId: this.episodeId, - episodeTitle: this.episodeTitle + episodeTitle: this.episodeTitle, + url: this.url }; }; @@ -197,15 +199,16 @@ export class Season { // ===================== export class BangumiEpisode { constructor({ seasonId = "", episodeId = 10001, episodeTitle = "", episodeNumber = "", - airDate = "" } = {}) { + airDate = "", url = "" } = {}) { validateType(seasonId, "string"); validateType(episodeId, "number"); validateType(episodeTitle, "string"); validateType(episodeNumber, "string"); validateType(airDate, "string"); + validateType(url, "string"); // 直接解构并赋值给 this - Object.assign(this, { seasonId, episodeId, episodeTitle, episodeNumber, airDate }); + Object.assign(this, { seasonId, episodeId, episodeTitle, episodeNumber, airDate, url }); } // ---- 静态方法:从 JSON 创建 BangumiEpisode 对象 ----