From eca0a63273d8547f131eb3b46b4c66dafb4a29ae Mon Sep 17 00:00:00 2001 From: Gabe Date: Fri, 31 Oct 2025 20:23:58 +0800 Subject: [PATCH] fix: subtitle --- src/subtitle/BilingualSubtitleManager.js | 8 +++----- src/subtitle/YouTubeCaptionProvider.js | 6 ++---- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/subtitle/BilingualSubtitleManager.js b/src/subtitle/BilingualSubtitleManager.js index d34a7ef..ea02c00 100644 --- a/src/subtitle/BilingualSubtitleManager.js +++ b/src/subtitle/BilingualSubtitleManager.js @@ -1,5 +1,6 @@ import { logger } from "../libs/log.js"; import { truncateWords } from "../libs/utils.js"; +import { apiTranslate } from "../apis/index.js"; /** * @class BilingualSubtitleManager @@ -8,7 +9,6 @@ import { truncateWords } from "../libs/utils.js"; export class BilingualSubtitleManager { #videoEl; #formattedSubtitles = []; - #translationService; #captionWindowEl = null; #paperEl = null; #currentSubtitleIndex = -1; @@ -20,14 +20,12 @@ export class BilingualSubtitleManager { * @param {object} options * @param {HTMLVideoElement} options.videoEl - 页面上的 video 元素。 * @param {Array} options.formattedSubtitles - 已格式化好的字幕数组。 - * @param {(text: string, toLang: string) => Promise} options.translationService - 外部翻译函数。 * @param {object} options.setting - 配置对象,如目标翻译语言。 */ - constructor({ videoEl, formattedSubtitles, translationService, setting }) { + constructor({ videoEl, formattedSubtitles, setting }) { this.#setting = setting; this.#videoEl = videoEl; this.#formattedSubtitles = formattedSubtitles; - this.#translationService = translationService; this.onTimeUpdate = this.onTimeUpdate.bind(this); this.onSeek = this.onSeek.bind(this); @@ -309,7 +307,7 @@ export class BilingualSubtitleManager { subtitle.isTranslating = true; try { const { fromLang, toLang, apiSetting } = this.#setting; - const { trText } = await this.#translationService({ + const { trText } = await apiTranslate({ text: subtitle.text, fromLang, toLang, diff --git a/src/subtitle/YouTubeCaptionProvider.js b/src/subtitle/YouTubeCaptionProvider.js index b656612..a5e7375 100644 --- a/src/subtitle/YouTubeCaptionProvider.js +++ b/src/subtitle/YouTubeCaptionProvider.js @@ -1,5 +1,5 @@ import { logger } from "../libs/log.js"; -import { apiSubtitle, apiTranslate } from "../apis/index.js"; +import { apiSubtitle } from "../apis/index.js"; import { BilingualSubtitleManager } from "./BilingualSubtitleManager.js"; import { MSG_XHR_DATA_YOUTUBE, @@ -171,8 +171,7 @@ class YouTubeCaptionProvider { }); const toggleButton = document.createElement("button"); - toggleButton.className = - "ytp-button kiss-subtitle-button"; + toggleButton.className = "ytp-button kiss-subtitle-button"; toggleButton.title = APP_NAME; Object.assign(toggleButton.style, { color: "white", @@ -509,7 +508,6 @@ class YouTubeCaptionProvider { this.#managerInstance = new BilingualSubtitleManager({ videoEl, formattedSubtitles: this.#subtitles, - translationService: apiTranslate, setting: { ...this.#setting, fromLang: this.#fromLang }, }); this.#managerInstance.start();