Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
aea794bf29 | ||
|
|
636ef602b1 | ||
|
|
b75de05f09 | ||
|
|
9a14219418 | ||
|
|
2a0afa6ce0 | ||
|
|
f003b1b148 | ||
|
|
55ac770461 | ||
|
|
4505186307 | ||
|
|
9ce1a8ddf6 | ||
|
|
ee1fb8fbe5 | ||
|
|
8bee55f706 | ||
|
|
7c5dd0be8d | ||
|
|
ffee7321a0 | ||
|
|
1ab025ccfe | ||
|
|
0e359be8a3 | ||
|
|
d9122fd24e | ||
|
|
a746de8294 | ||
|
|
f56b81ab9b | ||
|
|
be784c9d60 | ||
|
|
fd715b7cfe | ||
|
|
6979d14f35 | ||
|
|
be6b4b0d78 | ||
|
|
90b466e958 | ||
|
|
4b6485a922 | ||
|
|
7e4f1f9127 |
22
README.md
@@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<img src="https://i.loli.net/2020/01/20/WEj3Yw8rPXqTcHe.png" >
|
||||
<img src="https://i.loli.net/2020/02/22/jvfBbnEuOq5RS9J.png" >
|
||||
</p>
|
||||
<p align="center">
|
||||
<img src="https://forthebadge.com/images/badges/built-with-love.svg">
|
||||
@@ -12,8 +12,17 @@
|
||||
<p>
|
||||
|
||||
# ZY Player
|
||||
资源播放器, 提供影视资源的浏览,搜索,播放,收藏,查看详情.
|
||||
1. 视频连播
|
||||
2. 手机观看
|
||||
3. 分享资源
|
||||
4. 多主题
|
||||
5. ...
|
||||
|
||||
资源播放器, 提供影视资源的浏览,搜索,播放,收藏,查看详情等功能.
|
||||
### 下载:
|
||||
[Github Release 实时更新,保证最新版](https://github.com/Hunlongyu/ZY-Player/releases)
|
||||
|
||||
[蓝奏云 快速下载通道](https://www.lanzous.com/b04s6a3re) 密码:95px
|
||||
|
||||
### 截图:
|
||||
主界面 ⬇
|
||||
@@ -31,14 +40,5 @@
|
||||
收藏 ⬇
|
||||

|
||||
|
||||
### 下载:
|
||||
|
||||
[下载地址](https://github.com/Hunlongyu/ZY-Player/releases)
|
||||
|
||||
### 未完成:
|
||||
1. 更新: 手动检测更新
|
||||
2. 图标: 求一个 zy 的logo, 256x256 像素的
|
||||
|
||||
### 重要:
|
||||
所有资源来自网上, 该软件不参与任何制作, 上传, 储存, 下载等内容. 该软件仅供学习参考, 请于安装后24小时内删除.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 497 B After Width: | Height: | Size: 831 B |
|
Before Width: | Height: | Size: 891 B After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 353 KiB After Width: | Height: | Size: 353 KiB |
@@ -1 +1 @@
|
||||
zy_player.hunlongyu.fun
|
||||
zy.hly120506.top
|
||||
60
docs/player/index.html
Normal file
@@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>ZY Player</title>
|
||||
<style>
|
||||
*{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
html,body{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
#mse{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="mse"></div>
|
||||
<script src="//cdn.jsdelivr.net/npm/xgplayer/browser/index.js" type="text/javascript"></script>
|
||||
<script src="//cdn.jsdelivr.net/npm/xgplayer-hls.js/browser/index.js" charset="utf-8"></script>
|
||||
<script>
|
||||
function get (name) {
|
||||
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
|
||||
var r = window.location.search.substr(1).match(reg);//search,查询?后面的参数,并匹配正则
|
||||
if (r!=null)return unescape(r[2]); return null;
|
||||
}
|
||||
let link = window.location.href
|
||||
let info = get('info')
|
||||
let time = get('time')
|
||||
let flag = info.indexOf('$')
|
||||
let url
|
||||
if (flag > 0) {
|
||||
url = info.split('$')[1]
|
||||
} else {
|
||||
url = info
|
||||
}
|
||||
let player = new window.HlsJsPlayer({
|
||||
id: 'mse',
|
||||
url: url,
|
||||
fluid: true,
|
||||
autoplay: true,
|
||||
playsinline: true,
|
||||
height: window.innerHeight,
|
||||
width: window.innerWidth,
|
||||
'x5-video-player-fullscreen': true,
|
||||
'x5-video-orientation': 'landscape'
|
||||
})
|
||||
player.on('play', function () {
|
||||
player.currentTime = time
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "zy",
|
||||
"version": "0.8.0",
|
||||
"version": "0.9.1",
|
||||
"author": "Hunlongyu",
|
||||
"description": "ZY Player 资源播放器",
|
||||
"private": true,
|
||||
@@ -13,7 +13,7 @@
|
||||
"postinstall": "electron-builder install-app-deps",
|
||||
"postuninstall": "electron-builder install-app-deps",
|
||||
"electron:generate-icons": "electron-icon-builder --input=./public/icon.png --output=build --flatten",
|
||||
"bp": "vue-cli-service electron:build --win -p always"
|
||||
"bp": "vue-cli-service electron:build --win --x64 -p always"
|
||||
},
|
||||
"main": "background.js",
|
||||
"dependencies": {
|
||||
@@ -22,6 +22,7 @@
|
||||
"electron-updater": "^4.2.0",
|
||||
"element-ui": "^2.4.5",
|
||||
"flyio": "^0.6.14",
|
||||
"qrcanvas": "^3.0.6",
|
||||
"vue": "^2.6.10",
|
||||
"vue-class-component": "^7.0.2",
|
||||
"vue-property-decorator": "^8.3.0",
|
||||
@@ -39,7 +40,7 @@
|
||||
"@vue/eslint-config-standard": "^4.0.0",
|
||||
"@vue/eslint-config-typescript": "^4.0.0",
|
||||
"babel-plugin-component": "^1.1.1",
|
||||
"electron": "^7.1.9",
|
||||
"electron": "7.1.9",
|
||||
"electron-icon-builder": "^1.0.2",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-vue": "^5.0.0",
|
||||
|
||||
BIN
public/icon.png
|
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 17 KiB |
13
src/App.vue
@@ -10,13 +10,13 @@
|
||||
<el-container>
|
||||
<el-aside class="Aside" width="70px">
|
||||
<el-row class="top">
|
||||
<i :class="Main === 'Film' ? 'el-icon-film active' : 'el-icon-film'" @click="asideMenuClick('Film')"></i>
|
||||
<i :class="Main === 'Search' ? 'el-icon-search active' : 'el-icon-search'" @click="asideMenuClick('Search')"></i>
|
||||
<i :class="Main === 'Player' ? 'el-icon-video-play active' : 'el-icon-video-play'" @click="asideMenuClick('Player')"></i>
|
||||
<i :class="Main === 'Star' ? 'el-icon-star-off active' : 'el-icon-star-off'" @click="asideMenuClick('Star')"></i>
|
||||
<i title="浏览" :class="Main === 'Film' ? 'el-icon-film active' : 'el-icon-film'" @click="asideMenuClick('Film')"></i>
|
||||
<i title="搜索" :class="Main === 'Search' ? 'el-icon-search active' : 'el-icon-search'" @click="asideMenuClick('Search')"></i>
|
||||
<i title="播放" :class="Main === 'Player' ? 'el-icon-video-play active' : 'el-icon-video-play'" @click="asideMenuClick('Player')"></i>
|
||||
<i title="收藏" :class="Main === 'Star' ? 'el-icon-star-off active' : 'el-icon-star-off'" @click="asideMenuClick('Star')"></i>
|
||||
</el-row>
|
||||
<el-row class="bottom">
|
||||
<i :class="Main === 'Setting' ? 'el-icon-setting active' : 'el-icon-setting'" @click="asideMenuClick('Setting')"></i>
|
||||
<i title="设置" :class="Main === 'Setting' ? 'el-icon-setting active' : 'el-icon-setting'" @click="asideMenuClick('Setting')"></i>
|
||||
</el-row>
|
||||
</el-aside>
|
||||
<el-main class="Main">
|
||||
@@ -91,6 +91,8 @@ export default Vue.extend({
|
||||
@import './assets/theme/global.scss';
|
||||
@import './assets/theme/dark.scss';
|
||||
@import './assets/theme/light.scss';
|
||||
@import './assets/theme/pink.scss';
|
||||
@import './assets/theme/green.scss';
|
||||
*{
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
@@ -135,6 +137,7 @@ html,body{
|
||||
.Main{
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
user-select: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
BIN
src/assets/image/alipay.png
Normal file
|
After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 23 KiB |
BIN
src/assets/image/green.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 25 KiB |
BIN
src/assets/image/pink.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
src/assets/image/wepay.jpg
Normal file
|
After Width: | Height: | Size: 232 KiB |
@@ -6,31 +6,64 @@
|
||||
background-color: var(--d-bgc);
|
||||
border-color: var(--d-bdc);
|
||||
}
|
||||
.el-select .el-input .el-select__caret{
|
||||
color: var(--d-icon)
|
||||
}
|
||||
.el-button--text{
|
||||
border: none;
|
||||
}
|
||||
.el-button--text:focus, .el-button--text:hover{
|
||||
color: var(--d-c-h);
|
||||
}
|
||||
.el-tabs__active-bar{
|
||||
background-color: var(--d-bdc);
|
||||
}
|
||||
.el-tabs__item:hover, .el-tabs__item.is-active{
|
||||
color: var(--d-c-h);
|
||||
}
|
||||
.el-tabs__item, .el-tabs__nav-wrap::after{
|
||||
color: var(--d-c);
|
||||
background-color: var(--d-bgc);
|
||||
border-color: var(--d-dbc);
|
||||
border-color: var(--d-bdc);
|
||||
}
|
||||
.el-table--border::after, .el-table--droup::after, .el-table::before,
|
||||
.el-table, .el-table th, .el-table tr,
|
||||
.el-table--striped .el-table__body tr.el-table__row--striped td,
|
||||
.el-table--enable-row-hover .el-table__body tr:hover>td,
|
||||
.el-table td, .el-table th.is-leaf{
|
||||
color: var(--d-c);
|
||||
background-color: var(--d-bgc);
|
||||
border-color: var(--d-dbc);
|
||||
border-color: var(--d-bdc);
|
||||
}
|
||||
.el-pagination, .el-pagination .el-pagination__total, .el-pagination .el-pagination__jump,
|
||||
.el-pagination .btn-next, .el-pagination .btn-prev, .el-pager li{
|
||||
color: var(--d-c);
|
||||
background-color: var(--d-bgc);
|
||||
}
|
||||
.el-input__inner,
|
||||
.el-pager li:hover, .el-pager li.active, .el-pager li.btn-quicknext, .el-pager li.btn-quickprev{
|
||||
color: var(--d-c-h);
|
||||
}
|
||||
.el-input__inner, .el-input__inner:hover,
|
||||
.el-input-group__append, .el-input-group__prepend{
|
||||
background-color: var(--d-bgc);
|
||||
border-color: var(--d-dbc);
|
||||
border-color: var(--d-bdc);
|
||||
}
|
||||
.el-input.is-active .el-input__inner, .el-input__inner:focus{
|
||||
border-color: var(--d-bdc);
|
||||
}
|
||||
.el-input__inner{
|
||||
border-color: var(--d-bdc);
|
||||
}
|
||||
.el-select .el-input.is-focus .el-input__inner,
|
||||
.el-select .el-input__inner:focus,
|
||||
.el-select:hover .el-input__inner{
|
||||
border-color: var(--d-bdc);
|
||||
}
|
||||
input::-webkit-input-placeholder{
|
||||
color: var(--d-c);
|
||||
}
|
||||
.el-icon-search{
|
||||
color: var(--d-icon);
|
||||
}
|
||||
.el-select-dropdown{
|
||||
color: var(--d-c);
|
||||
@@ -46,6 +79,12 @@
|
||||
background-color: var(--d-bgc);
|
||||
opacity: 0.9;
|
||||
}
|
||||
.el-slider__bar{
|
||||
background-color: var(--d-c-h);
|
||||
}
|
||||
.el-slider__button{
|
||||
border-color: var(--d-c-h);
|
||||
}
|
||||
.Header, .Aside{
|
||||
i{
|
||||
color: var(--d-icon);
|
||||
@@ -66,6 +105,11 @@
|
||||
}
|
||||
.Main{
|
||||
.film, .search, .star, .player{
|
||||
button:hover{
|
||||
color: var(--d-c-h);
|
||||
background: var(--d-bgc);
|
||||
border-color: var(--d-bdc);
|
||||
}
|
||||
.table-box{
|
||||
&::-webkit-scrollbar-track {
|
||||
box-shadow: inset 0 0 6px var(--d-bdc);
|
||||
@@ -76,6 +120,13 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
.player{
|
||||
.el-button--primary.is-plain{
|
||||
color: var(--d-c);
|
||||
background-color: var(--d-bgc-h);
|
||||
border-color: var(--d-bdc);
|
||||
}
|
||||
}
|
||||
.setting{
|
||||
.el-link, .card{
|
||||
color: var(--d-c);
|
||||
|
||||
@@ -16,4 +16,22 @@
|
||||
--d-bgc: #242424;
|
||||
--d-bgc-h: #454545;
|
||||
--d-bdc: #7a7a7a;
|
||||
|
||||
// pink
|
||||
--p-c: #ffffff;
|
||||
--p-c-h: #fd7792;
|
||||
--p-icon: #ffffff;
|
||||
--p-icon-h: #fd7792;
|
||||
--p-bgc: #ffbaba;
|
||||
--p-bgc-h: #ffc5c5;
|
||||
--p-bdc: #fdcfcf;
|
||||
|
||||
// green
|
||||
--g-c: #ffffff;
|
||||
--g-c-h: #ebe65b;
|
||||
--g-icon: #ffffff;
|
||||
--g-icon-h: #ebe65b;
|
||||
--g-bgc: #4baea0;
|
||||
--g-bgc-h: #6db8ac;
|
||||
--g-bdc: #76d3c5;
|
||||
}
|
||||
159
src/assets/theme/green.scss
Normal file
@@ -0,0 +1,159 @@
|
||||
.theme-green{
|
||||
color: var(--g-c);
|
||||
background-color: var(--g-bgc);
|
||||
.el-button, input, select, .el-select{
|
||||
color: var(--g-c);
|
||||
background-color: var(--g-bgc);
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
.el-select .el-input .el-select__caret{
|
||||
color: var(--g-icon)
|
||||
}
|
||||
.el-button--text{
|
||||
border: none;
|
||||
}
|
||||
.el-button--text:focus, .el-button--text:hover{
|
||||
color: var(--g-c-h);
|
||||
}
|
||||
.el-tabs__active-bar{
|
||||
background-color: var(--g-bdc);
|
||||
}
|
||||
.el-tabs__item:hover, .el-tabs__item.is-active{
|
||||
color: var(--g-c-h);
|
||||
}
|
||||
.el-tabs__item, .el-tabs__nav-wrap::after{
|
||||
color: var(--g-c);
|
||||
background-color: var(--g-bgc);
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
.el-table--border::after, .el-table--group::after, .el-table::before,
|
||||
.el-table, .el-table th, .el-table tr,
|
||||
.el-table--striped .el-table__body tr.el-table__row--striped td,
|
||||
.el-table--enable-row-hover .el-table__body tr:hover>td,
|
||||
.el-table td, .el-table th.is-leaf{
|
||||
color: var(--g-c);
|
||||
background-color: var(--g-bgc);
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
.el-pagination, .el-pagination .el-pagination__total, .el-pagination .el-pagination__jump,
|
||||
.el-pagination .btn-next, .el-pagination .btn-prev, .el-pager li{
|
||||
color: var(--g-c);
|
||||
background-color: var(--g-bgc);
|
||||
}
|
||||
.el-pager li:hover, .el-pager li.active, .el-pager li.btn-quicknext, .el-pager li.btn-quickprev{
|
||||
color: var(--g-c-h);
|
||||
}
|
||||
.el-input__inner, .el-input__inner:hover,
|
||||
.el-input-group__append, .el-input-group__prepend{
|
||||
background-color: var(--g-bgc);
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
.el-input.is-active .el-input__inner, .el-input__inner:focus{
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
.el-input__inner{
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
.el-select .el-input.is-focus .el-input__inner,
|
||||
.el-select .el-input__inner:focus,
|
||||
.el-select:hover .el-input__inner{
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
input::-webkit-input-placeholder{
|
||||
color: var(--g-c);
|
||||
}
|
||||
.el-icon-search{
|
||||
color: var(--g-icon);
|
||||
}
|
||||
.el-select-dropdown{
|
||||
color: var(--g-c);
|
||||
}
|
||||
.el-drawer{
|
||||
background-color: var(--g-bgc) !important;
|
||||
overflow: auto;
|
||||
&::-webkit-scrollbar{
|
||||
width: 0px;
|
||||
}
|
||||
}
|
||||
.el-loading-mask{
|
||||
background-color: var(--g-bgc);
|
||||
opacity: 0.9;
|
||||
}
|
||||
.el-slider__bar{
|
||||
background-color: var(--g-c-h);
|
||||
}
|
||||
.el-slider__button{
|
||||
border-color: var(--g-c-h);
|
||||
}
|
||||
.Header, .Aside{
|
||||
i{
|
||||
color: var(--g-icon);
|
||||
&:hover{
|
||||
color: var(--g-icon-h);
|
||||
background-color: var(--g-bgc-h);
|
||||
}
|
||||
}
|
||||
}
|
||||
.Aside{
|
||||
i{
|
||||
&.active{
|
||||
color: var(--g-icon-h);
|
||||
background-color: var(--g-bgc-h);
|
||||
border-left: 4px solid var(--g-icon-h);
|
||||
}
|
||||
}
|
||||
}
|
||||
.Main{
|
||||
.film, .search, .star, .player{
|
||||
button:hover{
|
||||
color: var(--g-c-h);
|
||||
background: var(--g-bgc);
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
.table-box{
|
||||
&::-webkit-scrollbar-track {
|
||||
box-shadow: inset 0 0 6px var(--g-bdc);
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background-color: var(--g-icon);
|
||||
outline: 1px solid var(--g-icon);
|
||||
}
|
||||
}
|
||||
}
|
||||
.player{
|
||||
.el-button--primary.is-plain{
|
||||
color: var(--g-c-h);
|
||||
background-color: var(--g-bgc-h);
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
}
|
||||
.setting{
|
||||
.el-link, .card{
|
||||
color: var(--g-c);
|
||||
background-color: var(--g-bgc);
|
||||
border-color: var(--g-bdc);
|
||||
}
|
||||
}
|
||||
}
|
||||
.detail{
|
||||
color: var(--g-c);
|
||||
&::-webkit-scrollbar-track {
|
||||
box-shadow: inset 0 0 6px var(--g-bdc);
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background-color: var(--g-icon);
|
||||
outline: 1px solid var(--g-icon);
|
||||
}
|
||||
.box, .info, .urls{
|
||||
border: 1px solid var(--g-bdc);
|
||||
}
|
||||
.vodInfo{
|
||||
li, span, a{
|
||||
color: var(--g-c);
|
||||
}
|
||||
label{
|
||||
color: #f90;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@
|
||||
}
|
||||
}
|
||||
.Main{
|
||||
.film, .search, .star, .player{
|
||||
.film, .search, .star, .player, .setting{
|
||||
.table-box{
|
||||
&::-webkit-scrollbar-track {
|
||||
box-shadow: inset 0 0 6px var(--l-bdc);
|
||||
@@ -48,6 +48,9 @@
|
||||
.el-link, .card{
|
||||
color: var(--l-c);
|
||||
}
|
||||
.qrcode img{
|
||||
box-shadow: 0px 0px 5px var(--l-icon);
|
||||
}
|
||||
}
|
||||
}
|
||||
.detail{
|
||||
|
||||
159
src/assets/theme/pink.scss
Normal file
@@ -0,0 +1,159 @@
|
||||
.theme-pink{
|
||||
color: var(--p-c);
|
||||
background-color: var(--p-bgc);
|
||||
.el-button, input, select, .el-select{
|
||||
color: var(--p-c);
|
||||
background-color: var(--p-bgc);
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
.el-select .el-input .el-select__caret{
|
||||
color: var(--p-icon)
|
||||
}
|
||||
.el-button--text{
|
||||
border: none;
|
||||
}
|
||||
.el-button--text:focus, .el-button--text:hover{
|
||||
color: var(--p-c-h);
|
||||
}
|
||||
.el-tabs__active-bar{
|
||||
background-color: var(--p-bdc);
|
||||
}
|
||||
.el-tabs__item:hover, .el-tabs__item.is-active{
|
||||
color: var(--p-c-h);
|
||||
}
|
||||
.el-tabs__item, .el-tabs__nav-wrap::after{
|
||||
color: var(--p-c);
|
||||
background-color: var(--p-bgc);
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
.el-table--border::after, .el-table--proup::after, .el-table::before,
|
||||
.el-table, .el-table th, .el-table tr,
|
||||
.el-table--striped .el-table__body tr.el-table__row--striped td,
|
||||
.el-table--enable-row-hover .el-table__body tr:hover>td,
|
||||
.el-table td, .el-table th.is-leaf{
|
||||
color: var(--p-c);
|
||||
background-color: var(--p-bgc);
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
.el-pagination, .el-pagination .el-pagination__total, .el-pagination .el-pagination__jump,
|
||||
.el-pagination .btn-next, .el-pagination .btn-prev, .el-pager li{
|
||||
color: var(--p-c);
|
||||
background-color: var(--p-bgc);
|
||||
}
|
||||
.el-pager li:hover, .el-pager li.active, .el-pager li.btn-quicknext, .el-pager li.btn-quickprev{
|
||||
color: var(--p-c-h);
|
||||
}
|
||||
.el-input__inner, .el-input__inner:hover,
|
||||
.el-input-group__append, .el-input-group__prepend{
|
||||
background-color: var(--p-bgc);
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
.el-input.is-active .el-input__inner, .el-input__inner:focus{
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
.el-input__inner{
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
.el-select .el-input.is-focus .el-input__inner,
|
||||
.el-select .el-input__inner:focus,
|
||||
.el-select:hover .el-input__inner{
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
input::-webkit-input-placeholder{
|
||||
color: var(--p-c);
|
||||
}
|
||||
.el-icon-search{
|
||||
color: var(--p-icon);
|
||||
}
|
||||
.el-select-dropdown{
|
||||
color: var(--p-c);
|
||||
}
|
||||
.el-drawer{
|
||||
background-color: var(--p-bgc) !important;
|
||||
overflow: auto;
|
||||
&::-webkit-scrollbar{
|
||||
width: 0px;
|
||||
}
|
||||
}
|
||||
.el-loading-mask{
|
||||
background-color: var(--p-bgc);
|
||||
opacity: 0.9;
|
||||
}
|
||||
.el-slider__bar{
|
||||
background-color: var(--p-c-h);
|
||||
}
|
||||
.el-slider__button{
|
||||
border-color: var(--p-c-h);
|
||||
}
|
||||
.Header, .Aside{
|
||||
i{
|
||||
color: var(--p-icon);
|
||||
&:hover{
|
||||
color: var(--p-icon-h);
|
||||
background-color: var(--p-bgc-h);
|
||||
}
|
||||
}
|
||||
}
|
||||
.Aside{
|
||||
i{
|
||||
&.active{
|
||||
color: var(--p-icon-h);
|
||||
background-color: var(--p-bgc-h);
|
||||
border-left: 4px solid var(--p-icon-h);
|
||||
}
|
||||
}
|
||||
}
|
||||
.Main{
|
||||
.film, .search, .star, .player{
|
||||
button:hover{
|
||||
color: var(--p-c-h);
|
||||
background: var(--p-bgc);
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
.table-box{
|
||||
&::-webkit-scrollbar-track {
|
||||
box-shadow: inset 0 0 6px var(--p-bdc);
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background-color: var(--p-icon);
|
||||
outline: 1px solid var(--p-icon);
|
||||
}
|
||||
}
|
||||
}
|
||||
.player{
|
||||
.el-button--primary.is-plain{
|
||||
color: var(--p-c-h);
|
||||
background-color: var(--p-bgc-h);
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
}
|
||||
.setting{
|
||||
.el-link, .card{
|
||||
color: var(--p-c);
|
||||
background-color: var(--p-bgc);
|
||||
border-color: var(--p-bdc);
|
||||
}
|
||||
}
|
||||
}
|
||||
.detail{
|
||||
color: var(--p-c);
|
||||
&::-webkit-scrollbar-track {
|
||||
box-shadow: inset 0 0 6px var(--p-bdc);
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background-color: var(--p-icon);
|
||||
outline: 1px solid var(--p-icon);
|
||||
}
|
||||
.box, .info, .urls{
|
||||
border: 1px solid var(--p-bdc);
|
||||
}
|
||||
.vodInfo{
|
||||
li, span, a{
|
||||
color: var(--p-c);
|
||||
}
|
||||
label{
|
||||
color: #f90;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -83,25 +83,59 @@ ipcMain.on('close', e => {
|
||||
}
|
||||
})
|
||||
|
||||
ipcMain.on('opacity', (e, arg) => {
|
||||
if (win) {
|
||||
win.setOpacity(arg)
|
||||
}
|
||||
})
|
||||
|
||||
ipcMain.on('top', () => {
|
||||
if (win) {
|
||||
if (win.isAlwaysOnTop()) {
|
||||
win.setAlwaysOnTop(false)
|
||||
} else {
|
||||
win.setAlwaysOnTop(true)
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const gotTheLock = app.requestSingleInstanceLock()
|
||||
if (!gotTheLock) {
|
||||
app.quit()
|
||||
} else {
|
||||
app.on('second-instance', (event, commandLine, workingDirectory) => {
|
||||
// 当运行第二个实例时,将会聚焦到win这个窗口
|
||||
if (win) {
|
||||
if (win.isMinimized()) win.restore()
|
||||
win.focus()
|
||||
}
|
||||
})
|
||||
|
||||
// 创建 win, 加载应用的其余部分, etc...
|
||||
app.on('ready', () => {
|
||||
createWindow()
|
||||
})
|
||||
}
|
||||
|
||||
// This method will be called when Electron has finished
|
||||
// initialization and is ready to create browser windows.
|
||||
// Some APIs can only be used after this event occurs.
|
||||
app.on('ready', async () => {
|
||||
if (isDevelopment && !process.env.IS_TEST) {
|
||||
// Install Vue Devtools
|
||||
// Devtools extensions are broken in Electron 6.0.0 and greater
|
||||
// See https://github.com/nklayman/vue-cli-plugin-electron-builder/issues/378 for more info
|
||||
// Electron will not launch with Devtools extensions installed on Windows 10 with dark mode
|
||||
// If you are not using Windows 10 dark mode, you may uncomment these lines
|
||||
// In addition, if the linked issue is closed, you can upgrade electron and uncomment these lines
|
||||
// try {
|
||||
// await installVueDevtools()
|
||||
// } catch (e) {
|
||||
// console.error('Vue Devtools failed to install:', e.toString())
|
||||
// }
|
||||
}
|
||||
createWindow()
|
||||
})
|
||||
// app.on('ready', async () => {
|
||||
// if (isDevelopment && !process.env.IS_TEST) {
|
||||
// // Install Vue Devtools
|
||||
// // Devtools extensions are broken in Electron 6.0.0 and greater
|
||||
// // See https://github.com/nklayman/vue-cli-plugin-electron-builder/issues/378 for more info
|
||||
// // Electron will not launch with Devtools extensions installed on Windows 10 with dark mode
|
||||
// // If you are not using Windows 10 dark mode, you may uncomment these lines
|
||||
// // In addition, if the linked issue is closed, you can upgrade electron and uncomment these lines
|
||||
// try {
|
||||
// await installVueDevtools()
|
||||
// } catch (e) {
|
||||
// console.error('Vue Devtools failed to install:', e.toString())
|
||||
// }
|
||||
// }
|
||||
// createWindow()
|
||||
// })
|
||||
|
||||
// Exit cleanly on request from parent process in development mode.
|
||||
if (isDevelopment) {
|
||||
|
||||
@@ -78,14 +78,14 @@ export default Vue.extend({
|
||||
},
|
||||
created () {
|
||||
this.getDetailEvent()
|
||||
},
|
||||
mounted () {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.detail{
|
||||
box-sizing: border-box;
|
||||
padding: 0 60px;
|
||||
user-select: auto;
|
||||
.detail-box{
|
||||
width: 100%;
|
||||
.box{
|
||||
|
||||
@@ -30,6 +30,8 @@ interface detail {
|
||||
urls?: Array<string>
|
||||
}
|
||||
|
||||
fly.config.timeout = 10000
|
||||
|
||||
const zy: ZY = {
|
||||
num: 0,
|
||||
page: 1,
|
||||
|
||||
@@ -107,6 +107,10 @@ export default Vue.extend({
|
||||
this.filmData = res.list
|
||||
this.filmPage = p
|
||||
this.loading = false
|
||||
}).catch((err: any) => {
|
||||
if (err.status === 1) {
|
||||
this.$message.warning('获取资源超时,请切换分类,或者切换源。')
|
||||
}
|
||||
})
|
||||
},
|
||||
tableBtnClick (type: string, e: any) {
|
||||
|
||||
@@ -8,9 +8,15 @@
|
||||
<span>{{ num }}</span>
|
||||
</span>
|
||||
<span>
|
||||
<el-button size="mini" @click="openDetail" icon="el-icon-document" circle></el-button>
|
||||
<el-button size="mini" v-show="!star" @click="starEvent" icon="el-icon-star-off" circle></el-button>
|
||||
<el-button size="mini" v-show="star" @click="starEvent" icon="el-icon-star-on" circle></el-button>
|
||||
<el-button size="mini" @click="topEvent('top')" icon="el-icon-place" title="置顶" circle></el-button>
|
||||
<el-button size="mini" @click="openDetail" icon="el-icon-document" title="查看详情" circle></el-button>
|
||||
<el-button size="mini" v-show="!star" @click="starEvent" icon="el-icon-star-off" title="添加收藏" circle></el-button>
|
||||
<el-button size="mini" v-show="star" @click="starEvent" icon="el-icon-star-on" title="取消收藏" circle></el-button>
|
||||
<el-button size="mini" @click="shareEvent" icon="el-icon-share" title="分享" circle></el-button>
|
||||
<el-popover placement="bottom" width="150" trigger="click">
|
||||
<el-row id="qrcode"></el-row>
|
||||
<el-button v-show="xg !== null" size="mini" @click="mobileEvent" icon="el-icon-mobile-phone" title="手机观看" circle slot="reference" style="margin-left: 10px;"></el-button>
|
||||
</el-popover>
|
||||
</span>
|
||||
</el-row>
|
||||
</el-row>
|
||||
@@ -25,7 +31,7 @@
|
||||
</el-row>
|
||||
<el-row class="player-none" v-if="Object.keys(video).length <= 0">
|
||||
<el-row class="tips">
|
||||
浏览或者搜索资源, 点击播放视频, 即可观看~
|
||||
浏览或者搜索资源, 点击播放, 即可观看~
|
||||
</el-row>
|
||||
<el-row class="btns">
|
||||
<el-button size="small" @click="goView('Film')" icon="el-icon-film">浏览</el-button>
|
||||
@@ -42,6 +48,8 @@ import 'xgplayer'
|
||||
// @ts-ignore
|
||||
import Hls from 'xgplayer-hls.js'
|
||||
import video from '@/plugins/dexie/video'
|
||||
import { qrcanvas } from 'qrcanvas'
|
||||
const { ipcRenderer: ipc, clipboard } = require('electron')
|
||||
export default Vue.extend({
|
||||
data () {
|
||||
return {
|
||||
@@ -49,6 +57,7 @@ export default Vue.extend({
|
||||
config: {
|
||||
id: 'xg',
|
||||
url: '',
|
||||
cssFullscreen: true,
|
||||
fluid: false,
|
||||
autoplay: true,
|
||||
videoInit: true,
|
||||
@@ -98,6 +107,9 @@ export default Vue.extend({
|
||||
},
|
||||
methods: {
|
||||
...mapMutations(['SET_DETAIL', 'SET_VIDEO', 'SET_MAIN']),
|
||||
topEvent (e:string) {
|
||||
ipc.send(e)
|
||||
},
|
||||
goView (e: string) {
|
||||
this.Main = e
|
||||
},
|
||||
@@ -125,8 +137,21 @@ export default Vue.extend({
|
||||
this.$nextTick(() => {
|
||||
this.xg = new Hls(this.config)
|
||||
// @ts-ignore
|
||||
this.xg.on('error', () => {
|
||||
this.$message.error('播放失败请重试~')
|
||||
this.xg.on('ended', () => {
|
||||
if (this.urls.length > 1 && (this.urls.length - 1 > this.video.index)) {
|
||||
this.$message.success('自动播放下一集')
|
||||
this.video.index++
|
||||
let v: any = this.urls[this.video.index]
|
||||
let url = v.split('$')[1]
|
||||
this.num = v.split('$')[0]
|
||||
// @ts-ignore
|
||||
this.xg.src = url
|
||||
video.find({ detail: this.video.detail }).then(res => {
|
||||
if (res) {
|
||||
video.update(res.id, this.video)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
@@ -160,6 +185,29 @@ export default Vue.extend({
|
||||
}
|
||||
})
|
||||
},
|
||||
mobileEvent () {
|
||||
let info = this.urls[this.video.index]
|
||||
// @ts-ignore
|
||||
let time = this.xg.currentTime
|
||||
const canvas = qrcanvas({
|
||||
size: 120,
|
||||
data: `http://zy.hly120506.top/player/index.html?info=${info}&time=${time}`
|
||||
})
|
||||
const dom = document.getElementById('qrcode')
|
||||
if (dom) {
|
||||
dom.innerHTML = ''
|
||||
dom.appendChild(canvas)
|
||||
}
|
||||
},
|
||||
shareEvent () {
|
||||
let info: string = this.urls[this.video.index]
|
||||
let title = this.video.name.replace(/^\s*|\s*$/g, '')
|
||||
let url = info.split('$')[1]
|
||||
let data = `http://zy.hly120506.top/player/index.html?info=${url}`
|
||||
let txt = `资源名称: ${title}\n播放地址:${data}`
|
||||
clipboard.writeText(txt)
|
||||
this.$message.success('资源已复制到剪贴板中,快去分享吧~')
|
||||
},
|
||||
playBtnClick (i: string, j: number) {
|
||||
if (this.video.index !== j) {
|
||||
let url = i.split('$')[1]
|
||||
@@ -167,6 +215,12 @@ export default Vue.extend({
|
||||
this.video.index = j
|
||||
// @ts-ignore
|
||||
this.xg.src = url
|
||||
video.find({ detail: this.video.detail }).then(res => {
|
||||
if (res) {
|
||||
this.video.index = j
|
||||
video.update(res.id, this.video)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<template>
|
||||
<el-row class="search">
|
||||
<el-row class="search-box" :class="table === true ? 'search-box hasTable' : 'search-box'">
|
||||
<el-input class="search-input" size="medium" clearable placeholder="请输入内容" v-model.trim="keywords" @change="searchEvent">
|
||||
<el-input class="search-input" size="medium" clearable placeholder="请输入资源名称..." v-model.trim="keywords" @change="searchEvent" @clear="clearEvent">
|
||||
<el-select v-model="site" slot="prepend" placeholder="请选择" @change="selectSite" style="width: 130px;">
|
||||
<el-option v-for="(i, j) in sites" :key="i.id" :label="i.name" :value="j"></el-option>
|
||||
</el-select>
|
||||
@@ -98,6 +98,13 @@ export default Vue.extend({
|
||||
})
|
||||
}
|
||||
},
|
||||
clearEvent () {
|
||||
this.loading = false
|
||||
this.filmData = []
|
||||
this.filmTotal = 0
|
||||
this.filmPage = 1
|
||||
this.table = false
|
||||
},
|
||||
pageChange (e:number) {
|
||||
this.filmPage = e
|
||||
this.searchEvent()
|
||||
@@ -126,8 +133,7 @@ export default Vue.extend({
|
||||
this.video = e
|
||||
}
|
||||
}
|
||||
},
|
||||
created () {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
|
||||
@@ -1,50 +1,61 @@
|
||||
<template>
|
||||
<el-row class="setting">
|
||||
<el-row class="item site">
|
||||
<el-row class="title"><i class="el-icon-set-up"></i><span>默认资源</span></el-row>
|
||||
<el-row class="info">
|
||||
<el-select v-model="dbSite" placeholder="请选择" size="small" @change="selectSite">
|
||||
<el-option
|
||||
v-for="(i, j) in sites"
|
||||
:key="i.id"
|
||||
:label="i.name"
|
||||
:value="j">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-row class="setting-box table-box">
|
||||
<el-row class="item site">
|
||||
<el-row class="title"><i class="el-icon-set-up"></i><span>默认资源</span></el-row>
|
||||
<el-row class="info">
|
||||
<el-select v-model="dbSite" placeholder="请选择" size="small" @change="selectSite">
|
||||
<el-option
|
||||
v-for="(i, j) in sites"
|
||||
:key="i.id"
|
||||
:label="i.name"
|
||||
:value="j">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-row>
|
||||
</el-row>
|
||||
</el-row>
|
||||
<el-row class="item theme">
|
||||
<el-row class="title"><i class="el-icon-picture-outline-round"></i><span>主题</span></el-row>
|
||||
<el-row class="card-box">
|
||||
<el-card shadow="hover" class="card">
|
||||
<img src="@/assets/image/light.png" class="image" @click="selectTheme('light')">
|
||||
<span size="mini">Light</span>
|
||||
</el-card>
|
||||
<el-card shadow="hover" class="card">
|
||||
<img src="@/assets/image/dark.png" class="image" @click="selectTheme('dark')">
|
||||
<span size="mini">Dark</span>
|
||||
</el-card>
|
||||
<el-row class="item opacity">
|
||||
<el-row class="title"><i class="el-icon-stopwatch"></i><span>透明度</span></el-row>
|
||||
<el-row class="info">
|
||||
<el-slider v-model="opacity" :min="50" :max="100" @input="setOpacity"></el-slider>
|
||||
</el-row>
|
||||
</el-row>
|
||||
</el-row>
|
||||
<el-row class="item update about">
|
||||
<el-row class="title"><i class="el-icon-refresh"></i><span>更新</span></el-row>
|
||||
<el-row class="info">
|
||||
<ul>
|
||||
<li>当前版本: {{oldVersion}}</li>
|
||||
<li>最新版本: {{newVersion}}</li>
|
||||
</ul>
|
||||
<el-row class="item theme">
|
||||
<el-row class="title"><i class="el-icon-picture-outline-round"></i><span>主题</span></el-row>
|
||||
<el-row class="card-box">
|
||||
<el-card shadow="hover" class="card">
|
||||
<img src="@/assets/image/light.png" class="image" @click="selectTheme('light')">
|
||||
<span size="mini">Light</span>
|
||||
</el-card>
|
||||
<el-card shadow="hover" class="card">
|
||||
<img src="@/assets/image/dark.png" class="image" @click="selectTheme('dark')">
|
||||
<span size="mini">Dark</span>
|
||||
</el-card>
|
||||
<el-card shadow="hover" class="card">
|
||||
<img src="@/assets/image/pink.png" class="image" @click="selectTheme('pink')">
|
||||
<span size="mini">Pink</span>
|
||||
</el-card>
|
||||
<el-card shadow="hover" class="card">
|
||||
<img src="@/assets/image/green.png" class="image" @click="selectTheme('green')">
|
||||
<span size="mini">Green</span>
|
||||
</el-card>
|
||||
</el-row>
|
||||
</el-row>
|
||||
<el-row class="btns">
|
||||
<el-button v-show="download" size="small" @click="linkOpen('https://github.com/Hunlongyu/ZY-Player/releases/latest')">下载更新</el-button>
|
||||
<el-row class="item about">
|
||||
<el-row class="title"><i class="el-icon-view"></i><span>关于</span></el-row>
|
||||
<el-row class="info">
|
||||
<ul>
|
||||
<li><el-link :underline="false" @click="linkOpen('https://github.com/Hunlongyu/ZY-Player')">官网: ZY Player</el-link></li>
|
||||
<li><el-link :underline="false" @click="linkOpen('https://github.com/Hunlongyu/ZY-Player/issues')">反馈: Issues</el-link></li>
|
||||
</ul>
|
||||
</el-row>
|
||||
</el-row>
|
||||
</el-row>
|
||||
<el-row class="item about">
|
||||
<el-row class="title"><i class="el-icon-view"></i><span>关于</span></el-row>
|
||||
<el-row class="info">
|
||||
<ul>
|
||||
<li><el-link :underline="false" @click="linkOpen('http://zy_player.hunlongyu.fun')">官网: ZY Player</el-link></li>
|
||||
<li><el-link :underline="false" @click="linkOpen('https://github.com/Hunlongyu/ZY-Player/issues')">反馈: Issues</el-link></li>
|
||||
</ul>
|
||||
<el-row class="item opacity">
|
||||
<el-row class="title"><i class="el-icon-coffee"></i><span>请我喝一杯咖啡</span></el-row>
|
||||
<el-row class="qrcode">
|
||||
<img src="@/assets/image/alipay.png" alt="">
|
||||
<img src="@/assets/image/wepay.jpg" alt="">
|
||||
</el-row>
|
||||
</el-row>
|
||||
</el-row>
|
||||
</el-row>
|
||||
@@ -57,14 +68,14 @@ import { shell } from 'electron'
|
||||
import site from '@/plugins/dexie/site'
|
||||
import theme from '@/plugins/dexie/theme'
|
||||
import fly from 'flyio'
|
||||
const { ipcRenderer: ipc } = require('electron')
|
||||
export default Vue.extend({
|
||||
name: 'setting',
|
||||
data () {
|
||||
return {
|
||||
sites: sites,
|
||||
dbSite: 0,
|
||||
oldVersion: 'v0.8.0',
|
||||
newVersion: '',
|
||||
opacity: 100,
|
||||
download: false
|
||||
}
|
||||
},
|
||||
@@ -126,27 +137,30 @@ export default Vue.extend({
|
||||
this.$message.warning('切换主题失败~')
|
||||
})
|
||||
},
|
||||
checkUpdate () {
|
||||
fly.get('https://api.github.com/repos/Hunlongyu/ZY-Player/releases/latest').then(res => {
|
||||
this.newVersion = res.data.tag_name
|
||||
if (res.data.tag_name !== this.oldVersion) {
|
||||
this.download = true
|
||||
} else {
|
||||
this.download = false
|
||||
}
|
||||
})
|
||||
setOpacity () {
|
||||
ipc.send('opacity', this.opacity / 100)
|
||||
}
|
||||
},
|
||||
created () {
|
||||
this.initSetting()
|
||||
this.checkUpdate()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.setting{
|
||||
height: 100%;
|
||||
position: relative;
|
||||
.setting-box{
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: auto;
|
||||
&::-webkit-scrollbar{
|
||||
width: 6px;
|
||||
}
|
||||
}
|
||||
.item{
|
||||
margin-bottom: 30px;
|
||||
margin-bottom: 20px;
|
||||
.title{
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
@@ -167,6 +181,12 @@ export default Vue.extend({
|
||||
}
|
||||
}
|
||||
}
|
||||
.opacity{
|
||||
.info{
|
||||
width: 196px;
|
||||
margin-left: 12px;
|
||||
}
|
||||
}
|
||||
.theme{
|
||||
.card-box{
|
||||
display: flex;
|
||||
@@ -186,5 +206,12 @@ export default Vue.extend({
|
||||
}
|
||||
}
|
||||
}
|
||||
.qrcode{
|
||||
img{
|
||||
height: 300px;
|
||||
width: auto;
|
||||
margin: 0 4px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
<template>
|
||||
<el-row class="star">
|
||||
<el-row class="star-table-box table-box">
|
||||
<el-table :data="filmData" stripe class="film-table" size="mini" empty-text="收藏夹里空空的~快去填满我吧~">
|
||||
<el-table :data="filmData" stripe class="film-table" size="mini" empty-text="收藏夹里空空的~快去填满吧~">
|
||||
<el-table-column prop="name" label="影片名称"></el-table-column>
|
||||
<el-table-column prop="type" label="影片类别" width="120"></el-table-column>
|
||||
<el-table-column prop="time" label="更新时间" width="180"></el-table-column>
|
||||
<el-table-column label="来源" width="120">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ scope.row.detail | from }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-button size="small" type="text" @click="tableBtnClick('detail', scope.row)">详情</el-button>
|
||||
@@ -28,6 +33,7 @@
|
||||
<script lang="ts">
|
||||
import Vue from 'vue'
|
||||
import video from '@/plugins/dexie/video'
|
||||
import sites from '@/lib/sites'
|
||||
import { mapMutations } from 'vuex'
|
||||
export default Vue.extend({
|
||||
data () {
|
||||
@@ -37,6 +43,17 @@ export default Vue.extend({
|
||||
filmTotal: 0
|
||||
}
|
||||
},
|
||||
filters: {
|
||||
from (e: string) {
|
||||
for (let i in sites) {
|
||||
let url = sites[i].url
|
||||
let f = e.indexOf(url)
|
||||
if (f >= 0) {
|
||||
return sites[i].name
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
video: {
|
||||
get () {
|
||||
|
||||
@@ -3,7 +3,7 @@ import {
|
||||
Container, Row, Col, Header, Aside, Main, Drawer,
|
||||
Tabs, TabPane, Button, Select, Option, Pagination,
|
||||
Table, TableColumn, Input, Card, Link, Loading,
|
||||
Notification, Message
|
||||
Notification, Message, Slider, Popover
|
||||
} from 'element-ui'
|
||||
|
||||
Vue.use(Container)
|
||||
@@ -25,6 +25,8 @@ Vue.use(Input)
|
||||
Vue.use(Card)
|
||||
Vue.use(Link)
|
||||
Vue.use(Loading)
|
||||
Vue.use(Slider)
|
||||
Vue.use(Popover)
|
||||
|
||||
Vue.prototype.$notify = Notification
|
||||
Vue.prototype.$message = Message
|
||||
|
||||
@@ -5,7 +5,7 @@ Vue.use(Vuex)
|
||||
|
||||
export default new Vuex.Store({
|
||||
state: {
|
||||
Main: 'Search',
|
||||
Main: 'Film',
|
||||
site: 0,
|
||||
theme: 'light',
|
||||
detail: {
|
||||
|
||||
@@ -3,10 +3,21 @@ module.exports = {
|
||||
electronBuilder: {
|
||||
builderOptions: {
|
||||
win: {
|
||||
icon: './build/icons/icon.ico'
|
||||
icon: './build/icons/icon.ico',
|
||||
target: [
|
||||
'nsis','portable', 'zip',
|
||||
]
|
||||
},
|
||||
nsis: {
|
||||
oneClick: false,
|
||||
allowToChangeInstallationDirectory: true
|
||||
},
|
||||
productName: 'ZY Player',
|
||||
publish: ['github']
|
||||
publish: [{
|
||||
'provider': 'github',
|
||||
'owner': 'Hunlongyu',
|
||||
'repo': 'ZY-Player'
|
||||
}]
|
||||
},
|
||||
chainWebpackRendererProcess: config => {
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
|
||||
253
yarn.lock
@@ -1697,6 +1697,11 @@
|
||||
resolved "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
|
||||
integrity sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=
|
||||
|
||||
abbrev@1:
|
||||
version "1.1.1"
|
||||
resolved "http://r.cnpmjs.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||
integrity sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=
|
||||
|
||||
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
|
||||
version "1.3.7"
|
||||
resolved "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
|
||||
@@ -1879,7 +1884,7 @@ app-builder-lib@21.2.0, app-builder-lib@~21.2.0:
|
||||
semver "^6.3.0"
|
||||
temp-file "^3.3.4"
|
||||
|
||||
aproba@^1.1.1:
|
||||
aproba@^1.0.3, aproba@^1.1.1:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
|
||||
integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo=
|
||||
@@ -1915,6 +1920,14 @@ archiver@~2.1.0:
|
||||
tar-stream "^1.5.0"
|
||||
zip-stream "^1.2.0"
|
||||
|
||||
are-we-there-yet@~1.1.2:
|
||||
version "1.1.5"
|
||||
resolved "http://r.cnpmjs.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
|
||||
integrity sha1-SzXClE8GKov82mZBB2A1D+nd/CE=
|
||||
dependencies:
|
||||
delegates "^1.0.0"
|
||||
readable-stream "^2.0.6"
|
||||
|
||||
argparse@^1.0.7:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
|
||||
@@ -2686,6 +2699,15 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001017:
|
||||
resolved "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926"
|
||||
integrity sha1-PwTBc3UA/9p4vpvrC1weIHDhWSY=
|
||||
|
||||
canvas@^2.6.0:
|
||||
version "2.6.1"
|
||||
resolved "http://r.cnpmjs.org/canvas/download/canvas-2.6.1.tgz#0d087dd4d60f5a5a9efa202757270abea8bef89e"
|
||||
integrity sha1-DQh91NYPWlqe+iAnVycKvqi++J4=
|
||||
dependencies:
|
||||
nan "^2.14.0"
|
||||
node-pre-gyp "^0.11.0"
|
||||
simple-get "^3.0.3"
|
||||
|
||||
case-sensitive-paths-webpack-plugin@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e"
|
||||
@@ -3098,6 +3120,11 @@ console-browserify@^1.1.0:
|
||||
resolved "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336"
|
||||
integrity sha1-ZwY871fOts9Jk6KrOlWECujEkzY=
|
||||
|
||||
console-control-strings@^1.0.0, console-control-strings@~1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "http://r.cnpmjs.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
|
||||
integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
|
||||
|
||||
consolidate@^0.15.1:
|
||||
version "0.15.1"
|
||||
resolved "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
|
||||
@@ -3546,7 +3573,7 @@ debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@^3.0.0, debug@^3.1.1, debug@^3.2.5:
|
||||
debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6:
|
||||
version "3.2.6"
|
||||
resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
|
||||
integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps=
|
||||
@@ -3577,6 +3604,13 @@ decompress-response@^3.3.0:
|
||||
dependencies:
|
||||
mimic-response "^1.0.0"
|
||||
|
||||
decompress-response@^4.2.0:
|
||||
version "4.2.1"
|
||||
resolved "http://r.cnpmjs.org/decompress-response/download/decompress-response-4.2.1.tgz#414023cc7a302da25ce2ec82d0d5238ccafd8986"
|
||||
integrity sha1-QUAjzHowLaJc4uyC0NUjjMr9iYY=
|
||||
dependencies:
|
||||
mimic-response "^2.0.0"
|
||||
|
||||
deep-equal@^1.0.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
|
||||
@@ -3695,6 +3729,11 @@ delayed-stream@~1.0.0:
|
||||
resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
|
||||
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
|
||||
|
||||
delegates@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "http://r.cnpmjs.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
|
||||
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
|
||||
|
||||
depd@~1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
|
||||
@@ -3713,6 +3752,11 @@ destroy@~1.0.4:
|
||||
resolved "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
|
||||
integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
|
||||
|
||||
detect-libc@^1.0.2:
|
||||
version "1.0.3"
|
||||
resolved "http://r.cnpmjs.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
|
||||
integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
|
||||
|
||||
detect-node@^2.0.4:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
|
||||
@@ -4016,10 +4060,10 @@ electron-updater@^4.2.0:
|
||||
pako "^1.0.10"
|
||||
semver "^6.3.0"
|
||||
|
||||
electron@^7.1.8:
|
||||
version "7.1.8"
|
||||
resolved "http://r.cnpmjs.org/electron/download/electron-7.1.8.tgz#7cd50fdf42c55c9de86ab126e983d23fd89d5d99"
|
||||
integrity sha1-fNUP30LFXJ3oarEm6YPSP9idXZk=
|
||||
electron@7.1.9:
|
||||
version "7.1.9"
|
||||
resolved "http://r.cnpmjs.org/electron/download/electron-7.1.9.tgz#5053195d2e476a3ecd881ece4edf64f0a8c32fa3"
|
||||
integrity sha1-UFMZXS5Haj7NiB7OTt9k8KjDL6M=
|
||||
dependencies:
|
||||
"@electron/get" "^1.0.1"
|
||||
"@types/node" "^12.0.12"
|
||||
@@ -4971,6 +5015,13 @@ fs-extra@^8.1.0:
|
||||
jsonfile "^4.0.0"
|
||||
universalify "^0.1.0"
|
||||
|
||||
fs-minipass@^1.2.5:
|
||||
version "1.2.7"
|
||||
resolved "http://r.cnpmjs.org/fs-minipass/download/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
|
||||
integrity sha1-zP+FcIQef+QmVpPaiJNsVa7X98c=
|
||||
dependencies:
|
||||
minipass "^2.6.0"
|
||||
|
||||
fs-minipass@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.0.0.tgz?cache=0&sync_timestamp=1569875077546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1"
|
||||
@@ -5016,6 +5067,20 @@ functional-red-black-tree@^1.0.1:
|
||||
resolved "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
|
||||
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
|
||||
|
||||
gauge@~2.7.3:
|
||||
version "2.7.4"
|
||||
resolved "http://r.cnpmjs.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
|
||||
integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
|
||||
dependencies:
|
||||
aproba "^1.0.3"
|
||||
console-control-strings "^1.0.0"
|
||||
has-unicode "^2.0.0"
|
||||
object-assign "^4.1.0"
|
||||
signal-exit "^3.0.0"
|
||||
string-width "^1.0.1"
|
||||
strip-ansi "^3.0.1"
|
||||
wide-align "^1.1.0"
|
||||
|
||||
gaze@~1.1.2:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a"
|
||||
@@ -5298,6 +5363,11 @@ has-symbols@^1.0.0, has-symbols@^1.0.1:
|
||||
resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz?cache=0&sync_timestamp=1573950719586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
|
||||
integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=
|
||||
|
||||
has-unicode@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "http://r.cnpmjs.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
|
||||
integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
|
||||
|
||||
has-value@^0.3.1:
|
||||
version "0.3.1"
|
||||
resolved "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
|
||||
@@ -5575,7 +5645,7 @@ icon-gen@^2.0.0:
|
||||
svg2png "4.1.1"
|
||||
uuid "^3.3.2"
|
||||
|
||||
iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24:
|
||||
iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4:
|
||||
version "0.4.24"
|
||||
resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
||||
integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=
|
||||
@@ -5606,6 +5676,13 @@ iferr@^0.1.5:
|
||||
resolved "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
|
||||
integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
|
||||
|
||||
ignore-walk@^3.0.1:
|
||||
version "3.0.3"
|
||||
resolved "http://r.cnpmjs.org/ignore-walk/download/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37"
|
||||
integrity sha1-AX4kRxhL/q3nwjjkrv3R6PlbHjc=
|
||||
dependencies:
|
||||
minimatch "^3.0.4"
|
||||
|
||||
ignore@^3.3.5:
|
||||
version "3.3.10"
|
||||
resolved "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
|
||||
@@ -6902,6 +6979,11 @@ mimic-response@^1.0.0, mimic-response@^1.0.1:
|
||||
resolved "https://registry.npm.taobao.org/mimic-response/download/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b"
|
||||
integrity sha1-SSNTiHju9CBjy4o+OweYeBSHqxs=
|
||||
|
||||
mimic-response@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "http://r.cnpmjs.org/mimic-response/download/mimic-response-2.0.0.tgz#996a51c60adf12cb8a87d7fb8ef24c2f3d5ebb46"
|
||||
integrity sha1-mWpRxgrfEsuKh9f7jvJMLz1eu0Y=
|
||||
|
||||
min-document@^2.19.0:
|
||||
version "2.19.0"
|
||||
resolved "http://r.cnpmjs.org/min-document/download/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
|
||||
@@ -6972,6 +7054,14 @@ minipass-pipeline@^1.2.2:
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
|
||||
minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0:
|
||||
version "2.9.0"
|
||||
resolved "http://r.cnpmjs.org/minipass/download/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6"
|
||||
integrity sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY=
|
||||
dependencies:
|
||||
safe-buffer "^5.1.2"
|
||||
yallist "^3.0.0"
|
||||
|
||||
minipass@^3.0.0, minipass@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5"
|
||||
@@ -6979,6 +7069,13 @@ minipass@^3.0.0, minipass@^3.1.1:
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
minizlib@^1.2.1:
|
||||
version "1.3.3"
|
||||
resolved "http://r.cnpmjs.org/minizlib/download/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d"
|
||||
integrity sha1-IpDeloGKNMKVUcio0wEha9Zahh0=
|
||||
dependencies:
|
||||
minipass "^2.9.0"
|
||||
|
||||
mississippi@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
|
||||
@@ -7003,7 +7100,7 @@ mixin-deep@^1.2.0:
|
||||
for-in "^1.0.2"
|
||||
is-extendable "^1.0.1"
|
||||
|
||||
mkdirp@0.5.1, mkdirp@^0.5.1, mkdirp@~0.5.1:
|
||||
mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1:
|
||||
version "0.5.1"
|
||||
resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
||||
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
|
||||
@@ -7069,7 +7166,7 @@ mz@^2.4.0:
|
||||
object-assign "^4.0.1"
|
||||
thenify-all "^1.0.0"
|
||||
|
||||
nan@^2.12.1:
|
||||
nan@^2.12.1, nan@^2.14.0:
|
||||
version "2.14.0"
|
||||
resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
|
||||
integrity sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw=
|
||||
@@ -7096,6 +7193,15 @@ natural-compare@^1.4.0:
|
||||
resolved "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
|
||||
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
|
||||
|
||||
needle@^2.2.1:
|
||||
version "2.4.0"
|
||||
resolved "http://r.cnpmjs.org/needle/download/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
|
||||
integrity sha1-aDPnSXXERGQlkOFadQKIxfk5tXw=
|
||||
dependencies:
|
||||
debug "^3.2.6"
|
||||
iconv-lite "^0.4.4"
|
||||
sax "^1.2.4"
|
||||
|
||||
negotiator@0.6.2:
|
||||
version "0.6.2"
|
||||
resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
|
||||
@@ -7166,6 +7272,22 @@ node-libs-browser@^2.2.1:
|
||||
util "^0.11.0"
|
||||
vm-browserify "^1.0.1"
|
||||
|
||||
node-pre-gyp@^0.11.0:
|
||||
version "0.11.0"
|
||||
resolved "http://r.cnpmjs.org/node-pre-gyp/download/node-pre-gyp-0.11.0.tgz#db1f33215272f692cd38f03238e3e9b47c5dd054"
|
||||
integrity sha1-2x8zIVJy9pLNOPAyOOPptHxd0FQ=
|
||||
dependencies:
|
||||
detect-libc "^1.0.2"
|
||||
mkdirp "^0.5.1"
|
||||
needle "^2.2.1"
|
||||
nopt "^4.0.1"
|
||||
npm-packlist "^1.1.6"
|
||||
npmlog "^4.0.2"
|
||||
rc "^1.2.7"
|
||||
rimraf "^2.6.1"
|
||||
semver "^5.3.0"
|
||||
tar "^4"
|
||||
|
||||
node-releases@^1.1.44:
|
||||
version "1.1.45"
|
||||
resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.45.tgz?cache=0&sync_timestamp=1578496101773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2"
|
||||
@@ -7173,6 +7295,14 @@ node-releases@^1.1.44:
|
||||
dependencies:
|
||||
semver "^6.3.0"
|
||||
|
||||
nopt@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "http://r.cnpmjs.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
|
||||
integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
|
||||
dependencies:
|
||||
abbrev "1"
|
||||
osenv "^0.1.4"
|
||||
|
||||
normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
|
||||
version "2.5.0"
|
||||
resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
|
||||
@@ -7230,6 +7360,13 @@ normalize-wheel@^1.0.1:
|
||||
resolved "https://registry.npm.taobao.org/normalize-wheel/download/normalize-wheel-1.0.1.tgz#aec886affdb045070d856447df62ecf86146ec45"
|
||||
integrity sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=
|
||||
|
||||
npm-bundled@^1.0.1:
|
||||
version "1.1.1"
|
||||
resolved "http://r.cnpmjs.org/npm-bundled/download/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b"
|
||||
integrity sha1-Ht1XCGWpTNsbyCIHdeKUZsn7I0s=
|
||||
dependencies:
|
||||
npm-normalize-package-bin "^1.0.1"
|
||||
|
||||
npm-conf@^1.1.3:
|
||||
version "1.1.3"
|
||||
resolved "http://r.cnpmjs.org/npm-conf/download/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9"
|
||||
@@ -7243,6 +7380,20 @@ npm-install-package@~2.1.0:
|
||||
resolved "https://registry.npm.taobao.org/npm-install-package/download/npm-install-package-2.1.0.tgz#d7efe3cfcd7ab00614b896ea53119dc9ab259125"
|
||||
integrity sha1-1+/jz816sAYUuJbqUxGdyaslkSU=
|
||||
|
||||
npm-normalize-package-bin@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "http://r.cnpmjs.org/npm-normalize-package-bin/download/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2"
|
||||
integrity sha1-bnmkHyP9I1wGIyGCKNp9nCO49uI=
|
||||
|
||||
npm-packlist@^1.1.6:
|
||||
version "1.4.8"
|
||||
resolved "http://r.cnpmjs.org/npm-packlist/download/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e"
|
||||
integrity sha1-Vu5swTW5+YrT1Rwcldoiu7my7z4=
|
||||
dependencies:
|
||||
ignore-walk "^3.0.1"
|
||||
npm-bundled "^1.0.1"
|
||||
npm-normalize-package-bin "^1.0.1"
|
||||
|
||||
npm-run-path@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
|
||||
@@ -7257,6 +7408,16 @@ npm-run-path@^4.0.0:
|
||||
dependencies:
|
||||
path-key "^3.0.0"
|
||||
|
||||
npmlog@^4.0.2:
|
||||
version "4.1.2"
|
||||
resolved "http://r.cnpmjs.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
|
||||
integrity sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=
|
||||
dependencies:
|
||||
are-we-there-yet "~1.1.2"
|
||||
console-control-strings "~1.1.0"
|
||||
gauge "~2.7.3"
|
||||
set-blocking "~2.0.0"
|
||||
|
||||
nth-check@^1.0.2, nth-check@~1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
|
||||
@@ -7479,6 +7640,11 @@ os-browserify@^0.3.0:
|
||||
resolved "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
|
||||
integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
|
||||
|
||||
os-homedir@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "http://r.cnpmjs.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
|
||||
integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
|
||||
|
||||
os-locale@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "http://r.cnpmjs.org/os-locale/download/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9"
|
||||
@@ -7495,11 +7661,19 @@ os-locale@^3.0.0:
|
||||
lcid "^2.0.0"
|
||||
mem "^4.0.0"
|
||||
|
||||
os-tmpdir@~1.0.2:
|
||||
os-tmpdir@^1.0.0, os-tmpdir@~1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
|
||||
integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
|
||||
|
||||
osenv@^0.1.4:
|
||||
version "0.1.5"
|
||||
resolved "http://r.cnpmjs.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
|
||||
integrity sha1-hc36+uso6Gd/QW4odZK18/SepBA=
|
||||
dependencies:
|
||||
os-homedir "^1.0.0"
|
||||
os-tmpdir "^1.0.0"
|
||||
|
||||
p-cancelable@^1.0.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npm.taobao.org/p-cancelable/download/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc"
|
||||
@@ -8445,6 +8619,21 @@ q@^1.1.2, q@~1.5.0:
|
||||
resolved "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
|
||||
integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
|
||||
|
||||
qrcanvas@^3.0.6:
|
||||
version "3.0.6"
|
||||
resolved "http://r.cnpmjs.org/qrcanvas/download/qrcanvas-3.0.6.tgz#9091e028a267eac3a10f2ddfcd09aa9981e89dfd"
|
||||
integrity sha1-kJHgKKJn6sOhDy3fzQmqmYHonf0=
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.7.4"
|
||||
qrcode-generator "^1.4.4"
|
||||
optionalDependencies:
|
||||
canvas "^2.6.0"
|
||||
|
||||
qrcode-generator@^1.4.4:
|
||||
version "1.4.4"
|
||||
resolved "http://r.cnpmjs.org/qrcode-generator/download/qrcode-generator-1.4.4.tgz#63f771224854759329a99048806a53ed278740e7"
|
||||
integrity sha1-Y/dxIkhUdZMpqZBIgGpT7SeHQOc=
|
||||
|
||||
qs@6.7.0:
|
||||
version "6.7.0"
|
||||
resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
|
||||
@@ -8508,7 +8697,7 @@ raw-body@2.4.0:
|
||||
iconv-lite "0.4.24"
|
||||
unpipe "1.0.0"
|
||||
|
||||
rc@^1.2.1, rc@^1.2.8:
|
||||
rc@^1.2.1, rc@^1.2.7, rc@^1.2.8:
|
||||
version "1.2.8"
|
||||
resolved "https://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
|
||||
integrity sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0=
|
||||
@@ -8574,7 +8763,7 @@ read-pkg@^5.1.1:
|
||||
parse-json "^5.0.0"
|
||||
type-fest "^0.6.0"
|
||||
|
||||
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
|
||||
"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6:
|
||||
version "2.3.7"
|
||||
resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
|
||||
integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=
|
||||
@@ -9144,7 +9333,7 @@ serve-static@1.14.1:
|
||||
parseurl "~1.3.3"
|
||||
send "0.17.1"
|
||||
|
||||
set-blocking@^2.0.0:
|
||||
set-blocking@^2.0.0, set-blocking@~2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
||||
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
|
||||
@@ -9233,6 +9422,20 @@ signal-exit@^3.0.0, signal-exit@^3.0.2:
|
||||
resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
|
||||
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
|
||||
|
||||
simple-concat@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "http://r.cnpmjs.org/simple-concat/download/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6"
|
||||
integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=
|
||||
|
||||
simple-get@^3.0.3:
|
||||
version "3.1.0"
|
||||
resolved "http://r.cnpmjs.org/simple-get/download/simple-get-3.1.0.tgz#b45be062435e50d159540b576202ceec40b9c6b3"
|
||||
integrity sha1-tFvgYkNeUNFZVAtXYgLO7EC5xrM=
|
||||
dependencies:
|
||||
decompress-response "^4.2.0"
|
||||
once "^1.3.1"
|
||||
simple-concat "^1.0.0"
|
||||
|
||||
simple-swizzle@^0.2.2:
|
||||
version "0.2.2"
|
||||
resolved "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
|
||||
@@ -9567,7 +9770,7 @@ string-width@^1.0.1, string-width@^1.0.2:
|
||||
is-fullwidth-code-point "^1.0.0"
|
||||
strip-ansi "^3.0.0"
|
||||
|
||||
string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
|
||||
"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
|
||||
integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=
|
||||
@@ -9813,6 +10016,19 @@ tar-stream@^1.5.0:
|
||||
to-buffer "^1.1.1"
|
||||
xtend "^4.0.0"
|
||||
|
||||
tar@^4:
|
||||
version "4.4.13"
|
||||
resolved "http://r.cnpmjs.org/tar/download/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525"
|
||||
integrity sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU=
|
||||
dependencies:
|
||||
chownr "^1.1.1"
|
||||
fs-minipass "^1.2.5"
|
||||
minipass "^2.8.6"
|
||||
minizlib "^1.2.1"
|
||||
mkdirp "^0.5.0"
|
||||
safe-buffer "^5.1.2"
|
||||
yallist "^3.0.3"
|
||||
|
||||
temp-file@^3.3.4:
|
||||
version "3.3.6"
|
||||
resolved "https://registry.npm.taobao.org/temp-file/download/temp-file-3.3.6.tgz?cache=0&sync_timestamp=1574845879029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftemp-file%2Fdownload%2Ftemp-file-3.3.6.tgz#bd7a1951338bf93b59380b498ec1804d5b76c449"
|
||||
@@ -10822,6 +11038,13 @@ which@^2.0.1:
|
||||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
wide-align@^1.1.0:
|
||||
version "1.1.3"
|
||||
resolved "http://r.cnpmjs.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
|
||||
integrity sha1-rgdOa9wMFKQx6ATmJFScYzsABFc=
|
||||
dependencies:
|
||||
string-width "^1.0.2 || 2"
|
||||
|
||||
widest-line@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npm.taobao.org/widest-line/download/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc"
|
||||
@@ -10996,7 +11219,7 @@ yallist@^2.1.2:
|
||||
resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
|
||||
integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
|
||||
|
||||
yallist@^3.0.2:
|
||||
yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
|
||||
integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=
|
||||
|
||||