mirror of
https://github.com/cuiocean/ZY-Player.git
synced 2026-02-14 07:55:27 +08:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7aee9b9fbe | ||
|
|
010b488340 | ||
|
|
03c32d8ee2 | ||
|
|
203d2c19fd | ||
|
|
0ed25643fc | ||
|
|
ba99e65bcb | ||
|
|
169b28ab33 | ||
|
|
cbcffd7587 | ||
|
|
fc26c04666 | ||
|
|
e2cda9a100 | ||
|
|
ffe432d19e | ||
|
|
ae31e9ba74 | ||
|
|
24f78563b6 |
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -24,4 +24,4 @@ jobs:
|
||||
yarn release
|
||||
shell: pwsh
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
41
README.md
41
README.md
@@ -24,20 +24,35 @@
|
||||
|
||||
## ZY Player 资源播放器
|
||||
|
||||
1. 全平台支持. windows, mac, linux.
|
||||
2. 12个视频源. 未来更新更多的视频源.
|
||||
3. 新增历史播放记录, 并记录播放进度.
|
||||
4. 新增分享功能. 一键分享海报图片.
|
||||
5. 新增精简模式. 支持修改透明度.
|
||||
6. 全新布局配色.
|
||||
7. 新增多语言.
|
||||
8. 下载功能 (最大资源网和OK资源网支持下载.)
|
||||
9. 更详细的视频分类
|
||||
10. 收藏夹同步更新视频追剧.(手动更新)
|
||||
11. 后台自动更新
|
||||
1. 全平台支持. Windows, Mac, Linux
|
||||
2. 12个视频源. 未来更新更多的视频源
|
||||
3. 新增历史播放记录, 并记录播放进度
|
||||
4. 新增分享功能. 一键分享海报图片
|
||||
5. 新增精简模式. 支持修改透明度
|
||||
6. 收藏夹同步更新视频追剧
|
||||
7. 支持演员名称搜索
|
||||
8. 更详细的视频分类
|
||||
9. 后台自动更新
|
||||
10. 全新布局配色
|
||||
11. 新增多语言
|
||||
12. 全局快捷键
|
||||
13. 下载功能
|
||||
14. ...
|
||||
|
||||
觉得软件不错的, 点击右上角 star 收藏关注一波呀~
|
||||
<img height="30" src="https://i.loli.net/2020/05/09/cNnvGobekWEqfjZ.jpg">
|
||||
|
||||
> Tips: 资源加载不出来时, 点击列表下方链接, 浏览器打开一下网站. 原理是需要通过网站的人机检测.
|
||||
|
||||
#### 全局快捷键:
|
||||
|
||||
| 快捷键 | 说明 | 主界面 | 小窗口 |
|
||||
| :----------------------: | ---------- | :----: | :----: |
|
||||
| `⌘ + →` 或 `Ctrl + →` | 下一集 | √ | √ |
|
||||
| `⌘ + ←` 或 `Ctrl + ←` | 上一集 | √ | √ |
|
||||
| `⌘ + ↑` 或 `Ctrl + ↑` | 减少透明度 | | √ |
|
||||
| `⌘ + ↓` 或 `Ctrl + ↓` | 增加透明度 | | √ |
|
||||
| `Shift + ↑` | 增加倍速 + 0.25 | √ | √ |
|
||||
| `Shift + ↓` | 减少倍速 - 0.25 | √ | √ |
|
||||
|
||||
#### 下载:
|
||||
|
||||
@@ -49,7 +64,7 @@
|
||||
1. 浏览 ⇣ ↓
|
||||

|
||||
2. 搜索 ⇣ ↓
|
||||

|
||||

|
||||
3. 详情 ⇣ ↓
|
||||

|
||||
4. 播放 ⇣ ↓
|
||||
|
||||
@@ -233,7 +233,7 @@
|
||||
<h4>友情链接</h4>
|
||||
<ul>
|
||||
<li><i class="bx bx-chevron-right"></i> <a target="_blank" href="#">Home</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a target="_blank" href="https://github.com/Hunlongyu/ZY-Player">Github</a></li>
|
||||
<li><i class="bx bx-chevron-right"></i> <a target="_blank" href="https://www.ghpym.com/zyplayer.html">果核剥壳</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
16
package.json
16
package.json
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "zy",
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.12",
|
||||
"private": true,
|
||||
"author": {
|
||||
"name": "Hunlongyu",
|
||||
@@ -23,17 +23,17 @@
|
||||
"axios": "^0.19.2",
|
||||
"core-js": "^3.6.5",
|
||||
"dexie": "^2.0.4",
|
||||
"electron-updater": "^4.2.5",
|
||||
"element-ui": "^2.13.1",
|
||||
"electron-updater": "^4.3.1",
|
||||
"element-ui": "^2.13.2",
|
||||
"html2canvas": "^1.0.0-rc.5",
|
||||
"leancloud-storage": "^4.5.3",
|
||||
"macaddress": "^0.2.9",
|
||||
"macaddress": "^0.5.1",
|
||||
"modern-normalize": "^0.6.0",
|
||||
"qrcode.vue": "^1.7.0",
|
||||
"vue": "^2.6.11",
|
||||
"vue-i18n": "^8.17.0",
|
||||
"vuex": "^3.1.3",
|
||||
"xgplayer": "^2.6.24",
|
||||
"vue-i18n": "^8.17.7",
|
||||
"vuex": "^3.4.0",
|
||||
"xgplayer": "^2.7.1",
|
||||
"xgplayer-hls.js": "^2.2.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -44,7 +44,7 @@
|
||||
"@vue/eslint-config-standard": "^5.1.2",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-plugin-component": "^1.1.1",
|
||||
"electron": "^8.3.0",
|
||||
"electron": "^9.0.0",
|
||||
"eslint": "^6.7.2",
|
||||
"eslint-plugin-import": "^2.20.2",
|
||||
"eslint-plugin-node": "^11.1.0",
|
||||
|
||||
@@ -151,6 +151,9 @@
|
||||
padding-left: 10px;
|
||||
font-size: 12px;
|
||||
}
|
||||
.btn{
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
import path from 'path'
|
||||
import { autoUpdater } from 'electron-updater'
|
||||
const isDevelopment = process.env.NODE_ENV !== 'production'
|
||||
const globalShortcut = require('electron').globalShortcut
|
||||
const globalShortcut = require('electron').globalShortcut
|
||||
|
||||
let win
|
||||
let mini
|
||||
@@ -75,6 +75,10 @@ function createMini () {
|
||||
}
|
||||
|
||||
app.allowRendererProcessReuse = true
|
||||
app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors')
|
||||
if (process.platform === 'Linux') {
|
||||
app.disableHardwareAcceleration()
|
||||
}
|
||||
|
||||
app.on('window-all-closed', () => {
|
||||
if (process.platform !== 'darwin') {
|
||||
@@ -153,6 +157,22 @@ if (!gotTheLock) {
|
||||
mini.webContents.send('down', 0)
|
||||
}
|
||||
})
|
||||
globalShortcut.register('shift+up', function () {
|
||||
if (win) {
|
||||
win.webContents.send('playbackRateUp', 0)
|
||||
}
|
||||
if (mini) {
|
||||
mini.webContents.send('playbackRateUp', 0)
|
||||
}
|
||||
})
|
||||
globalShortcut.register('shift+down', function () {
|
||||
if (win) {
|
||||
win.webContents.send('playbackRateDown', 0)
|
||||
}
|
||||
if (mini) {
|
||||
mini.webContents.send('playbackRateDown', 0)
|
||||
}
|
||||
})
|
||||
if (!process.env.WEBPACK_DEV_SERVER_URL) {
|
||||
createProtocol('app')
|
||||
}
|
||||
|
||||
@@ -136,10 +136,10 @@ export default {
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 680px;
|
||||
height: calc(100% - 40px);
|
||||
z-index: 999;
|
||||
.detail-content{
|
||||
height: 680px;
|
||||
height: calc(100% - 10px);
|
||||
padding: 0 60px;
|
||||
position: relative;
|
||||
.detail-header{
|
||||
@@ -157,14 +157,14 @@ export default {
|
||||
}
|
||||
}
|
||||
.detail-body{
|
||||
height: 630px;
|
||||
height: calc(100% - 50px);
|
||||
overflow-y: auto;
|
||||
.info{
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
width: 955px;
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
border: 1px solid;
|
||||
border-radius: 2px;
|
||||
@@ -256,7 +256,7 @@ export default {
|
||||
.desc{
|
||||
border: 1px solid;
|
||||
padding: 10px;
|
||||
width: 955px;
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
border-radius: 2px;
|
||||
font-size: 14px;
|
||||
@@ -265,7 +265,7 @@ export default {
|
||||
.m3u8_urls, .mp4_urls{
|
||||
border: 1px solid;
|
||||
padding: 10px;
|
||||
width: 955px;
|
||||
width: 100%;
|
||||
margin-bottom: 10px;
|
||||
border-radius: 2px;
|
||||
.title{
|
||||
@@ -295,10 +295,11 @@ export default {
|
||||
}
|
||||
}
|
||||
.detail-mask{
|
||||
width: 980px;
|
||||
height: 600px;
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: calc(100 - 50px);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
@@ -69,6 +69,7 @@
|
||||
</div>
|
||||
<div class="tFooter">
|
||||
<span class="tFooter-span">今日更新: {{ tb.update }} 条</span>
|
||||
<span class="tFooter-span btn" @click="goWebsite">加载不出来,点这里</span>
|
||||
<el-pagination small :page-size="tb.size" :total="tb.total" :current-page="tb.page" @current-change="tbPageChange" layout="total, prev, pager, next, jumper"></el-pagination>
|
||||
</div>
|
||||
</div>
|
||||
@@ -81,6 +82,7 @@ import { sites, getSite } from '../lib/site/sites'
|
||||
import tools from '../lib/site/tools'
|
||||
import video from '../lib/dexie/video'
|
||||
import setting from '../lib/dexie/setting'
|
||||
import { shell } from 'electron'
|
||||
const { clipboard } = require('electron')
|
||||
export default {
|
||||
name: 'film',
|
||||
@@ -297,6 +299,9 @@ export default {
|
||||
this.tb.list = res.list
|
||||
this.tb.loading = false
|
||||
})
|
||||
},
|
||||
goWebsite () {
|
||||
shell.openExternal(this.site.url)
|
||||
}
|
||||
},
|
||||
created () {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<div class="play">
|
||||
<div class="box">
|
||||
<div class="title">{{name}}</div>
|
||||
<div class="title" v-if="length === 1">{{name}}</div>
|
||||
<div class="title" v-if="length > 1">『第 {{(video.index + 1)}} 集』 {{name}}</div>
|
||||
<div class="xgBox">
|
||||
<div id="xg"></div>
|
||||
</div>
|
||||
@@ -136,6 +137,7 @@ export default {
|
||||
playbackRate: [0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 3, 4, 5]
|
||||
},
|
||||
name: '',
|
||||
length: 0,
|
||||
timer: null,
|
||||
scroll: false,
|
||||
more: true,
|
||||
@@ -208,42 +210,48 @@ export default {
|
||||
this.xg.pause()
|
||||
}
|
||||
this.changeVideo()
|
||||
tools.detail_get(this.video.site, this.video.detail).then(res => {
|
||||
this.name = this.video.name
|
||||
this.right.listData = res.m3u8_urls
|
||||
if (res.m3u8_urls.length > 1) {
|
||||
const m3 = res.m3u8_urls
|
||||
history.find({ detail: this.video.detail }).then(item => {
|
||||
let index = 1
|
||||
let time = 0
|
||||
if (item) {
|
||||
index = item.index
|
||||
if (this.video.index === index) {
|
||||
time = item.currentTime
|
||||
}
|
||||
}
|
||||
tools.detail_get(this.video.site, this.video.detail).then(res => {
|
||||
this.name = this.video.name
|
||||
this.right.listData = res.m3u8_urls
|
||||
|
||||
const m = res.m3u8_urls
|
||||
const arr = []
|
||||
for (const i of m3) {
|
||||
for (const i of m) {
|
||||
arr.push(i.split('$')[1])
|
||||
}
|
||||
this.xg.src = arr[this.video.index]
|
||||
this.showNext = true
|
||||
} else {
|
||||
const link = res.m3u8_urls[this.video.index]
|
||||
const src = link.split('$')[1]
|
||||
this.xg.src = src
|
||||
this.showNext = false
|
||||
}
|
||||
const currentTime = this.video.currentTime
|
||||
if (currentTime !== '') {
|
||||
this.xg.play()
|
||||
this.xg.once('playing', () => {
|
||||
this.xg.currentTime = currentTime
|
||||
})
|
||||
} else {
|
||||
this.xg.play()
|
||||
}
|
||||
this.xg.once('play', () => {
|
||||
this.mask = false
|
||||
})
|
||||
this.onPlayVideo()
|
||||
this.xg.once('ended', () => {
|
||||
if (res.m3u8_urls.length > 1 && (res.m3u8_urls.length - 1 > this.video.index)) {
|
||||
this.video.currentTime = 0
|
||||
this.video.index++
|
||||
this.length = arr.length
|
||||
this.xg.src = arr[index]
|
||||
this.showNext = this.length > 1
|
||||
|
||||
const currentTime = time
|
||||
if (currentTime !== 0) {
|
||||
this.xg.play()
|
||||
this.xg.once('playing', () => {
|
||||
this.xg.currentTime = currentTime
|
||||
})
|
||||
} else {
|
||||
this.xg.play()
|
||||
}
|
||||
this.xg.off('ended')
|
||||
this.xg.once('play', () => {
|
||||
this.mask = false
|
||||
})
|
||||
this.onPlayVideo()
|
||||
this.xg.once('ended', () => {
|
||||
if (res.m3u8_urls.length > 1 && (res.m3u8_urls.length - 1 > this.video.index)) {
|
||||
this.video.currentTime = 0
|
||||
this.video.index++
|
||||
}
|
||||
this.xg.off('ended')
|
||||
})
|
||||
})
|
||||
})
|
||||
},
|
||||
@@ -292,6 +300,14 @@ export default {
|
||||
history.update(res.id, h)
|
||||
}
|
||||
})
|
||||
video.find({ detail: d }).then(res => {
|
||||
if (res) {
|
||||
const h = { ...this.video }
|
||||
delete h.id
|
||||
delete h.currentTime
|
||||
video.update(res.id, h)
|
||||
}
|
||||
})
|
||||
}, 10000)
|
||||
},
|
||||
closeEvent () {
|
||||
@@ -407,6 +423,14 @@ export default {
|
||||
this.right.historyData = e.reverse()
|
||||
})
|
||||
})
|
||||
},
|
||||
playbackRateEvent (e) {
|
||||
let rate = this.xg.playbackRate
|
||||
if (rate > 0.25) {
|
||||
rate = rate + e
|
||||
this.xg.playbackRate = rate
|
||||
this.$m.success(this.$t('rate') + rate)
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
@@ -428,6 +452,20 @@ export default {
|
||||
}
|
||||
}
|
||||
})
|
||||
ipc.on('playbackRateUp', () => {
|
||||
if (this.xg) {
|
||||
if (this.xg.hasStart) {
|
||||
this.playbackRateEvent(0.25)
|
||||
}
|
||||
}
|
||||
})
|
||||
ipc.on('playbackRateDown', () => {
|
||||
if (this.xg) {
|
||||
if (this.xg.hasStart) {
|
||||
this.playbackRateEvent(-0.25)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -1,32 +1,43 @@
|
||||
import setting from '../dexie/setting'
|
||||
|
||||
const os = require('os')
|
||||
const macadress = require('macaddress')
|
||||
const macaddress = require('macaddress')
|
||||
const AV = require('leancloud-storage')
|
||||
|
||||
setting.find().then(res => {
|
||||
const cloud = res.cloud
|
||||
if (!cloud) {
|
||||
macadress.one((err, mac) => {
|
||||
if (err) {
|
||||
return false
|
||||
}
|
||||
const system = os.hostname() + ' ' + os.type() + ' ' + os.arch()
|
||||
AV.init({
|
||||
appId: 'X6TRIcMjgOG7EJ0t1l5r9In1-gzGzoHsz',
|
||||
appKey: 'JmkGF9UqkWGQNYDcJ2g1QV1b',
|
||||
serverURL: 'https://x6tricmj.lc-cn-n1-shared.com'
|
||||
})
|
||||
macaddress.one((err, mac) => {
|
||||
if (err) {
|
||||
return false
|
||||
}
|
||||
AV.init({
|
||||
appId: 'X6TRIcMjgOG7EJ0t1l5r9In1-gzGzoHsz',
|
||||
appKey: 'JmkGF9UqkWGQNYDcJ2g1QV1b',
|
||||
serverURL: 'https://x6tricmj.lc-cn-n1-shared.com'
|
||||
})
|
||||
const system = os.hostname() + ' ' + os.type() + ' ' + os.arch()
|
||||
const query = new AV.Query('ZYPlayer')
|
||||
query.equalTo('os', system)
|
||||
query.equalTo('mac', mac)
|
||||
query.find().then(res => {
|
||||
// 存储新用户数据
|
||||
if (res.length === 0) {
|
||||
const ZYPlayer = AV.Object.extend('ZYPlayer')
|
||||
const zyPlayer = new ZYPlayer()
|
||||
zyPlayer.set('os', system)
|
||||
zyPlayer.set('mac', mac)
|
||||
zyPlayer.save().then(e => {
|
||||
const id = e.id
|
||||
res.cloud = true
|
||||
res.cloudKey = id
|
||||
setting.update(res)
|
||||
})
|
||||
})
|
||||
}
|
||||
zyPlayer.save()
|
||||
return false
|
||||
}
|
||||
// 统计启动次数
|
||||
if (res.length === 1) {
|
||||
const id = res[0].id
|
||||
const times = AV.Object.createWithoutData('ZYPlayer', id)
|
||||
times.increment('times', 1)
|
||||
times.save()
|
||||
return false
|
||||
}
|
||||
// 清除冗余数据
|
||||
if (res.length > 1) {
|
||||
const arr = res
|
||||
arr.shift()
|
||||
AV.Object.destroyAll(arr)
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
@@ -47,5 +47,6 @@
|
||||
"async_success": "Synchronization succeeded, update found.",
|
||||
"no_history": "No history data.",
|
||||
"clearDB": "Reset software",
|
||||
"clearTips": "Click to clear the database and close the software"
|
||||
"clearTips": "Click to clear the database and close the software",
|
||||
"rate": "The current video speed is: "
|
||||
}
|
||||
|
||||
@@ -47,5 +47,6 @@
|
||||
"async_success": "同步成功, 查询到更新。",
|
||||
"no_history": "无历史记录",
|
||||
"clearDB": "重置软件",
|
||||
"clearTips": "软件没有问题,请勿重置软件,否则数据丢失概不负责.点击即清空数据库,并关闭软件."
|
||||
"clearTips": "软件没有问题,请勿重置软件,否则数据丢失概不负责.点击即清空数据库,并关闭软件.",
|
||||
"rate": "当前视频播放倍速为:"
|
||||
}
|
||||
|
||||
@@ -92,6 +92,7 @@ export default {
|
||||
this.xg.on('ended', () => {
|
||||
if (this.d.m3u8_urls.length > 1 && (this.d.m3u8_urls.length - 1 > this.index)) {
|
||||
this.video.currentTime = 0
|
||||
this.video.index++
|
||||
this.index++
|
||||
let src = this.d.m3u8_urls[this.index]
|
||||
src = src.split('$')[1]
|
||||
@@ -122,6 +123,7 @@ export default {
|
||||
if (res) {
|
||||
const v = res
|
||||
v.currentTime = this.xg.currentTime
|
||||
v.index = this.index
|
||||
const id = v.id
|
||||
delete v.id
|
||||
history.update(id, v)
|
||||
@@ -162,6 +164,13 @@ export default {
|
||||
this.index++
|
||||
})
|
||||
})
|
||||
},
|
||||
playbackRateEvent (e) {
|
||||
let rate = this.xg.playbackRate
|
||||
if (rate > 0.25) {
|
||||
rate = rate + e
|
||||
this.xg.playbackRate = rate
|
||||
}
|
||||
}
|
||||
},
|
||||
created () {
|
||||
@@ -195,6 +204,20 @@ export default {
|
||||
this.opacityChange(this.opacity)
|
||||
}
|
||||
})
|
||||
ipc.on('playbackRateUp', () => {
|
||||
if (this.xg) {
|
||||
if (this.xg.hasStart) {
|
||||
this.playbackRateEvent(0.25)
|
||||
}
|
||||
}
|
||||
})
|
||||
ipc.on('playbackRateDown', () => {
|
||||
if (this.xg) {
|
||||
if (this.xg.hasStart) {
|
||||
this.playbackRateEvent(-0.25)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
40
yarn.lock
40
yarn.lock
@@ -3636,9 +3636,9 @@ electron-to-chromium@^1.3.413:
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/electron-to-chromium/-/electron-to-chromium-1.3.445.tgz#ce2a2989864d233eeb80437b13069dbca900cd00"
|
||||
integrity sha512-utucmBYnRyjO3GCsgn7vwTJyDWIyftZW5vuGoxHj2Mnt6yF/alOq1ZGqBGNVZs/vKvgfNZu56y5xpn37i3n0ew==
|
||||
|
||||
electron-updater@^4.2.5:
|
||||
electron-updater@^4.3.1:
|
||||
version "4.3.1"
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/electron-updater/-/electron-updater-4.3.1.tgz#9d485b6262bc56fcf7ee62b1dc1b3b105a3e96a7"
|
||||
resolved "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.1.tgz#9d485b6262bc56fcf7ee62b1dc1b3b105a3e96a7"
|
||||
integrity sha512-UDC5AHCgeiHJYDYWZG/rsl1vdAFKqI/Lm7whN57LKAk8EfhTewhcEHzheRcncLgikMcQL8gFo1KeX51tf5a5Wg==
|
||||
dependencies:
|
||||
"@types/semver" "^7.1.0"
|
||||
@@ -3649,18 +3649,18 @@ electron-updater@^4.2.5:
|
||||
lodash.isequal "^4.5.0"
|
||||
semver "^7.1.3"
|
||||
|
||||
electron@^8.3.0:
|
||||
version "8.3.0"
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/electron/-/electron-8.3.0.tgz#c2b565a4c10d6d287d20164bcd5a478468b940a9"
|
||||
integrity sha512-XRjiIJICZCgUr2vKSUI2PTkfP0gPFqCtqJUaTJSfCTuE3nTrxBKOUNeRMuCzEqspKkpFQU3SB3MdbMSHmZARlQ==
|
||||
electron@^9.0.0:
|
||||
version "9.0.0"
|
||||
resolved "https://registry.npmjs.org/electron/-/electron-9.0.0.tgz#335cd426a8a542ad8d4c96c0c40a8668ab5527b8"
|
||||
integrity sha512-JsaSQNPh+XDYkLj8APtVKTtvpb86KIG57W5OOss4TNrn8L3isC9LsCITwfnVmGIXHhvX6oY/weCtN5hAAytjVg==
|
||||
dependencies:
|
||||
"@electron/get" "^1.0.1"
|
||||
"@types/node" "^12.0.12"
|
||||
extract-zip "^1.0.3"
|
||||
|
||||
element-ui@^2.13.1:
|
||||
element-ui@^2.13.2:
|
||||
version "2.13.2"
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/element-ui/-/element-ui-2.13.2.tgz#582bf47aaaaaafe23ea1958fae217a687ad06447"
|
||||
resolved "https://registry.npmjs.org/element-ui/-/element-ui-2.13.2.tgz#582bf47aaaaaafe23ea1958fae217a687ad06447"
|
||||
integrity sha512-r761DRPssMPKDiJZWFlG+4e4vr0cRG/atKr3Eqr8Xi0tQMNbtmYU1QXvFnKiFPFFGkgJ6zS6ASkG+sellcoHlQ==
|
||||
dependencies:
|
||||
async-validator "~1.8.1"
|
||||
@@ -6209,10 +6209,10 @@ lru-cache@^5.1.1:
|
||||
dependencies:
|
||||
yallist "^3.0.2"
|
||||
|
||||
macaddress@^0.2.9:
|
||||
version "0.2.9"
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/macaddress/-/macaddress-0.2.9.tgz#3579b8b9acd5b96b4553abf0f394185a86813cb3"
|
||||
integrity sha512-k4F1JUof6cQXxNFzx3thLby4oJzXTXQueAOOts944Vqizn+Rjc2QNFenT9FJSLU1CH3PmrHRSyZs2E+Cqw+P2w==
|
||||
macaddress@^0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.npmjs.org/macaddress/-/macaddress-0.5.1.tgz#5d717ad50337f96085655d5db06ebc60df11fc59"
|
||||
integrity sha512-et8b+V48uHaOB2fyNhPWwlm2PenfcfkGmHUwuVT3lxFEhfwaKwq5VmM4Cw4MYDwMrujvF0ktA2sSJidCjZBSzg==
|
||||
|
||||
make-dir@^2.0.0:
|
||||
version "2.1.0"
|
||||
@@ -9713,9 +9713,9 @@ vue-hot-reload-api@^2.3.0:
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
|
||||
integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
|
||||
|
||||
vue-i18n@^8.17.0:
|
||||
vue-i18n@^8.17.7:
|
||||
version "8.17.7"
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/vue-i18n/-/vue-i18n-8.17.7.tgz#d87e653e815a07f86e2c2dfe35261e6ea105c38a"
|
||||
resolved "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.17.7.tgz#d87e653e815a07f86e2c2dfe35261e6ea105c38a"
|
||||
integrity sha512-7IQJ+72IIIxfR6Mt+X6EDmMP1i5oETFpc0FttnWKA9cgacf1DAlyho1aTItekG+AkbNs6nz4q3sYrXaPdC0irA==
|
||||
|
||||
vue-loader@^15.9.1:
|
||||
@@ -9755,9 +9755,9 @@ vue@^2.6.11:
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/vue/-/vue-2.6.11.tgz#76594d877d4b12234406e84e35275c6d514125c5"
|
||||
integrity sha512-VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==
|
||||
|
||||
vuex@^3.1.3:
|
||||
vuex@^3.4.0:
|
||||
version "3.4.0"
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/vuex/-/vuex-3.4.0.tgz#20cc086062d750769fce1febb34e7fceeaebde45"
|
||||
resolved "https://registry.npmjs.org/vuex/-/vuex-3.4.0.tgz#20cc086062d750769fce1febb34e7fceeaebde45"
|
||||
integrity sha512-ajtqwEW/QhnrBZQsZxCLHThZZaa+Db45c92Asf46ZDXu6uHXgbfVuBaJ4gzD2r4UX0oMJHstFwd2r2HM4l8umg==
|
||||
|
||||
watchpack-chokidar2@^2.0.0:
|
||||
@@ -10060,10 +10060,10 @@ xgplayer-hls.js@^2.2.2:
|
||||
deepmerge "2.0.1"
|
||||
event-emitter "^0.3.5"
|
||||
|
||||
xgplayer@^2.6.24:
|
||||
version "2.7.0"
|
||||
resolved "https://mirrors.huaweicloud.com/repository/npm/xgplayer/-/xgplayer-2.7.0.tgz#71238f558d12e614f6f872caa20e9bffff9acf54"
|
||||
integrity sha512-bb1z7XmlO3vugvjTfXrD/NJh/ipI2rh5cjUuc+syn0yYJuwcLXytcHzuKmXFccwfmXKF2VmdcItKDC3ZViIUSQ==
|
||||
xgplayer@^2.7.1:
|
||||
version "2.7.1"
|
||||
resolved "https://registry.npmjs.org/xgplayer/-/xgplayer-2.7.1.tgz#dcb0dcce709d744d3f8fb4d86271188471bbcf46"
|
||||
integrity sha512-MpKKIc/9RLULLKE69EIkVQgfmoTTj9/1CI4bwU9VYKgYIj3Px0zMf5G0hYDI362yHXukM4HZZ8LMMUfWm7DcIQ==
|
||||
dependencies:
|
||||
chalk "^2.3.2"
|
||||
commander "^2.15.1"
|
||||
|
||||
Reference in New Issue
Block a user