diff --git a/src/components/Film.vue b/src/components/Film.vue index f67f6f0..39f5426 100644 --- a/src/components/Film.vue +++ b/src/components/Film.vue @@ -572,7 +572,7 @@ export default { downloadEvent (site, row) { zy.download(site.key, row.id).then(res => { if (res && res.length > 0) { - const text = res.dl.dd._t + const text = res.m3u8List if (text) { const list = text.split('#') let downloadUrl = res.name + '\n' diff --git a/src/components/History.vue b/src/components/History.vue index a16ebc5..3dd2600 100644 --- a/src/components/History.vue +++ b/src/components/History.vue @@ -197,35 +197,18 @@ export default { }, downloadEvent (e) { zy.download(e.site, e.ids).then(res => { - if (res && res.dl && res.dl.dd) { - const text = res.dl.dd._t - if (text) { - const list = text.split('#') - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('『MP4』格式的链接已复制, 快去下载吧!') - } else { - this.$message.warning('没有查询到下载链接.') + if (res && res.m3u8List) { + const list = res.m3u8List.split('#') + let downloadUrl = '' + for (const i of list) { + const url = encodeURI(i.split('$')[1]) + downloadUrl += (url + '\n') } + clipboard.writeText(downloadUrl) + this.$message.success('『MP4』格式的链接已复制, 快去下载吧!') } else { - var m3u8List = {} zy.detail(e.site, e.ids).then(res => { - const dd = res.dl.dd - const type = Object.prototype.toString.call(dd) - if (type === '[object Array]') { - for (const i of dd) { - if (i._flag.indexOf('m3u8') >= 0) { - m3u8List = i._t.split('#') - } - } - } else { - m3u8List = dd._t.split('#') - } - const list = [...m3u8List] + const list = [...res.m3u8List] let downloadUrl = '' for (const i of list) { const url = encodeURI(i.split('$')[1]) diff --git a/src/components/Play.vue b/src/components/Play.vue index 2b93109..abb21b2 100644 --- a/src/components/Play.vue +++ b/src/components/Play.vue @@ -536,25 +536,14 @@ export default { } zy.detail(this.video.key, this.video.info.id).then(res => { this.name = res.name - const dd = res.dl.dd - const type = Object.prototype.toString.call(dd) - let m3u8Txt = [] - if (type === '[object Array]') { - for (const i of dd) { - if (i._t.indexOf('m3u8') >= 0) { - m3u8Txt = i._t.split('#') - } - } - } else { - m3u8Txt = dd._t.split('#') - } + const m3u8Txt = res.m3u8List this.right.list = m3u8Txt const m3u8Arr = [] for (const i of m3u8Txt) { const j = i.split('$') if (j.length > 1) { for (let m = 0; m < j.length; m++) { - if (j[m].indexOf('.m3u8') >= 0 && j[m].startsWith('http')) { + if (j[m].startsWith('http')) { m3u8Arr.push(j[m]) break } diff --git a/src/components/Recommendation.vue b/src/components/Recommendation.vue index 03cf41e..7729b88 100644 --- a/src/components/Recommendation.vue +++ b/src/components/Recommendation.vue @@ -277,8 +277,8 @@ export default { }, downloadEvent (e) { zy.download(e.key, e.ids).then(res => { - if (res && res.dl && res.dl.dd) { - const text = res.dl.dd._t + if (res) { + const text = res.m3u8List if (text) { const list = text.split('#') let downloadUrl = '' @@ -292,20 +292,8 @@ export default { this.$message.warning('没有查询到下载链接.') } } else { - var m3u8List = {} zy.detail(e.key, e.ids).then(res => { - const dd = res.dl.dd - const type = Object.prototype.toString.call(dd) - if (type === '[object Array]') { - for (const i of dd) { - if (i._flag.indexOf('m3u8') >= 0) { - m3u8List = i._t.split('#') - } - } - } else { - m3u8List = dd._t.split('#') - } - const list = [...m3u8List] + const list = [...res.m3u8List] let downloadUrl = '' for (const i of list) { const url = encodeURI(i.split('$')[1]) diff --git a/src/components/Share.vue b/src/components/Share.vue index f0a6541..ef0b771 100644 --- a/src/components/Share.vue +++ b/src/components/Share.vue @@ -74,18 +74,7 @@ export default { zy.detail(this.share.key, id).then(res => { if (res) { this.pic = res.pic - var m3u8List = {} - const dd = res.dl.dd - const type = Object.prototype.toString.call(dd) - if (type === '[object Array]') { - for (const i of dd) { - if (i._flag.indexOf('m3u8') >= 0) { - m3u8List = i._t.split('#') - } - } - } else { - m3u8List = dd._t.split('#') - } + var m3u8List = res.m3u8List const url = m3u8List[1] this.link = 'http://zyplayer.fun/player/player.html?url=' + url + '&title=' + this.share.info.name } diff --git a/src/components/Star.vue b/src/components/Star.vue index f133e5f..1612e30 100644 --- a/src/components/Star.vue +++ b/src/components/Star.vue @@ -300,8 +300,8 @@ export default { }, downloadEvent (e) { zy.download(e.key, e.ids).then(res => { - if (res && res.dl && res.dl.dd) { - const text = res.dl.dd._t + if (res) { + const text = res.m3u8List if (text) { const list = text.split('#') let downloadUrl = '' @@ -315,20 +315,8 @@ export default { this.$message.warning('没有查询到下载链接.') } } else { - var m3u8List = {} zy.detail(e.key, e.ids).then(res => { - const dd = res.dl.dd - const type = Object.prototype.toString.call(dd) - if (type === '[object Array]') { - for (const i of dd) { - if (i._flag.indexOf('m3u8') >= 0) { - m3u8List = i._t.split('#') - } - } - } else { - m3u8List = dd._t.split('#') - } - const list = [...m3u8List] + const list = [...res.m3u8List] let downloadUrl = '' for (const i of list) { const url = encodeURI(i.split('$')[1]) diff --git a/src/lib/site/tools.js b/src/lib/site/tools.js index 5fbd320..d3a35e6 100644 --- a/src/lib/site/tools.js +++ b/src/lib/site/tools.js @@ -228,10 +228,8 @@ const zy = { const type = Object.prototype.toString.call(dd) if (type === '[object Array]') { for (const i of dd) { - if (i._flag.indexOf('m3u8') >= 0) { m3u8List = i._t.split('#') } - } } else { m3u8List = dd._t.split('#') } @@ -262,6 +260,18 @@ const zy = { const json = parser.parse(data, this.xmlConfig) const jsondata = json.rss === undefined ? json : json.rss const videoList = jsondata.list.video + // Parse m3u8List + var m3u8List = [] + const dd = videoList.dl.dd + const type = Object.prototype.toString.call(dd) + if (type === '[object Array]') { + for (const i of dd) { + m3u8List = i._t.split('#') + } + } else { + m3u8List = dd._t.split('#') + } + videoList.m3u8List = m3u8List resolve(videoList) }).catch(err => { reject(err)