lint: prettier lint

This commit is contained in:
kunkka 2020-10-30 10:59:26 +08:00
parent 86b4b9d523
commit a9e153cfd6
10 changed files with 269 additions and 273 deletions

View File

@ -25,8 +25,8 @@
import Navbar from "./components/Navbar.vue";
import Player from "./components/Player.vue";
import GlobalEvents from "vue-global-events";
const electron = window.require('electron')
const ipcRenderer = electron.ipcRenderer
const electron = window.require("electron");
const ipcRenderer = electron.ipcRenderer;
export default {
name: "App",
@ -35,44 +35,44 @@ export default {
Player,
GlobalEvents,
},
created(){
created() {
// listens to the main process 'changeRouteTo' event and changes the route from
// inside this Vue instance, according to what path the main process requires.
// responds to Menu click() events at the main process and changes the route accordingly.
ipcRenderer.on('changeRouteTo', (event, path) => {
console.log(event)
this.$router.push(path)
})
ipcRenderer.on('play', () => {
this.$refs.player.play()
})
ipcRenderer.on('next', () => {
this.$refs.player.next()
})
ipcRenderer.on('previous', () => {
this.$refs.player.previous()
})
ipcRenderer.on('increaseVolume', () => {
ipcRenderer.on("changeRouteTo", (event, path) => {
console.log(event);
this.$router.push(path);
});
ipcRenderer.on("play", () => {
this.$refs.player.play();
});
ipcRenderer.on("next", () => {
this.$refs.player.next();
});
ipcRenderer.on("previous", () => {
this.$refs.player.previous();
});
ipcRenderer.on("increaseVolume", () => {
if (this.$refs.player.volume + 0.1 >= 1) {
return this.$refs.player.volume = 1
return (this.$refs.player.volume = 1);
}
this.$refs.player.volume += 0.1
})
ipcRenderer.on('decreaseVolume', () => {
this.$refs.player.volume += 0.1;
});
ipcRenderer.on("decreaseVolume", () => {
if (this.$refs.player.volume - 0.1 <= 0) {
return this.$refs.player.volume = 0
return (this.$refs.player.volume = 0);
}
this.$refs.player.volume -= 0.1
})
ipcRenderer.on('like', () => {
this.$refs.player.likeCurrentSong()
})
ipcRenderer.on('repeat', () => {
this.$refs.player.repeat()
})
ipcRenderer.on('shuffle', () => {
this.$refs.player.shuffle()
})
this.$refs.player.volume -= 0.1;
});
ipcRenderer.on("like", () => {
this.$refs.player.likeCurrentSong();
});
ipcRenderer.on("repeat", () => {
this.$refs.player.repeat();
});
ipcRenderer.on("shuffle", () => {
this.$refs.player.shuffle();
});
},
methods: {
play(e) {

View File

@ -1,6 +1,6 @@
"use strict";
import path from 'path'
import path from "path";
// import { autoUpdater } from "electron-updater"
import {
app,
@ -23,27 +23,27 @@ let win;
protocol.registerSchemesAsPrivileged([
{ scheme: "app", privileges: { secure: true, standard: true } },
]);
const iconString = path.join(__static, "img/icons/apple-touch-icon.png")
const iconString = path.join(__static, "img/icons/apple-touch-icon.png");
let bounceId = app.dock.bounce()
app.dock.setIcon(iconString)
let bounceId = app.dock.bounce();
app.dock.setIcon(iconString);
function createWindow() {
const touchbar = require('./electron/touchbar.js')
const tray = require('./electron/tray.js')
const createMenu = require('./electron/menu.js')
tray.on('click', function () {
const touchbar = require("./electron/touchbar.js");
const tray = require("./electron/tray.js");
const createMenu = require("./electron/menu.js");
tray.on("click", function () {
if (win.isVisible()) {
win.hide()
win.hide();
} else {
win.show()
win.show();
}
})
});
win = new BrowserWindow({
width: 1440,
height: 768,
icon: iconString,
titleBarStyle: 'default',
titleBarStyle: "default",
webPreferences: {
webSecurity: false,
nodeIntegration: true,
@ -52,13 +52,13 @@ function createWindow() {
});
try {
createMenu(win)
win.setTouchBar(touchbar)
win.setAutoHideCursor(true)
app.dock.cancelBounce(bounceId)
createMenu(win);
win.setTouchBar(touchbar);
win.setAutoHideCursor(true);
app.dock.cancelBounce(bounceId);
// autoUpdater.checkForUpdatesAndNotify()
} catch (error) {
console.log(error)
console.log(error);
}
if (process.env.WEBPACK_DEV_SERVER_URL) {
@ -98,7 +98,7 @@ app.on("activate", () => {
// Some APIs can only be used after this event occurs.
app.on("ready", async () => {
// 启动 api 服务器
require('./electron/services.js')
require("./electron/services.js");
if (isDevelopment && !process.env.IS_TEST) {
// Install Vue Devtools
try {

View File

@ -1,178 +1,177 @@
const { app, Menu } = require('electron')
const { app, Menu } = require("electron");
// import { autoUpdater } from "electron-updater"
// const version = app.getVersion();
const isMac = process.platform === 'darwin'
const isMac = process.platform === "darwin";
function createMenu(win) {
let menu = null
let menu = null;
const template = [
...(isMac ? [{
label: app.name,
submenu: [
{ role: 'about' },
{ type: 'separator' },
{ role: 'services' },
{ type: 'separator' },
{ type: 'separator' },
{
label: 'Preferences...',
accelerator: (() => isMac ? 'CmdOrCtrl+,' : 'Ctrl+,')(),
click: () => {
win.webContents.send("changeRouteTo", "/settings")
},
role: 'preferences'
},
{ type: 'separator' },
{ role: 'hide' },
{ role: 'hideothers' },
{ role: 'unhide' },
{ type: 'separator' },
{ role: 'quit' }
]
}] : []),
{
label: 'Edit',
submenu: [
{ role: 'undo' },
{ role: 'redo' },
{ type: 'separator' },
{ role: 'cut' },
{ role: 'copy' },
{ role: 'paste' },
...(isMac ? [
{ role: 'delete' },
{ role: 'selectAll' },
{ type: 'separator' },
...(isMac
? [
{
label: 'Speech',
label: app.name,
submenu: [
{ role: 'startspeaking' },
{ role: 'stopspeaking' }
{ role: "about" },
{ type: "separator" },
{ role: "services" },
{ type: "separator" },
{ type: "separator" },
{
label: "Preferences...",
accelerator: (() => (isMac ? "CmdOrCtrl+," : "Ctrl+,"))(),
click: () => {
win.webContents.send("changeRouteTo", "/settings");
},
role: "preferences",
},
{ type: "separator" },
{ role: "hide" },
{ role: "hideothers" },
{ role: "unhide" },
{ type: "separator" },
{ role: "quit" },
],
},
]
: []),
{
label: "Edit",
submenu: [
{ role: "undo" },
{ role: "redo" },
{ type: "separator" },
{ role: "cut" },
{ role: "copy" },
{ role: "paste" },
...(isMac
? [
{ role: "delete" },
{ role: "selectAll" },
{ type: "separator" },
{
label: "Speech",
submenu: [{ role: "startspeaking" }, { role: "stopspeaking" }],
},
]
}
] : [
{ role: 'delete' },
{ type: 'separator' },
{ role: 'selectAll' }
])
]
: [{ role: "delete" }, { type: "separator" }, { role: "selectAll" }]),
],
},
{
label: 'Controls',
label: "Controls",
submenu: [
{
label: 'Play',
accelerator: 'Space',
label: "Play",
accelerator: "Space",
click: () => {
win.webContents.send("play")
win.webContents.send("play");
},
},
{
label: 'Next',
accelerator: 'CmdOrCtrl+Right',
label: "Next",
accelerator: "CmdOrCtrl+Right",
click: () => {
win.webContents.send("next")
win.webContents.send("next");
},
},
{
label: 'Previous',
accelerator: 'CmdOrCtrl+Left',
label: "Previous",
accelerator: "CmdOrCtrl+Left",
click: () => {
win.webContents.send("previous")
win.webContents.send("previous");
},
},
{
label: 'Increase Volume',
accelerator: 'CmdOrCtrl+Up',
label: "Increase Volume",
accelerator: "CmdOrCtrl+Up",
click: () => {
win.webContents.send("increaseVolume")
win.webContents.send("increaseVolume");
},
},
{
label: 'Decrease Volume',
accelerator: 'CmdOrCtrl+Down',
label: "Decrease Volume",
accelerator: "CmdOrCtrl+Down",
click: () => {
win.webContents.send("decreaseVolume")
win.webContents.send("decreaseVolume");
},
},
{
label: 'Like',
accelerator: 'CmdOrCtrl+L',
label: "Like",
accelerator: "CmdOrCtrl+L",
click: () => {
win.webContents.send("like")
win.webContents.send("like");
},
},
{
label: 'Repeat',
accelerator: 'Alt+R',
label: "Repeat",
accelerator: "Alt+R",
click: () => {
win.webContents.send("repeat")
win.webContents.send("repeat");
},
},
{
label: 'Shuffle',
accelerator: 'Alt+S',
label: "Shuffle",
accelerator: "Alt+S",
click: () => {
win.webContents.send("shuffle")
win.webContents.send("shuffle");
},
}
]
},
],
},
{
label: 'Window',
label: "Window",
submenu: [
{ role: 'minimize' },
{ role: 'zoom' },
{ role: 'reload' },
{ role: 'forcereload' },
{ role: 'toggledevtools' },
{ type: 'separator' },
{ role: 'togglefullscreen' },
...(isMac ? [
{ type: 'separator' },
{ role: 'front' },
{ type: 'separator' },
{
role: 'window',
id: 'window',
label: 'Yes Play Music',
type: 'checkbox',
checked: true,
click: () => {
const current = menu.getMenuItemById('window')
if (current.checked === false) {
win.hide()
} else {
win.show()
}
},
}
] : [
{ role: 'close' }
])
]
{ role: "minimize" },
{ role: "zoom" },
{ role: "reload" },
{ role: "forcereload" },
{ role: "toggledevtools" },
{ type: "separator" },
{ role: "togglefullscreen" },
...(isMac
? [
{ type: "separator" },
{ role: "front" },
{ type: "separator" },
{
role: "window",
id: "window",
label: "Yes Play Music",
type: "checkbox",
checked: true,
click: () => {
const current = menu.getMenuItemById("window");
if (current.checked === false) {
win.hide();
} else {
win.show();
}
},
},
]
: [{ role: "close" }]),
],
},
{
label: 'Help',
label: "Help",
submenu: [
{
label: 'Github',
label: "Github",
click: async () => {
const { shell } = require('electron')
await shell.openExternal('https://github.com/qier222/YesPlayMusic')
}
const { shell } = require("electron");
await shell.openExternal("https://github.com/qier222/YesPlayMusic");
},
},
{
label: 'Electron',
label: "Electron",
click: async () => {
const { shell } = require('electron')
await shell.openExternal('https://electronjs.org')
}
const { shell } = require("electron");
await shell.openExternal("https://electronjs.org");
},
},
]
}
]
],
},
];
// for window
// if (process.platform === "win32") {
// template.push({
@ -194,10 +193,8 @@ function createMenu(win) {
// ],
// });
// }
menu = Menu.buildFromTemplate(template)
Menu.setApplicationMenu(menu)
menu = Menu.buildFromTemplate(template);
Menu.setApplicationMenu(menu);
}
module.exports = createMenu
module.exports = createMenu;

View File

@ -1,57 +1,57 @@
const express = require("express");
const bodyParser = require('body-parser')
const cache = require('../../napi/util/apicache').middleware
const fileUpload = require('express-fileupload')
const bodyParser = require("body-parser");
const cache = require("../../napi/util/apicache").middleware;
const fileUpload = require("express-fileupload");
import routes from "../../napi/routes";
// Integrate API
const app = express()
const app = express();
// CORS & Preflight request
app.use((req, res, next) => {
if (req.path !== '/' && !req.path.includes('.')) {
if (req.path !== "/" && !req.path.includes(".")) {
res.set({
'Access-Control-Allow-Credentials': true,
'Access-Control-Allow-Origin': req.headers.origin || '*',
'Access-Control-Allow-Headers': 'X-Requested-With,Content-Type',
'Access-Control-Allow-Methods': 'PUT,POST,GET,DELETE,OPTIONS',
'Content-Type': 'application/json; charset=utf-8',
})
"Access-Control-Allow-Credentials": true,
"Access-Control-Allow-Origin": req.headers.origin || "*",
"Access-Control-Allow-Headers": "X-Requested-With,Content-Type",
"Access-Control-Allow-Methods": "PUT,POST,GET,DELETE,OPTIONS",
"Content-Type": "application/json; charset=utf-8",
});
}
req.method === 'OPTIONS' ? res.status(204).end() : next()
})
req.method === "OPTIONS" ? res.status(204).end() : next();
});
// cookie parser
app.use((req, res, next) => {
req.cookies = {}
;(req.headers.cookie || '').split(/\s*;\s*/).forEach((pair) => {
let crack = pair.indexOf('=')
if (crack < 1 || crack == pair.length - 1) return
req.cookies = {};
(req.headers.cookie || "").split(/\s*;\s*/).forEach((pair) => {
let crack = pair.indexOf("=");
if (crack < 1 || crack == pair.length - 1) return;
req.cookies[
decodeURIComponent(pair.slice(0, crack)).trim()
] = decodeURIComponent(pair.slice(crack + 1)).trim()
})
next()
})
] = decodeURIComponent(pair.slice(crack + 1)).trim();
});
next();
});
// body parser
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(fileUpload())
app.use(fileUpload());
// cache
app.use(cache('2 minutes', (req, res) => res.statusCode === 200))
app.use(cache("2 minutes", (req, res) => res.statusCode === 200));
// router
Object.keys(routes).forEach(route => {
app.use(route, routes[route])
})
Object.keys(routes).forEach((route) => {
app.use(route, routes[route]);
});
const port = process.env.PORT || 10754
const host = process.env.HOST || '127.0.0.1'
const port = process.env.PORT || 10754;
const host = process.env.HOST || "127.0.0.1";
app.server = app.listen(port, host, () => {
console.log(`server running @ http://${host ? host : 'localhost'}:${port}`)
})
console.log(`server running @ http://${host ? host : "localhost"}:${port}`);
});

View File

@ -1,96 +1,92 @@
const {
app,
BrowserWindow,
TouchBar
} = require('electron')
const { app, BrowserWindow, TouchBar } = require("electron");
const { TouchBarLabel, TouchBarButton, TouchBarSpacer } = TouchBar
const { TouchBarLabel, TouchBarButton, TouchBarSpacer } = TouchBar;
let spinning = false
let spinning = false;
// Reel labels
const reel1 = new TouchBarLabel()
const reel2 = new TouchBarLabel()
const reel3 = new TouchBarLabel()
const reel1 = new TouchBarLabel();
const reel2 = new TouchBarLabel();
const reel3 = new TouchBarLabel();
// Spin result label
const result = new TouchBarLabel()
const result = new TouchBarLabel();
// Spin button
const spin = new TouchBarButton({
label: '🎰 Spin',
backgroundColor: '#7851A9',
label: "🎰 Spin",
backgroundColor: "#7851A9",
click: () => {
// Ignore clicks if already spinning
if (spinning) {
return
return;
}
spinning = true
result.label = ''
spinning = true;
result.label = "";
let timeout = 10
const spinLength = 4 * 1000 // 4 seconds
const startTime = Date.now()
let timeout = 10;
const spinLength = 4 * 1000; // 4 seconds
const startTime = Date.now();
const spinReels = () => {
updateReels()
updateReels();
if ((Date.now() - startTime) >= spinLength) {
finishSpin()
if (Date.now() - startTime >= spinLength) {
finishSpin();
} else {
// Slow down a bit on each spin
timeout *= 1.1
setTimeout(spinReels, timeout)
timeout *= 1.1;
setTimeout(spinReels, timeout);
}
}
};
spinReels()
}
})
spinReels();
},
});
const getRandomValue = () => {
const values = ['🍒', '💎', '7⃣', '🍊', '🔔', '⭐', '🍇', '🍀']
return values[Math.floor(Math.random() * values.length)]
}
const values = ["🍒", "💎", "7⃣", "🍊", "🔔", "⭐", "🍇", "🍀"];
return values[Math.floor(Math.random() * values.length)];
};
const updateReels = () => {
reel1.label = getRandomValue()
reel2.label = getRandomValue()
reel3.label = getRandomValue()
}
reel1.label = getRandomValue();
reel2.label = getRandomValue();
reel3.label = getRandomValue();
};
const finishSpin = () => {
const uniqueValues = new Set([reel1.label, reel2.label, reel3.label]).size
const uniqueValues = new Set([reel1.label, reel2.label, reel3.label]).size;
if (uniqueValues === 1) {
// All 3 values are the same
result.label = '💰 Jackpot!'
result.textColor = '#FDFF00'
result.label = "💰 Jackpot!";
result.textColor = "#FDFF00";
} else if (uniqueValues === 2) {
// 2 values are the same
result.label = '😍 Winner!'
result.textColor = '#FDFF00'
result.label = "😍 Winner!";
result.textColor = "#FDFF00";
} else {
// No values are the same
result.label = '🙁 Spin Again'
result.textColor = null
result.label = "🙁 Spin Again";
result.textColor = null;
}
spinning = false
}
spinning = false;
};
const touchBar = new TouchBar({
items: [
spin,
new TouchBarSpacer({ size: 'large' }),
new TouchBarSpacer({ size: "large" }),
reel1,
new TouchBarSpacer({ size: 'small' }),
new TouchBarSpacer({ size: "small" }),
reel2,
new TouchBarSpacer({ size: 'small' }),
new TouchBarSpacer({ size: "small" }),
reel3,
new TouchBarSpacer({ size: 'large' }),
result
]
})
new TouchBarSpacer({ size: "large" }),
result,
],
});
// let window
@ -104,4 +100,4 @@ const touchBar = new TouchBar({
// window.setTouchBar(touchBar)
// })
module.exports = touchBar
module.exports = touchBar;

View File

@ -1,12 +1,12 @@
const path = require('path')
const { Menu, Tray } = require('electron')
const path = require("path");
const { Menu, Tray } = require("electron");
let tray = null
let tray = null;
const macIcon = path.join(__static, "img/icons/menu.png")
const winIcon = path.join(__static, "img/icons/icon.ico")
const macIcon = path.join(__static, "img/icons/menu.png");
const winIcon = path.join(__static, "img/icons/icon.ico");
tray = new Tray(macIcon)
tray = new Tray(macIcon);
// Temporary no need for menu.
// const contextMenu = Menu.buildFromTemplate([
@ -21,4 +21,4 @@ tray = new Tray(macIcon)
// Call this again for Linux because we modified the context menu
// tray.setContextMenu(contextMenu)
module.exports = tray
module.exports = tray;

View File

@ -36,7 +36,7 @@ export default {
artist: "Artist",
videos: "Music Videos",
following: "Following",
follow: "Follow"
follow: "Follow",
},
album: {
released: "Released",

View File

@ -33,7 +33,7 @@ export default {
artist: "歌手",
videos: "个MV",
following: "已关注",
follow: "关注"
follow: "关注",
},
album: {
released: "发行于",

View File

@ -2,7 +2,10 @@
import { register } from "register-service-worker";
if (process.env.NODE_ENV === "production" && process.env.IS_ELECTRON === 'undefined') {
if (
process.env.NODE_ENV === "production" &&
process.env.IS_ELECTRON === "undefined"
) {
register(`${process.env.BASE_URL}service-worker.js`, {
ready() {
console.log(

View File

@ -1,11 +1,11 @@
import axios from "axios";
let baseURL = ''
let baseURL = "";
// Web 和 Electron 跑在不同端口避免同时启动时冲突
if (process.env.IS_ELECTRON) {
baseURL = process.env.VUE_APP_ELECTRON_API_URL
baseURL = process.env.VUE_APP_ELECTRON_API_URL;
} else {
baseURL = process.env.VUE_APP_NETEASE_API_URL
baseURL = process.env.VUE_APP_NETEASE_API_URL;
}
const service = axios.create({