From d6c7fb8dcc8cf4026fa93e2417c3f56480f73048 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Fri, 23 Aug 2019 19:28:54 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9EMAC=E3=80=81Linux=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E5=B9=B6=E5=85=BC=E5=AE=B9Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .travis.yml | 43 +++++++++++ README.md | 1 + license.rtf => licenses/license.rtf | 0 licenses/license_en.txt | 5 ++ licenses/license_zh.txt | 5 ++ package-lock.json | 2 +- package.json | 67 +++++++++++------- publish/changeLog.md | 8 +++ .../lunch.ico => resources/icons/256x256.ico | Bin resources/icons/512x512.icns | Bin 0 -> 43120 bytes resources/icons/512x512.png | Bin 0 -> 16571 bytes src/common/utils.js | 4 ++ src/main/index.js | 25 ++++++- src/renderer/App.vue | 35 ++++++--- src/renderer/components/core/Player.vue | 2 +- src/renderer/utils/index.js | 1 + src/renderer/views/Setting.vue | 11 ++- 18 files changed, 169 insertions(+), 41 deletions(-) create mode 100644 .travis.yml rename license.rtf => licenses/license.rtf (100%) create mode 100644 licenses/license_en.txt create mode 100644 licenses/license_zh.txt rename src/static/icons/lunch.ico => resources/icons/256x256.ico (100%) create mode 100644 resources/icons/512x512.icns create mode 100644 resources/icons/512x512.png create mode 100644 src/common/utils.js diff --git a/.gitignore b/.gitignore index 879b4c1d..2c55eb6c 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,7 @@ build/Release # Dependency directories node_modules/ +node_modules.bak*/ jspm_packages/ # TypeScript v1 declaration files diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..3d49021e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,43 @@ +matrix: + include: + - os: osx + osx_image: xcode10.2 + language: node_js + node_js: "12" + env: + - ELECTRON_CACHE=$HOME/.cache/electron + - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder + + - os: linux + language: node_js + node_js: "12" + dist: trusty + services: docker + language: generic + +cache: + directories: + - node_modules + - $HOME/.cache/electron + - $HOME/.cache/electron-builder + - $HOME/.npm/_prebuilds + +notifications: + email: false + +script: + - | + if [ "$TRAVIS_OS_NAME" == "linux" ]; then + npm install && npm run publish:gh:linux + else + npm run publish:gh:mac + fi + +before_cache: + - rm -rf $HOME/.cache/electron-builder/wine + +# only run this script on pull requests and merges into +# the 'master' and 'prod' branches +branches: + only: + - master diff --git a/README.md b/README.md index 595157ab..0ea82fff 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@

Release version Build status + Build status Downloads Dev branch version diff --git a/license.rtf b/licenses/license.rtf similarity index 100% rename from license.rtf rename to licenses/license.rtf diff --git a/licenses/license_en.txt b/licenses/license_en.txt new file mode 100644 index 00000000..7d99e6f9 --- /dev/null +++ b/licenses/license_en.txt @@ -0,0 +1,5 @@ +This program is only for learning to communicate! +Do not use for commercial purposes! ! +All consequences of using this software are borne by the user! + +By: lyswhut diff --git a/licenses/license_zh.txt b/licenses/license_zh.txt new file mode 100644 index 00000000..3244a95a --- /dev/null +++ b/licenses/license_zh.txt @@ -0,0 +1,5 @@ +本程序仅用于学习交流使用! +请勿用于商业用途!! +使用本软件造成的一切后果由使用者承担! + +By: 落雪无痕 diff --git a/package-lock.json b/package-lock.json index ab92ffe5..9ec31398 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "lx-music-desktop", - "version": "0.2.3", + "version": "0.2.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c1b098ef..eded902b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lx-music-desktop", - "version": "0.2.3", + "version": "0.2.4", "description": "一个免费的音乐下载助手", "main": "./dist/electron/main.js", "productName": "lx-music-desktop", @@ -26,6 +26,15 @@ "publish:win:7z": "npm run publish:win:7z:x64 && npm run publish:win:7z:x86", "publish:win:7z:x64": "cross-env TARGET=green ARCH=x64 electron-builder -w=7z --x64 -p onTagOrDraft", "publish:win:7z:x86": "cross-env TARGET=green ARCH=x86 electron-builder -w=7z --ia32 -p onTagOrDraft", + "publish:gh:mac": "node build-config/pack.js && npm run publish:mac", + "publish:mac": "npm run publish:mac:dmg", + "publish:mac:dmg": "electron-builder -m=dmg -p onTagOrDraft", + "publish:gh:linux": "node build-config/pack.js && npm run publish:linux", + "publish:linux": "npm run publish:linux:appImage && npm run publish:linux:deb", + "publish:linux:appImage": "cross-env ARCH=x64 electron-builder -l=AppImage -p onTagOrDraft", + "publish:linux:deb": "npm run publish:linux:deb:x64 && npm run publish:linux:deb:x86", + "publish:linux:deb:x64": "cross-env ARCH=x64 electron-builder -l=deb --x64 -p onTagOrDraft", + "publish:linux:deb:x86": "cross-env ARCH=x86 electron-builder -l=deb --ia32 -p onTagOrDraft", "pack:linux": "node build-config/pack.js && electron-builder -l", "pack:dir": "node build-config/pack.js && electron-builder --dir", "dev": "node build-config/runner-dev.js", @@ -53,43 +62,51 @@ "files": [ "dist/electron/**/*" ], + "extraResources": [ + "./licenses" + ], "win": { - "icon": "src/static/icons/lunch.ico", + "icon": "./resources/icons/256x256.ico", "legalTrademarks": "lyswhut", "artifactName": "${productName} v${version} ${env.ARCH} ${env.TARGET}.${ext}" }, + "mac": { + "icon": "./resources/icons/512x512.png", + "category": "public.app-category.music" + }, "linux": { - "target": [ - { - "target": "AppImage", - "arch": [ - "x64" - ] - }, - { - "arch": [ - "ia32", - "x64" - ], - "target": "deb" - }, - { - "arch": [ - "x64" - ], - "target": "snap" - } - ], - "maintainer": "lyswhut " + "maintainer": "lyswhut ", + "artifactName": "${productName} v${version} ${env.ARCH}.${ext}" }, "nsis": { "oneClick": false, "language": "2052", "allowToChangeInstallationDirectory": true, "differentialPackage": true, - "license": "./license.rtf", + "license": "./licenses/license.rtf", "shortcutName": "lx-music" }, + "dmg": { + "contents": [ + { + "x": 110, + "y": 150, + "name": "lx-music" + }, + { + "x": 240, + "y": 150, + "type": "link", + "path": "/Applications", + "name": "lx-music" + } + ], + "title": "洛雪音乐助手 v${version}" + }, + "appImage": { + "license": "./licenses/license_zh.txt", + "category": "Audio" + }, "publish": [ { "provider": "github", diff --git a/publish/changeLog.md b/publish/changeLog.md index e69de29b..b75c3a75 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -0,0 +1,8 @@ +### 新增 + +- 新增**MAC**及**Linux**版本(需要的可自行下载) +- 新增任务栏播放进度条控制选项(现在可在设置界面关闭在任务栏显示的播放进度) + +### 修复 + +- 强制把临时接口设置回 `messoer` 接口 diff --git a/src/static/icons/lunch.ico b/resources/icons/256x256.ico similarity index 100% rename from src/static/icons/lunch.ico rename to resources/icons/256x256.ico diff --git a/resources/icons/512x512.icns b/resources/icons/512x512.icns new file mode 100644 index 0000000000000000000000000000000000000000..8bb1977e2b3d986f9af0d9c4204c96a08a18d94d GIT binary patch literal 43120 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 SMxzUAk~Qe0L?#`w`o92dA;o?G literal 0 HcmV?d00001 diff --git a/resources/icons/512x512.png b/resources/icons/512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..6f6e3c399aa979c7913047e037af7a7843e8b69e GIT binary patch literal 16571 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 literal 0 HcmV?d00001 diff --git a/src/common/utils.js b/src/common/utils.js new file mode 100644 index 00000000..831925c7 --- /dev/null +++ b/src/common/utils.js @@ -0,0 +1,4 @@ +export const isLinux = process.platform == 'linux' +export const isWin = process.platform == 'win32' +export const isMac = process.platform == 'darwin' + diff --git a/src/main/index.js b/src/main/index.js index 52f05f20..f223b5bb 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -1,10 +1,11 @@ -const { app, BrowserWindow } = require('electron') +const { app, BrowserWindow, Menu } = require('electron') const path = require('path') require('./events') const progressBar = require('./events/progressBar') const trafficLight = require('./events/trafficLight') const autoUpdate = require('./utils/autoUpdate') +const { isLinux, isMac } = require('../common/utils') const isDev = process.env.NODE_ENV !== 'production' @@ -33,8 +34,8 @@ function createWindow() { useContentSize: true, width: 920, frame: false, - transparent: true, - icon: path.join(global.__static, 'icons/lunch.ico'), + transparent: !isLinux, + // icon: path.join(global.__static, isWin ? 'icons/256x256.ico' : 'icons/512x512.png'), resizable: false, maximizable: false, fullscreenable: false, @@ -58,6 +59,24 @@ function createWindow() { if (!isDev) autoUpdate(mainWindow) } +if (isMac) { + const template = [ + { + label: app.getName(), + submenu: [{ label: '关于洛雪音乐', role: 'about' }, { type: 'separator' }, { label: '隐藏', role: 'hide' }, { label: '显示其他', role: 'hideothers' }, { label: '显示全部', role: 'unhide' }, { type: 'separator' }, { label: '退出', click: () => app.quit() }], + }, + { + label: '窗口', + role: 'window', + submenu: [{ label: '最小化', role: 'minimize' }, { label: '关闭', role: 'close' }], + }, + ] + + Menu.setApplicationMenu(Menu.buildFromTemplate(template)) +} else { + Menu.setApplicationMenu(null) +} + app.once('ready', createWindow) app.on('window-all-closed', () => { diff --git a/src/renderer/App.vue b/src/renderer/App.vue index 31b1f5b6..f649c91c 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -1,5 +1,5 @@