改写zy.download以优化代码

This commit is contained in:
buvta
2020-12-30 17:12:26 +08:00
parent d5a7771a67
commit 205b9d7979
6 changed files with 58 additions and 133 deletions

View File

@@ -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 = {

View File

@@ -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)

View File

@@ -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()

View File

@@ -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 => {

View File

@@ -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) {

View File

@@ -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)
})
}
})
})