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