From 83015b73bdb0bda4f23af04b3814b8cd7e21d721 Mon Sep 17 00:00:00 2001 From: enncy <877526278@qq.com> Date: Tue, 26 Apr 2022 17:39:54 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=BC=80=E5=8F=91=E6=99=BA=E6=85=A7?= =?UTF-8?q?=E6=A0=91=E5=80=8D=E9=80=9F=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/zhs/StudySettingPanel.tsx | 38 +++++++++++++++---- packages/core/src/script/zhs/study.ts | 38 +++++++++++++------ 2 files changed, 56 insertions(+), 20 deletions(-) diff --git a/packages/core/src/components/zhs/StudySettingPanel.tsx b/packages/core/src/components/zhs/StudySettingPanel.tsx index 3f2724c5..da820f0e 100644 --- a/packages/core/src/components/zhs/StudySettingPanel.tsx +++ b/packages/core/src/components/zhs/StudySettingPanel.tsx @@ -38,10 +38,10 @@ export const StudySettingPanel = defineComponent({ ,
- {settings.watchTime === 0 + {settings.watchTime === 0 ? ( 设置为0将不会自动暂停 - ) + ) : ( 将在 {settings.closeDate.toLocaleString()} 暂停 )} @@ -49,12 +49,34 @@ export const StudySettingPanel = defineComponent({ ] : []} - -
- - - -
+ { + settings.creditStudy === true + ? <> + +
+ + + + +
+ + : <> + +
+ + { + settings.playbackRate = e.target.valueAsNumber; + }}> + +
+ + }
diff --git a/packages/core/src/script/zhs/study.ts b/packages/core/src/script/zhs/study.ts index 5fffa706..65abbebb 100644 --- a/packages/core/src/script/zhs/study.ts +++ b/packages/core/src/script/zhs/study.ts @@ -1,14 +1,14 @@ -import { logger } from '../../logger'; +import { store } from '..'; import { domSearch, domSearchAll, sleep } from '../../core/utils'; +import { logger } from '../../logger'; import { ScriptSettings } from '../../scripts'; -import { store } from '..'; let stop = false; /** * zhs 视频学习 */ -export async function study (setting?: ScriptSettings['zhs']['video']) { +export async function study(setting?: ScriptSettings['zhs']['video']) { const { watchTime = 30, restudy = false } = setting || {}; logger('info', 'zhs 学习任务开始'); /** 查找任务 */ @@ -44,8 +44,7 @@ export async function study (setting?: ScriptSettings['zhs']['video']) { } else { logger( 'debug', - `即将播放 -- ${item.querySelector('[class="catalogue_title"]')?.getAttribute('title')} : ${ - item.querySelector('.time')?.textContent + `即将播放 -- ${item.querySelector('[class="catalogue_title"]')?.getAttribute('title')} : ${item.querySelector('.time')?.textContent }` ); item.click(); @@ -66,8 +65,8 @@ export async function study (setting?: ScriptSettings['zhs']['video']) { * @param setting * @returns */ -export async function watch (setting?: Pick) { - const { volume = 0 } = setting || {}; +export async function watch(setting?: Pick) { + const { volume = 0, playbackRate } = setting || {}; return new Promise((resolve, reject) => { try { const video = document.querySelector('video') as HTMLVideoElement; @@ -77,8 +76,19 @@ export async function watch (setting?: Pick { + + Promise.resolve(async () => { + await sleep(1000); + video.play(); + + await sleep(1000); + const { btn, rate } = domSearch({ btn: '.speedBox', rate: `[rate="${playbackRate}"]` }); + console.log({ btn, rate }); + btn?.click(); + await sleep(1000); + rate?.click(); + video.onpause = function () { if (!video.ended) { if (stop) { @@ -91,7 +101,11 @@ export async function watch (setting?: Pick { + func(); + }).catch((err) => { + logger('error', err); + }); } catch (e) { reject(e); } @@ -101,7 +115,7 @@ export async function watch (setting?: Pick