diff --git a/src/main/index.js b/src/main/index.js index aae38455..9ea3a1e1 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -14,7 +14,7 @@ app.setName(productName) // disable electron warning process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true' -const gotTheLock = app.requestSingleInstanceLock() +// const gotTheLock = app.requestSingleInstanceLock() const isDev = process.env.NODE_ENV === 'development' const isDebug = process.argv.includes('--debug') let mainWindow @@ -24,25 +24,26 @@ let mainWindow // This line can possible be removed if the issue is fixed upstream app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors') +// TODO: Uncomment if needed // only allow single instance of application -if (!isDev) { - if (gotTheLock) { - app.on('second-instance', () => { - // Someone tried to run a second instance, we should focus our window. - if (mainWindow && mainWindow.isMinimized()) { - mainWindow.restore() - } - mainWindow.focus() - }) - } else { - app.quit() - process.exit(0) - } -} else { - require('electron-debug')({ - showDevTools: !(process.env.RENDERER_REMOTE_DEBUGGING === 'true') - }) -} +// if (!isDev) { +// if (gotTheLock) { +// app.on('second-instance', () => { +// // Someone tried to run a second instance, we should focus our window. +// if (mainWindow && mainWindow.isMinimized()) { +// mainWindow.restore() +// } +// mainWindow.focus() +// }) +// } else { +// app.quit() +// process.exit(0) +// } +// } else { +// require('electron-debug')({ +// showDevTools: !(process.env.RENDERER_REMOTE_DEBUGGING === 'true') +// }) +// } async function installDevTools () { try { @@ -70,7 +71,6 @@ function createWindow () { webSecurity: false, backgroundThrottling: false }, - show: false }) // eslint-disable-next-line diff --git a/src/renderer/store/modules/utils.js b/src/renderer/store/modules/utils.js index d5fac977..680fb7c8 100644 --- a/src/renderer/store/modules/utils.js +++ b/src/renderer/store/modules/utils.js @@ -53,18 +53,37 @@ const actions = { return state.colorClasses[randomInt] }, - getVideoIdFromUrl ({ state }, url) { - console.log('checking for id') - console.log(url) - const rx = /^.*(?:(?:(you|hook)tu\.?be\/|v\/|vi\/|u\/\w\/|embed\/)|(?:(?:watch)?\?v(?:i)?=|&v(?:i)?=))([^#&?]*).*/ - - const match = url.match(rx) - - if (match) { - return match[2] - } else { + getVideoIdFromUrl (_, url) { + /** @type {URL} */ + let urlObject + try { + urlObject = new URL(url) + } catch (e) { return false } + + const extractors = [ + // anything with /watch?v= + function() { + if (urlObject.pathname === '/watch' && urlObject.searchParams.has('v')) { + return urlObject.searchParams.get('v') + } + }, + // youtu.be + function() { + if (urlObject.host === 'youtu.be' && urlObject.pathname.match(/^\/[A-Za-z0-9_-]+$/)) { + return urlObject.pathname.slice(1) + } + }, + // cloudtube + function() { + if (urlObject.host.match(/^cadence\.(gq|moe)$/) && urlObject.pathname.match(/^\/cloudtube\/video\/[A-Za-z0-9_-]+$/)) { + return urlObject.pathname.slice('/cloudtube/video/'.length) + } + } + ] + + return extractors.reduce((a, c) => a || c(), null) || false } } diff --git a/src/renderer/themes.css b/src/renderer/themes.css index 19289496..af0214f4 100644 --- a/src/renderer/themes.css +++ b/src/renderer/themes.css @@ -454,6 +454,7 @@ a:link { a:visited { color: var(--link-visited-color); } +<<<<<<< HEAD ::-webkit-scrollbar { width: 10px; } @@ -465,3 +466,5 @@ a:visited { ::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-color-hover); } +======= +>>>>>>> 9b9313d348ab019cb17ffb3478fe3c4c7b0292e5