From 205b9d79796e802e8714ce70bd2a15bb8e22ed85 Mon Sep 17 00:00:00 2001 From: buvta <12312540+buvta@users.noreply.github.com> Date: Wed, 30 Dec 2020 17:12:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=86=99zy.download=E4=BB=A5=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Detail.vue | 32 ++++++---------------------- src/components/Film.vue | 31 ++++++--------------------- src/components/History.vue | 31 ++++++--------------------- src/components/Recommendation.vue | 31 ++++++--------------------- src/components/Star.vue | 31 ++++++--------------------- src/lib/site/tools.js | 35 ++++++++++++++++++++++++------- 6 files changed, 58 insertions(+), 133 deletions(-) diff --git a/src/components/Detail.vue b/src/components/Detail.vue index 296620e..0f7e783 100644 --- a/src/components/Detail.vue +++ b/src/components/Detail.vue @@ -238,32 +238,12 @@ export default { } }, downloadEvent () { - const key = this.detail.key - const id = this.info.id - zy.download(key, id).then(res => { - if (res && res.downloadUrls) { - const list = res.downloadUrls - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('调用下载接口获取到的链接已复制, 快去下载吧!') - } else { - zy.detail(key, id).then(res => { - // 只使用第一个视频列表 - const list = [...res.fullList[0].list] - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('视频源链接已复制, 快去下载吧!') - }) - } - }).catch((err) => { this.$message.error('无法获取到链接,请通过播放页面点击“调试”按钮获取', err) }) + zy.download(this.detail.key, this.info.id).then(res => { + clipboard.writeText(res.downloadUrls) + this.$message.success(res.info) + }).catch((err) => { + this.$message.error(err.info) + }) }, shareEvent () { this.share = { diff --git a/src/components/Film.vue b/src/components/Film.vue index ff2b874..4ca8c7a 100644 --- a/src/components/Film.vue +++ b/src/components/Film.vue @@ -737,31 +737,12 @@ export default { } }, downloadEvent (site, row) { - const key = site.key - const id = row.id - zy.download(key, id).then(res => { - if (res && res.downloadUrls) { - const list = res.downloadUrls - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('调用下载接口获取到的链接已复制, 快去下载吧!') - } else { - zy.detail(key, id).then(res => { - const list = [...res.m3u8List] - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('视频源链接已复制, 快去下载吧!') - }) - } - }).catch((err) => { this.$message.error('无法获取到链接,请通过播放页面点击“调试”按钮获取', err) }) + zy.download(site.key, row.id).then(res => { + clipboard.writeText(res.downloadUrls) + this.$message.success(res.info) + }).catch((err) => { + this.$message.error(err.info) + }) }, querySearch (queryString, cb) { var searchList = this.searchList.slice(0, -1) diff --git a/src/components/History.vue b/src/components/History.vue index ab0292d..29c6942 100644 --- a/src/components/History.vue +++ b/src/components/History.vue @@ -255,31 +255,12 @@ export default { } }, downloadEvent (e) { - const key = e.site - const id = e.ids - zy.download(key, id).then(res => { - if (res && res.downloadUrls) { - const list = res.downloadUrls - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('调用下载接口获取到的链接已复制, 快去下载吧!') - } else { - zy.detail(key, id).then(res => { - const list = [...res.m3u8List] - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('视频源链接已复制, 快去下载吧!') - }) - } - }).catch((err) => { this.$message.error('无法获取到下载链接,请通过播放页面点击“调试”按钮获取', err) }) + zy.download(e.site, e.ids).then(res => { + clipboard.writeText(res.downloadUrls) + this.$message.success(res.info) + }).catch((err) => { + this.$message.error(err.info) + }) }, exportHistory () { this.getAllhistory() diff --git a/src/components/Recommendation.vue b/src/components/Recommendation.vue index a4b040f..5707aa2 100644 --- a/src/components/Recommendation.vue +++ b/src/components/Recommendation.vue @@ -280,31 +280,12 @@ export default { } }, downloadEvent (e) { - const key = e.key - const id = e.ids - zy.download(key, id).then(res => { - if (res && res.downloadUrls) { - const list = res.downloadUrls - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('调用下载接口获取到的链接已复制, 快去下载吧!') - } else { - zy.detail(key, id).then(res => { - const list = [...res.m3u8List] - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('视频源链接已复制, 快去下载吧!') - }) - } - }).catch((err) => { this.$message.error('无法获取到链接,请通过播放页面点击“调试”按钮获取', err) }) + zy.download(e.key, e.ids).then(res => { + clipboard.writeText(res.downloadUrls) + this.$message.success(res.info) + }).catch((err) => { + this.$message.error(err.info) + }) }, getRecommendations () { recommendation.all().then(res => { diff --git a/src/components/Star.vue b/src/components/Star.vue index a6f9352..d0ee489 100644 --- a/src/components/Star.vue +++ b/src/components/Star.vue @@ -340,31 +340,12 @@ export default { }) }, downloadEvent (e) { - const key = e.key - const id = e.ids - zy.download(key, id).then(res => { - if (res && res.downloadUrls) { - const list = res.downloadUrls - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('调用下载接口获取到的链接已复制, 快去下载吧!') - } else { - zy.detail(key, id).then(res => { - const list = [...res.m3u8List] - let downloadUrl = '' - for (const i of list) { - const url = encodeURI(i.split('$')[1]) - downloadUrl += (url + '\n') - } - clipboard.writeText(downloadUrl) - this.$message.success('视频源链接已复制, 快去下载吧!') - }) - } - }).catch((err) => { this.$message.error('无法获取到链接,请通过播放页面点击“调试”按钮获取', err) }) + zy.download(e.key, e.ids).then(res => { + clipboard.writeText(res.downloadUrls) + this.$message.success(res.info) + }).catch((err) => { + this.$message.error(err.info) + }) }, getSiteName (row) { if (row.site) { diff --git a/src/lib/site/tools.js b/src/lib/site/tools.js index dc4f081..f75a9ec 100644 --- a/src/lib/site/tools.js +++ b/src/lib/site/tools.js @@ -287,6 +287,8 @@ const zy = { */ download (key, id) { return new Promise((resolve, reject) => { + let info = '' + let downloadUrls = [] this.getSite(key).then(res => { const site = res if (site.download) { @@ -296,23 +298,42 @@ const zy = { const json = parser.parse(data, this.xmlConfig) const jsondata = json.rss === undefined ? json : json.rss const videoList = jsondata.list.video - var downloadUrls = [] const dd = videoList.dl.dd const type = Object.prototype.toString.call(dd) if (type === '[object Array]') { for (const i of dd) { - downloadUrls = i._t.split('#') + downloadUrls = i._t.split('#').map(e => encodeURI(e.split('$')[1])).join('\n') } } else { - downloadUrls = dd._t.split('#') + downloadUrls = dd._t.split('#').map(e => encodeURI(e.split('$')[1])).join('\n') } - videoList.downloadUrls = downloadUrls - resolve(videoList) - }).catch(err => { + if (downloadUrls) { + info = '调用下载接口获取到的链接已复制, 快去下载吧!' + resolve({ downloadUrls: downloadUrls, info: info }) + } else { + throw new Error() + } + }).catch((err) => { + err.info = '无法获取到下载链接,请通过播放页面点击“调试”按钮获取' reject(err) }) } else { - resolve([]) + zy.detail(key, id).then(res => { + const list = [...res.m3u8List] + for (const i of list) { + const url = encodeURI(i.split('$')[1]) + downloadUrls += (url + '\n') + } + if (downloadUrls) { + info = '视频源链接已复制, 快去下载吧!' + resolve({ downloadUrls: downloadUrls, info: info }) + } else { + throw new Error() + } + }).catch((err) => { + err.info = '无法获取到下载链接,请通过播放页面点击“调试”按钮获取' + reject(err) + }) } }) })