From 9d8a09e90d1098270dc1ab3fedd6a7126ae8839c Mon Sep 17 00:00:00 2001 From: buvta <12312540+buvta@users.noreply.github.com> Date: Sun, 17 Jan 2021 23:05:53 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=9B=B4=E6=92=AD=E6=BA=90?= =?UTF-8?q?=E6=A3=80=E6=B5=8B=E8=B7=B3=E8=BF=87=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/IPTV.vue | 43 ++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/src/components/IPTV.vue b/src/components/IPTV.vue index 68ae021..53084a3 100644 --- a/src/components/IPTV.vue +++ b/src/components/IPTV.vue @@ -593,44 +593,47 @@ export default { await this.checkSingleChannel(c) } }, - async checkSingleChannel (channel) { - if (this.setting.allowPassWhenIptvCheck && !channel.isActive) { + async checkSingleChannel (channel, force = false) { + if (this.stopFlag) { this.checkProgress += 1 return } channel.status = ' ' const ele = this.channelList.find(e => e.id === channel.channelID) - if (this.stopFlag) { - this.checkProgress += 1 - return channel.status - } - const flag = await zy.checkChannel(channel.url) - this.checkProgress += 1 - ele.hasCheckedNum++ - if (flag) { - channel.status = '可用' + if (!force && this.setting.allowPassWhenIptvCheck && (!channel.isActive || !ele.isActive)) { + channel.status = '跳过' } else { - channel.status = '失效' - channel.isActive = false - if (this.setting.autocleanWhenIptvCheck) { - ele.channels.splice(ele.channels.findIndex(e => e.id === channel.id), 1) - ele.hasCheckedNum-- + const flag = await zy.checkChannel(channel.url) + if (flag) { + channel.status = '可用' + } else { + channel.status = '失效' + channel.isActive = false + if (this.setting.autocleanWhenIptvCheck) { + ele.channels.splice(ele.channels.findIndex(e => e.id === channel.id), 1) + ele.hasCheckedNum-- + } } } + this.checkProgress += 1 + ele.hasCheckedNum++ if (ele.hasCheckedNum === ele.channels.length) { - ele.status = ele.channels.some(channel => channel.status === '可用') ? '可用' : '失效' - if (ele.status === '失效') ele.isActive = false + if (!force && this.setting.allowPassWhenIptvCheck && !ele.isActive) { + ele.status = '跳过' + } else { + ele.status = ele.channels.some(channel => channel.status === '可用') ? '可用' : '失效' + if (ele.status === '失效') ele.isActive = false + } channelList.remove(channel.channelID) if (ele.channels.length === 1) ele.hasChildren = false if (ele.channels.length) channelList.add(ele) } - return channel.status }, async checkChannel (row) { if (row.channels) { row.status = ' ' row.hasCheckedNum = 0 - row.channels.forEach(e => this.checkSingleChannel(e)) + row.channels.forEach(e => this.checkSingleChannel(e, true)) } else { this.checkSingleChannel(row) }