ZhiHuiShu-Assistant icon indicating copy to clipboard operation
ZhiHuiShu-Assistant copied to clipboard

当发生"弹窗答题"导致切换到下一节 bug解决

Open Goodtimp opened this issue 5 years ago • 0 comments

(function () {
	const MAX_DELAY = 30 // 切课时的最大延迟,单位:秒

	const sleep = (time) => new Promise((resolve) => setTimeout(resolve, time))

	SpeedFlag = 0
	VolumeFlag = 0

	const start = async function () {
		console.log('智慧树助手已启动')

		while (true) {
			console.log('正在检查')
			const delay = Math.floor(Math.random() * MAX_DELAY * 1000) + 1000

			// if (!/liuchang/.test($('.definiBox').attr('style'))) {
			// 	console.log('更改画质')
			// 	$('.line1bq').click()
			// }

			if (!/1\.5/.test($('.speedBox').attr('style')) && !SpeedFlag) {
				console.log('提升到1.5倍速')
				SpeedFlag = 1
				$('.speedTab15').click()
			}

			if ($('.volumeBox').find('.passVolume').width() != 0 && !VolumeFlag) {
				console.log('静音')
				VolumeFlag = 1
				$('.volumeIcon').click()
			}
			if ($('.popbtn_cancel')[0]) {
				console.log('发现弹题,将在' + delay / 1000 + ' 秒后点击关闭')
				await sleep(delay / 2)
				const iframe = document.getElementById('tmDialog_iframe').contentWindow
				iframe.document.querySelector('.answerOption label').click()
				await sleep(delay / 2)
				$('.popbtn_cancel').click()

			}

			else if ($('.playButton').length > 0) {
				console.log('本节完成,' + delay / 1000 + ' 秒后将切到下一课')
				await sleep(delay)
				$('.current_play').nextAll('.video')[0].click()
				console.log('已经切换到下一课')
				console.log('点击播放')
				$('.playButton').click()
				SpeedFlag = 0
				VolumeFlag = 0
			}

			await sleep(1000)
		}
	}

	start()
}())

// 由wangzexi代码改进而来,增加了两个flag用于判断。

Goodtimp avatar Nov 26 '19 04:11 Goodtimp