From a4b47a37e66ccbca40529353e507c59ecc7c664d Mon Sep 17 00:00:00 2001 From: N0chteil <53608074+N0chteil@users.noreply.github.com> Date: Fri, 7 Jan 2022 21:22:24 +0100 Subject: [PATCH] Prettier --- index.js | 340 +++++++++++++++++++++++------------------ src/main/cider-base.js | 6 +- src/main/discordrpc.js | 140 ++++++++++------- 3 files changed, 285 insertions(+), 201 deletions(-) diff --git a/index.js b/index.js index afe9bb0f..5dc69882 100644 --- a/index.js +++ b/index.js @@ -1,124 +1,125 @@ require('v8-compile-cache'); -const {app, components} = require('electron'), - {resolve, join} = require("path"), +const { app, components } = require('electron'), + { resolve, join } = require('path'), CiderBase = require('./src/main/cider-base'); const comps = components; - // Analytics for debugging. -const ElectronSentry = require("@sentry/electron"); -ElectronSentry.init({dsn: "https://68c422bfaaf44dea880b86aad5a820d2@o954055.ingest.sentry.io/6112214"}); +const ElectronSentry = require('@sentry/electron'); +ElectronSentry.init({ + dsn: 'https://68c422bfaaf44dea880b86aad5a820d2@o954055.ingest.sentry.io/6112214' +}); const configDefaults = { - "general": { - "close_behavior": 0, // 0 = close, 1 = minimize, 2 = minimize to tray - "startup_behavior": 0, // 0 = nothing, 1 = open on startup - "discord_rpc": 1, // 0 = disabled, 1 = enabled as Cider, 2 = enabled as Apple Music - "discordClearActivityOnPause": 1, // 0 = disabled, 1 = enabled - "volume": 1 + general: { + close_behavior: 0, // 0 = close, 1 = minimize, 2 = minimize to tray + startup_behavior: 0, // 0 = nothing, 1 = open on startup + discord_rpc: 1, // 0 = disabled, 1 = enabled as Cider, 2 = enabled as Apple Music + discordClearActivityOnPause: 1, // 0 = disabled, 1 = enabled + volume: 1 }, - "home": { - "followedArtists": [], - "favoriteItems": [] + home: { + followedArtists: [], + favoriteItems: [] }, - "audio": { - "quality": "990", - "seamless_audio": true, - "normalization": false, - "spatial": false, - "spatial_properties": { - "presets": [], - "gain": 0.8, - "listener_position": [0, 0, 0], - "audio_position": [0, 0, 0], - "room_dimensions": { - "width": 32, - "height": 12, - "depth": 32 + audio: { + quality: '990', + seamless_audio: true, + normalization: false, + spatial: false, + spatial_properties: { + presets: [], + gain: 0.8, + listener_position: [0, 0, 0], + audio_position: [0, 0, 0], + room_dimensions: { + width: 32, + height: 12, + depth: 32 }, - "room_materials": { - "left": 'metal', - "right": 'metal', - "front": 'brick-bare', - "back": 'brick-bare', - "down": 'acoustic-ceiling-tiles', - "up": 'acoustic-ceiling-tiles', + room_materials: { + left: 'metal', + right: 'metal', + front: 'brick-bare', + back: 'brick-bare', + down: 'acoustic-ceiling-tiles', + up: 'acoustic-ceiling-tiles' } } }, - "visual": { - "theme": "", - "scrollbars": 0, // 0 = show on hover, 2 = always hide, 3 = always show - "refresh_rate": 0, - "animated_artwork": "limited", // 0 = always, 1 = limited, 2 = never - "animated_artwork_qualityLevel": 1, - "bg_artwork_rotation": false, - "hw_acceleration": "default", // default, webgpu, disabled - "window_transparency": "disabled" + visual: { + theme: '', + scrollbars: 0, // 0 = show on hover, 2 = always hide, 3 = always show + refresh_rate: 0, + animated_artwork: 'limited', // 0 = always, 1 = limited, 2 = never + animated_artwork_qualityLevel: 1, + bg_artwork_rotation: false, + hw_acceleration: 'default', // default, webgpu, disabled + window_transparency: 'disabled' }, - "lyrics": { - "enable_mxm": false, - "mxm_karaoke": false, - "mxm_language": "en", - "enable_yt": false, + lyrics: { + enable_mxm: false, + mxm_karaoke: false, + mxm_language: 'en', + enable_yt: false }, - "lastfm": { - "enabled": false, - "scrobble_after": 30, - "auth_token": "", - "enabledRemoveFeaturingArtists": true, - "NowPlaying": "true" + lastfm: { + enabled: false, + scrobble_after: 30, + auth_token: '', + enabledRemoveFeaturingArtists: true, + NowPlaying: 'true' }, - "advanced": { - "AudioContext": false, + advanced: { + AudioContext: false } -} +}; const merge = (target, source) => { // Iterate through `source` properties and if an `Object` set property to merge of `target` and `source` properties for (const key of Object.keys(source)) { - if (source[key] instanceof Object) Object.assign(source[key], merge(target[key], source[key])) + if (source[key] instanceof Object) + Object.assign(source[key], merge(target[key], source[key])); } // Join `target` and modified `source` - Object.assign(target || {}, source) - return target -} + Object.assign(target || {}, source); + return target; +}; - -const Store = require("electron-store"); +const Store = require('electron-store'); app.cfg = new Store({ defaults: configDefaults }); -let currentCfg = app.cfg.get() -app.cfg.set(merge(configDefaults, currentCfg)) +let currentCfg = app.cfg.get(); +app.cfg.set(merge(configDefaults, currentCfg)); app.paths = { - ciderCache: resolve(app.getPath("userData"), "CiderCache"), - themes: resolve(app.getPath("userData"), "Themes"), - plugins: resolve(app.getPath("userData"), "Plugins"), -} + ciderCache: resolve(app.getPath('userData'), 'CiderCache'), + themes: resolve(app.getPath('userData'), 'Themes'), + plugins: resolve(app.getPath('userData'), 'Plugins') +}; -switch (app.cfg.get("visual.hw_acceleration")) { +switch (app.cfg.get('visual.hw_acceleration')) { default: - case "default": - app.commandLine.appendSwitch('enable-accelerated-mjpeg-decode') - app.commandLine.appendSwitch('enable-accelerated-video') - app.commandLine.appendSwitch('disable-gpu-driver-bug-workarounds') - app.commandLine.appendSwitch('ignore-gpu-blacklist') - app.commandLine.appendSwitch('enable-native-gpu-memory-buffers') + case 'default': + app.commandLine.appendSwitch('enable-accelerated-mjpeg-decode'); + app.commandLine.appendSwitch('enable-accelerated-video'); + app.commandLine.appendSwitch('disable-gpu-driver-bug-workarounds'); + app.commandLine.appendSwitch('ignore-gpu-blacklist'); + app.commandLine.appendSwitch('enable-native-gpu-memory-buffers'); app.commandLine.appendSwitch('enable-accelerated-video-decode'); app.commandLine.appendSwitch('enable-gpu-rasterization'); app.commandLine.appendSwitch('enable-native-gpu-memory-buffers'); app.commandLine.appendSwitch('enable-oop-rasterization'); break; - case "webgpu": - console.info("WebGPU is enabled."); - app.commandLine.appendSwitch('enable-unsafe-webgpu') + case 'webgpu': + console.info('WebGPU is enabled.'); + app.commandLine.appendSwitch('enable-unsafe-webgpu'); break; - case "disabled": - console.info("Hardware acceleration is disabled."); - app.commandLine.appendSwitch('disable-gpu') + case 'disabled': + console.info('Hardware acceleration is disabled.'); + app.commandLine.appendSwitch('disable-gpu'); break; } @@ -130,13 +131,13 @@ function CreateWindow() { } /** CIDER **/ - const ciderwin = require("./src/main/cider-base") - app.win = ciderwin - app.win.Start() + const ciderwin = require('./src/main/cider-base'); + app.win = ciderwin; + app.win.Start(); /** CIDER **/ } -if (process.platform === "linux") { +if (process.platform === 'linux') { app.commandLine.appendSwitch('disable-features', 'MediaSessionService'); } @@ -144,37 +145,36 @@ app.commandLine.appendSwitch('no-sandbox'); // app.commandLine.appendSwitch('js-flags', '--max-old-space-size=1024') /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -* App Event Handlers -* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + * App Event Handlers + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ app.whenReady().then(async () => { - if (process.platform === "win32") { - app.commandLine.appendSwitch('high-dpi-support', 'true') - app.commandLine.appendSwitch('force-device-scale-factor', '1') + if (process.platform === 'win32') { + app.commandLine.appendSwitch('high-dpi-support', 'true'); + app.commandLine.appendSwitch('force-device-scale-factor', '1'); app.commandLine.appendSwitch('disable-pinch'); } if (comps == null) { - app.on("widevine-ready", () => { - console.log('[Cider] Application is Ready. Creating Window.') + app.on('widevine-ready', () => { + console.log('[Cider] Application is Ready. Creating Window.'); if (!app.isPackaged) { - console.info('[Cider] Running in development mode.') - require('vue-devtools').install() + console.info('[Cider] Running in development mode.'); + require('vue-devtools').install(); } - CreateWindow() - }) - return + CreateWindow(); + }); + return; } await comps.whenReady(); console.log('components ready:', comps.status()); - console.log('[Cider] Application is Ready. Creating Window.') + console.log('[Cider] Application is Ready. Creating Window.'); if (!app.isPackaged) { - console.info('[Cider] Running in development mode.') - require('vue-devtools').install() + console.info('[Cider] Running in development mode.'); + require('vue-devtools').install(); } - CreateWindow() -}) - + CreateWindow(); +}); app.on('before-quit', () => { console.warn(`${app.getName()} exited.`); @@ -183,73 +183,123 @@ app.on('before-quit', () => { // Widevine Stuff app.on('widevine-ready', (version, lastVersion) => { if (null !== lastVersion) { - console.log('[Cider][Widevine] Widevine ' + version + ', upgraded from ' + lastVersion + ', is ready to be used!') + console.log( + '[Cider][Widevine] Widevine ' + + version + + ', upgraded from ' + + lastVersion + + ', is ready to be used!' + ); } else { - console.log('[Cider][Widevine] Widevine ' + version + ' is ready to be used!') + console.log( + '[Cider][Widevine] Widevine ' + version + ' is ready to be used!' + ); } -}) +}); app.on('widevine-update-pending', (currentVersion, pendingVersion) => { - console.log('[Cider][Widevine] Widevine ' + currentVersion + ' is ready to be upgraded to ' + pendingVersion + '!') -}) + console.log( + '[Cider][Widevine] Widevine ' + + currentVersion + + ' is ready to be upgraded to ' + + pendingVersion + + '!' + ); +}); app.on('widevine-error', (error) => { - console.log('[Cider][Widevine] Widevine installation encountered an error: ' + error) - app.exit() -}) + console.log( + '[Cider][Widevine] Widevine installation encountered an error: ' + error + ); + app.exit(); +}); if (process.defaultApp) { if (process.argv.length >= 2) { - app.setAsDefaultProtocolClient('cider', process.execPath, [resolve(process.argv[1])]) - app.setAsDefaultProtocolClient('ame', process.execPath, [resolve(process.argv[1])]) - app.setAsDefaultProtocolClient('itms', process.execPath, [resolve(process.argv[1])]) - app.setAsDefaultProtocolClient('itmss', process.execPath, [resolve(process.argv[1])]) - app.setAsDefaultProtocolClient('musics', process.execPath, [resolve(process.argv[1])]) - app.setAsDefaultProtocolClient('music', process.execPath, [resolve(process.argv[1])]) + app.setAsDefaultProtocolClient('cider', process.execPath, [ + resolve(process.argv[1]) + ]); + app.setAsDefaultProtocolClient('ame', process.execPath, [ + resolve(process.argv[1]) + ]); + app.setAsDefaultProtocolClient('itms', process.execPath, [ + resolve(process.argv[1]) + ]); + app.setAsDefaultProtocolClient('itmss', process.execPath, [ + resolve(process.argv[1]) + ]); + app.setAsDefaultProtocolClient('musics', process.execPath, [ + resolve(process.argv[1]) + ]); + app.setAsDefaultProtocolClient('music', process.execPath, [ + resolve(process.argv[1]) + ]); } } else { - app.setAsDefaultProtocolClient('cider') // Custom AME Protocol - app.setAsDefaultProtocolClient('ame') // Custom AME Protocol - app.setAsDefaultProtocolClient('itms') // iTunes HTTP Protocol - app.setAsDefaultProtocolClient('itmss') // iTunes HTTPS Protocol - app.setAsDefaultProtocolClient('musics') // macOS Client Protocol - app.setAsDefaultProtocolClient('music') // macOS Client Protocol + app.setAsDefaultProtocolClient('cider'); // Custom AME Protocol + app.setAsDefaultProtocolClient('ame'); // Custom AME Protocol + app.setAsDefaultProtocolClient('itms'); // iTunes HTTP Protocol + app.setAsDefaultProtocolClient('itmss'); // iTunes HTTPS Protocol + app.setAsDefaultProtocolClient('musics'); // macOS Client Protocol + app.setAsDefaultProtocolClient('music'); // macOS Client Protocol } app.on('open-url', (event, url) => { - event.preventDefault() - if (url.includes('ame://') || url.includes('itms://') || url.includes('itmss://') || url.includes('musics://') || url.includes('music://')) { - CiderBase.LinkHandler(url) + event.preventDefault(); + if ( + url.includes('ame://') || + url.includes('itms://') || + url.includes('itmss://') || + url.includes('musics://') || + url.includes('music://') + ) { + CiderBase.LinkHandler(url); } -}) +}); app.on('second-instance', (_e, argv) => { - console.warn(`[InstanceHandler][SecondInstanceHandler] Second Instance Started with args: [${argv.join(', ')}]`) + console.warn( + `[InstanceHandler][SecondInstanceHandler] Second Instance Started with args: [${argv.join( + ', ' + )}]` + ); // Checks if first instance is authorized and if second instance has protocol args argv.forEach((value) => { - if (value.includes('ame://') || value.includes('itms://') || value.includes('itmss://') || value.includes('musics://') || value.includes('music://')) { - console.warn(`[InstanceHandler][SecondInstanceHandler] Found Protocol!`) + if ( + value.includes('ame://') || + value.includes('itms://') || + value.includes('itmss://') || + value.includes('musics://') || + value.includes('music://') + ) { + console.warn( + `[InstanceHandler][SecondInstanceHandler] Found Protocol!` + ); CiderBase.LinkHandler(value); } - }) + }); - if (argv.includes("--force-quit")) { - console.warn('[InstanceHandler][SecondInstanceHandler] Force Quit found. Quitting App.'); + if (argv.includes('--force-quit')) { + console.warn( + '[InstanceHandler][SecondInstanceHandler] Force Quit found. Quitting App.' + ); // app.isQuiting = true - app.quit() - } else if (CiderBase.win && true) { // If a Second Instance has Been Started - console.warn('[InstanceHandler][SecondInstanceHandler] Showing window.'); - app.win.show() - app.win.focus() + app.quit(); + } else if (CiderBase.win && true) { + // If a Second Instance has Been Started + console.warn( + '[InstanceHandler][SecondInstanceHandler] Showing window.' + ); + app.win.show(); + app.win.focus(); } -}) +}); if (!app.requestSingleInstanceLock() && true) { - console.warn("[InstanceHandler] Existing Instance is Blocking Second Instance."); + console.warn( + '[InstanceHandler] Existing Instance is Blocking Second Instance.' + ); app.quit(); // app.isQuiting = true } - - - \ No newline at end of file diff --git a/src/main/cider-base.js b/src/main/cider-base.js index 04143154..e30f7e82 100644 --- a/src/main/cider-base.js +++ b/src/main/cider-base.js @@ -40,7 +40,11 @@ const CiderBase = { let win = null; const options = { - icon: join(__dirname, `../../resources/icons/icon.` + (process.platform === "win32" ? "ico" : "png")), + icon: join( + __dirname, + `../../resources/icons/icon.` + + (process.platform === 'win32' ? 'ico' : 'png') + ), width: mainWindowState.width, height: mainWindowState.height, x: mainWindowState.x, diff --git a/src/main/discordrpc.js b/src/main/discordrpc.js index ea1f4467..96e75b2b 100644 --- a/src/main/discordrpc.js +++ b/src/main/discordrpc.js @@ -1,35 +1,42 @@ -const {app} = require('electron'), - DiscordRPC = require('discord-rpc') +const { app } = require('electron'), + DiscordRPC = require('discord-rpc'); module.exports = { - /** * Connects to Discord RPC * @param {string} clientId */ connect: function (clientId) { - app.discord = {isConnected: false}; - if (app.cfg.get('general.discord_rpc') == 0 || app.discord.isConnected) return; + app.discord = { isConnected: false }; + if (app.cfg.get('general.discord_rpc') == 0 || app.discord.isConnected) + return; - DiscordRPC.register(clientId) // Apparently needed for ask to join, join, spectate etc. - const client = new DiscordRPC.Client({transport: "ipc"}); - app.discord = Object.assign(client, {error: false, activityCache: null, isConnected: false}); + DiscordRPC.register(clientId); // Apparently needed for ask to join, join, spectate etc. + const client = new DiscordRPC.Client({ transport: 'ipc' }); + app.discord = Object.assign(client, { + error: false, + activityCache: null, + isConnected: false + }); // Login to Discord - app.discord.login({clientId}) + app.discord + .login({ clientId }) .then(() => { app.discord.isConnected = true; }) .catch((e) => console.error(`[DiscordRPC][connect] ${e}`)); app.discord.on('ready', () => { - console.log(`[DiscordRPC][connect] Successfully Connected to Discord. Authed for user: ${client.user.username} (${client.user.id})`); - }) + console.log( + `[DiscordRPC][connect] Successfully Connected to Discord. Authed for user: ${client.user.username} (${client.user.id})` + ); + }); // Handles Errors - app.discord.on('error', err => { + app.discord.on('error', (err) => { console.error(`[DiscordRPC] ${err}`); - this.disconnect() + this.disconnect(); app.discord.isConnected = false; }); }, @@ -38,15 +45,21 @@ module.exports = { * Disconnects from Discord RPC */ disconnect: function () { - if (app.cfg.get('general.discord_rpc') == 0 || !app.discord.isConnected) return; + if (app.cfg.get('general.discord_rpc') == 0 || !app.discord.isConnected) + return; try { - app.discord.destroy().then(() => { - app.discord.isConnected = false; - console.log('[DiscordRPC][disconnect] Disconnected from discord.') - }).catch((e) => console.error(`[DiscordRPC][disconnect] ${e}`)); + app.discord + .destroy() + .then(() => { + app.discord.isConnected = false; + console.log( + '[DiscordRPC][disconnect] Disconnected from discord.' + ); + }) + .catch((e) => console.error(`[DiscordRPC][disconnect] ${e}`)); } catch (err) { - console.error(err) + console.error(err); } }, @@ -58,85 +71,102 @@ module.exports = { if (app.cfg.get('general.discord_rpc') == 0) return; if (!app.discord.isConnected) { - app.discord.clearActivity().catch((e) => console.error(`[DiscordRPC][updateActivity] ${e}`)); + app.discord + .clearActivity() + .catch((e) => + console.error(`[DiscordRPC][updateActivity] ${e}`) + ); return; } // console.log('[DiscordRPC][updateActivity] Updating Discord Activity.') - const listenURL = `https://applemusicelectron.com/p?id=${attributes.playParams.id}` + const listenURL = `https://applemusicelectron.com/p?id=${attributes.playParams.id}`; //console.log(attributes) let ActivityObject = { details: attributes.name, state: `by ${attributes.artistName}`, startTimestamp: attributes.startTime, endTimestamp: attributes.endTime, - largeImageKey: (attributes.artwork.url.replace('{w}', '1024').replace('{h}', '1024')) ?? 'cider', + largeImageKey: + attributes.artwork.url + .replace('{w}', '1024') + .replace('{h}', '1024') ?? 'cider', largeImageText: attributes.albumName, - smallImageKey: (attributes.status ? 'play' : 'pause'), - smallImageText: (attributes.status ? 'Playing' : 'Paused'), + smallImageKey: attributes.status ? 'play' : 'pause', + smallImageText: attributes.status ? 'Playing' : 'Paused', instance: true, - buttons: [ - {label: "Listen on Cider", url: listenURL}, - ] + buttons: [{ label: 'Listen on Cider', url: listenURL }] }; - if (ActivityObject.largeImageKey == "" || ActivityObject.largeImageKey == null) { - ActivityObject.largeImageKey = (app.cfg.get("general.discord_rpc") == 1) ? "cider" : "logo" + if ( + ActivityObject.largeImageKey == '' || + ActivityObject.largeImageKey == null + ) { + ActivityObject.largeImageKey = + app.cfg.get('general.discord_rpc') == 1 ? 'cider' : 'logo'; } // Remove the pause/play icon and test for clear activity on pause if (app.cfg.get('general.discordClearActivityOnPause') == 1) { - delete ActivityObject.smallImageKey - delete ActivityObject.smallImageText + delete ActivityObject.smallImageKey; + delete ActivityObject.smallImageText; } // Deletes the timestamp if its not greater than 0 - if (!((new Date(attributes.endTime)).getTime() > 0)) { - delete ActivityObject.startTimestamp - delete ActivityObject.endTimestamp + if (!(new Date(attributes.endTime).getTime() > 0)) { + delete ActivityObject.startTimestamp; + delete ActivityObject.endTimestamp; } // Artist check if (!attributes.artistName) { - delete ActivityObject.state + delete ActivityObject.state; } // Album text check - if (!ActivityObject.largeImageText || ActivityObject.largeImageText.length < 2) { - delete ActivityObject.largeImageText + if ( + !ActivityObject.largeImageText || + ActivityObject.largeImageText.length < 2 + ) { + delete ActivityObject.largeImageText; } // Checks if the name is greater than 128 because some songs can be that long if (ActivityObject.details.length > 128) { - ActivityObject.details = ActivityObject.details.substring(0, 125) + '...' + ActivityObject.details = + ActivityObject.details.substring(0, 125) + '...'; } - - - // Check if its pausing (false) or playing (true) if (!attributes.status) { if (app.cfg.get('general.discordClearActivityOnPause') == 1) { - app.discord.clearActivity().catch((e) => console.error(`[DiscordRPC][clearActivity] ${e}`)); - ActivityObject = null + app.discord + .clearActivity() + .catch((e) => + console.error(`[DiscordRPC][clearActivity] ${e}`) + ); + ActivityObject = null; } else { - delete ActivityObject.startTimestamp - delete ActivityObject.endTimestamp - ActivityObject.smallImageKey = 'pause' - ActivityObject.smallImageText = 'Paused' + delete ActivityObject.startTimestamp; + delete ActivityObject.endTimestamp; + ActivityObject.smallImageKey = 'pause'; + ActivityObject.smallImageText = 'Paused'; } } - - if (ActivityObject && ActivityObject !== app.discord.activityCache && ActivityObject.details && ActivityObject.state) { + if ( + ActivityObject && + ActivityObject !== app.discord.activityCache && + ActivityObject.details && + ActivityObject.state + ) { try { // console.log(`[DiscordRPC][setActivity] Setting activity to ${JSON.stringify(ActivityObject)}`); - app.discord.setActivity(ActivityObject) - app.discord.activityCache = ActivityObject + app.discord.setActivity(ActivityObject); + app.discord.activityCache = ActivityObject; } catch (err) { - console.error(`[DiscordRPC][setActivity] ${err}`) + console.error(`[DiscordRPC][setActivity] ${err}`); } - } - }, -} \ No newline at end of file + } +};