diff --git a/registry/lib/components/video/auto-remove-watchlater/index.ts b/registry/lib/components/video/auto-remove-watchlater/index.ts index afda4470c..303f721d2 100644 --- a/registry/lib/components/video/auto-remove-watchlater/index.ts +++ b/registry/lib/components/video/auto-remove-watchlater/index.ts @@ -4,6 +4,7 @@ import { videoUrls, watchlaterUrls } from '@/core/utils/urls' import { playerAgent } from '@/components/video/player-agent' import { getWatchlaterList, toggleWatchlater } from '@/components/video/watchlater' +let listener: (() => Promise) | null = null export const component = defineComponentMetadata({ name: 'autoRemoveWatchlater', displayName: '自动移出稍后再看', @@ -12,12 +13,16 @@ export const component = defineComponentMetadata({ entry: () => { videoChange(async ({ aid }) => { const videoElement = await playerAgent.query.video.element() - videoElement.addEventListener('ended', async () => { + if (listener !== null) { + videoElement.removeEventListener('ended', listener) + } + listener = async () => { const list = await getWatchlaterList() if (list.includes(parseInt(aid))) { await toggleWatchlater(aid) } - }) + } + videoElement.addEventListener('ended', listener) }) }, })