Compare commits

...

10 Commits

Author SHA1 Message Date
hunlongyu
b514f1c04e v1.2.6 2020-07-16 00:03:34 +08:00
hunlongyu
189e67eb22 🦺 1.2.5 🥼 2020-07-15 23:55:34 +08:00
hunlongyu
e5c3adf1c5 🎍 1.2.4 🎋 2020-07-15 23:53:53 +08:00
hunlongyu
299367f0b8 修复收藏夹播放多集视频的BUG 🎉 2020-07-15 23:51:27 +08:00
hunlongyu
0d67474459 🎟 版本号 🎫 2020-07-15 17:38:21 +08:00
hunlongyu
15a188aa85 🎍 优化 MINI 模式 🎋 2020-07-15 17:38:00 +08:00
hunlongyu
0555badcfa 🍚 修复列表模式下, 下载BUG 🍜 2020-07-14 16:35:51 +08:00
hunlongyu
6f8f700dfc 🍟 修复BUG 🌭 2020-07-14 15:26:01 +08:00
hunlongyu
001772d75c 🎉 优化搜索 🎊 2020-07-14 00:17:26 +08:00
hunlongyu
a2d2215646 🎆 修复详情页无法播放的BUG 🎇 2020-07-14 00:16:55 +08:00
11 changed files with 82 additions and 45 deletions

View File

@@ -76,7 +76,7 @@
#### 下载:
1. [Github -- 官方下载(最新版)](https://github.com/Hunlongyu/ZY-Player/releases)
1. [Github -- 官方下载(最新内测版)](https://github.com/Hunlongyu/ZY-Player/releases)
2. [蓝奏云 -- 快速下载(老版本)](https://www.lanzous.com/b04s6a3re) 密码:95px

View File

@@ -1,6 +1,6 @@
{
"name": "zy",
"version": "1.2.0",
"version": "1.2.6",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",

View File

@@ -123,7 +123,7 @@ export default {
if (res) {
this.video = { key: res.site, info: { id: res.ids, name: res.name, index: n } }
} else {
this.video = { key: this.detail.key, info: { id: this.detail.info.ids, name: this.detail.info.name, index: n } }
this.video = { key: this.detail.key, info: { id: this.detail.info.id, name: this.detail.info.name, index: n } }
}
})

View File

@@ -28,13 +28,12 @@
</div>
</div>
<div class="body zy-scroll" infinite-wrapper>
<div class="body-box" v-if="!show.find">
<div class="body-box" v-show="!show.find">
<div class="show-img" v-if="setting.view === 'picture'">
<Waterfall :list="list" :gutter="20" :width="240"
<Waterfall ref="waterfall" :list="list" :gutter="20" :width="240"
:breakpoints="{ 1200: { rowPerView: 4 } }"
animationEffect="fadeInUp"
backgroundColor="rgba(0, 0, 0, 0)"
ref="waterfall">
backgroundColor="rgba(0, 0, 0, 0)">
<template slot="item" slot-scope="props">
<div class="card">
<div class="img">
@@ -79,7 +78,7 @@
</div>
</div>
</div>
<div class="body-box" v-if="show.find">
<div class="body-box" v-show="show.find">
<div class="show-table">
<div class="zy-table">
<div class="tBody">
@@ -185,9 +184,9 @@ export default {
searchTxt () {
this.searchChangeEvent()
},
setting: {
handler () {
this.settingChangeEvent()
'setting.site': {
handler (nv) {
this.getAllsites(nv)
},
deep: true
}
@@ -323,7 +322,7 @@ export default {
},
downloadEvent (e) {
zy.download(this.site.key, e.id).then(res => {
if (res) {
if (res.length > 0) {
const text = res.dl.dd._t
if (text) {
const list = text.split('#')
@@ -338,9 +337,20 @@ export default {
this.$message.warning('没有查询到下载链接.')
}
} else {
const list = [...this.m3u8List]
let m3u8List = []
const dd = e.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('#')
}
let downloadUrl = e.name + '\n'
for (const i of list) {
for (const i of m3u8List) {
const url = encodeURI(i.split('$')[1])
downloadUrl += (url + '\n')
}
@@ -351,9 +361,13 @@ export default {
},
changeView () {
if (this.view === 'Film') {
this.$refs.waterfall.refresh()
if (this.show.img) {
this.$refs.waterfall.refresh()
}
this.getPage().then(() => {
this.infiniteId += 1
if (this.show.img || this.show.table) {
}
})
}
},
@@ -367,6 +381,7 @@ export default {
this.searchContents = []
this.pagecount = 0
this.show.search = false
this.show.find = true
if (wd) {
search.find({ keywords: wd }).then(res => {
if (!res) {
@@ -385,7 +400,6 @@ export default {
if (type === '[object Object]') {
this.searchContents.push(res)
}
this.show.find = true
})
} else {
this.show.find = false
@@ -401,6 +415,7 @@ export default {
this.pagecount = 0
this.searchTxt = e.keywords
this.show.search = false
this.show.find = true
search.remove(e.id).then(res => {
search.add({ keywords: e.keywords })
this.getAllSearch()
@@ -416,7 +431,6 @@ export default {
if (type === '[object Object]') {
this.searchContents.push(res)
}
this.show.find = true
})
},
clearSearch () {
@@ -429,17 +443,32 @@ export default {
this.show.class = false
} else {
this.show.class = true
this.searchContents = []
this.show.find = false
if (this.show.img) {
this.$refs.waterfall.refresh()
}
}
},
getAllsites () {
sites.all().then(res => {
this.sites = res
this.site = this.sites[0]
this.siteClick(this.site)
})
},
settingChangeEvent () {
this.getAllsites()
getAllsites (nv) {
if (nv) {
sites.all().then(res => {
this.sites = res
for (const i of res) {
if (i.key === nv) {
this.site = i
this.siteClick(this.site)
return false
}
}
})
} else {
sites.all().then(res => {
this.sites = res
this.site = this.sites[0]
this.siteClick(this.site)
})
}
}
},
created () {

View File

@@ -5,7 +5,7 @@
<span v-if="this.right.list.length > 1"> {{(video.info.index + 1)}} </span>{{name}}
</div>
<div class="player">
<div id="xg"></div>
<div id="xgplayer"></div>
</div>
<div class="more">
<span class="zy-svg" @click="nextEvent" v-show="showNext">
@@ -118,7 +118,7 @@ export default {
history: []
},
config: {
id: 'xg',
id: 'xgplayer',
url: '',
lang: 'zh-cn',
width: '100%',

View File

@@ -207,7 +207,9 @@ export default {
this.$message.success('已添加成功')
this.getSites()
this.d.site = json[0].key
this.setting = this.d
setting.update(this.d).then(res => {
this.setting = this.d
})
})
})
},

View File

@@ -1,9 +1,9 @@
<template>
<div class="share" id="share" @click="shareClickEvent">
<div class="left">
<img :src="pic" alt="">
<img :src="pic" alt="" @load="picLoadEvent">
</div>
<div class="right">
<div class="right" id="right">
<div class="title">{{ share.info.name }}</div>
<qrcode-vue id="qr" :value="link" :size="160" level="L" />
<div class="tips">
@@ -79,17 +79,17 @@ export default {
}
}
this.loading = false
this.$nextTick(() => {
const dom = document.getElementById('share')
html2canvas(dom, { useCORS: true, allowTaint: true }).then(res => {
const png = res.toDataURL('image/png')
const p = nativeImage.createFromDataURL(png)
clipboard.writeImage(p)
this.$message.success('已复制到剪贴板,快去分享吧~ 严禁传播违法资源!!!')
})
})
}
})
},
picLoadEvent () {
const dom = document.getElementById('right')
html2canvas(dom, { useCORS: true, allowTaint: true }).then(res => {
const png = res.toDataURL('image/png')
const p = nativeImage.createFromDataURL(png)
clipboard.writeImage(p)
this.$message.success('已复制到剪贴板,快去分享吧~ 严禁传播违法资源!!!')
})
}
},
mounted () {
@@ -108,7 +108,7 @@ export default {
display: flex;
justify-content: space-between;
align-items: center;
padding: 20px;
padding: 0px;
z-index: 999;
.left, .right{
width: 50%;
@@ -125,6 +125,7 @@ export default {
}
}
.right{
padding: 10px;
.title{
font-size: 18px;
margin-bottom: 10px;

View File

@@ -80,7 +80,10 @@ export default {
this.detail = {
show: true,
key: e.site,
info: e
info: {
id: e.ids,
name: e.name
}
}
},
playEvent (e) {

View File

@@ -15,4 +15,4 @@ app.post('/api', async (req, res) => {
})
})
app.listen(48484)
app.listen(44444)

View File

@@ -2,7 +2,7 @@ import { sites } from '../dexie'
import axios from 'axios'
import parser from 'fast-xml-parser'
const zy = {
ports: 48484, // 端口号
ports: 44444, // 端口号
xmlConfig: { // XML 转 JSON 配置
trimValues: true,
textNodeName: '_t',
@@ -184,7 +184,7 @@ const zy = {
reject(err)
})
} else {
resolve(null)
resolve([])
}
})
})

View File

@@ -177,6 +177,7 @@ export default {
},
prevEvent () {
if (this.video.index === 0) {
this.$message.info('已是第一集.')
return false
}
history.find({ site: this.video.site, ids: this.video.ids }).then(res => {
@@ -192,6 +193,7 @@ export default {
},
nextEvent () {
if (this.video.index >= this.m3u8Arr.length - 1) {
this.$message.info('已是最后一集.')
return false
}
history.find({ site: this.video.site, ids: this.video.ids }).then(res => {