From 1943116aa1cab0fe4f84c492739273ed0074594e Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Sat, 5 Jun 2021 03:53:12 +0000 Subject: [PATCH 1/4] fix: upgrade custom-electron-titlebar from 3.2.6 to 3.2.7 Snyk has created this PR to upgrade custom-electron-titlebar from 3.2.6 to 3.2.7. See this package in npm: See this project in Snyk: https://app.snyk.io/org/th-ch/project/81809c53-bb7b-46b9-a0d7-806d45d74ac6?utm_source=github&utm_medium=upgrade-pr --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 12602a18..bcbce499 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "async-mutex": "^0.3.1", "browser-id3-writer": "^4.4.0", "chokidar": "^3.5.1", - "custom-electron-titlebar": "^3.2.6", + "custom-electron-titlebar": "^3.2.7", "discord-rpc": "^3.2.0", "electron-debug": "^3.2.0", "electron-is": "^3.0.0", diff --git a/yarn.lock b/yarn.lock index 26ee2ded..2a4b29b4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2882,10 +2882,10 @@ cssstyle@^2.2.0: dependencies: cssom "~0.3.6" -custom-electron-titlebar@^3.2.6: - version "3.2.6" - resolved "https://registry.yarnpkg.com/custom-electron-titlebar/-/custom-electron-titlebar-3.2.6.tgz#4cd064efa5020954c09732efa8c667a7ee3636e3" - integrity sha512-P3ZGEr0eouUHqhdBBXllpuy2bFhfSmp+32HQBPcwzujjIsUhQxQj/nCpJiFa4SUGAEp1ifu/icuZdDKNNX72Tw== +custom-electron-titlebar@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/custom-electron-titlebar/-/custom-electron-titlebar-3.2.7.tgz#fb249d6180cbda074b1d392bea755fa0743012a8" + integrity sha512-KO/6e3r6YflfNUOzi5QHLwkLHBP+ICtHPo70u/kUIKR8UUkDTPb4a9i19q0uDZQcjkH6oqRvFCz9wEHeEpCgxw== dashdash@^1.12.0: version "1.14.1" From cc4dae60efb997f8bde92ebd7044881ef45893c4 Mon Sep 17 00:00:00 2001 From: snyk-bot Date: Tue, 8 Jun 2021 04:08:41 +0000 Subject: [PATCH 2/4] fix: upgrade @ffmpeg/ffmpeg from 0.9.8 to 0.10.0 Snyk has created this PR to upgrade @ffmpeg/ffmpeg from 0.9.8 to 0.10.0. See this package in npm: See this project in Snyk: https://app.snyk.io/org/th-ch/project/81809c53-bb7b-46b9-a0d7-806d45d74ac6?utm_source=github&utm_medium=upgrade-pr --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 12602a18..26051fdb 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "dependencies": { "@cliqz/adblocker-electron": "^1.22.0", "@ffmpeg/core": "^0.9.0", - "@ffmpeg/ffmpeg": "^0.9.8", + "@ffmpeg/ffmpeg": "^0.10.0", "YoutubeNonStop": "git://github.com/lawfx/YoutubeNonStop.git#v0.9.0", "async-mutex": "^0.3.1", "browser-id3-writer": "^4.4.0", diff --git a/yarn.lock b/yarn.lock index 26ee2ded..439408ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -549,10 +549,10 @@ resolved "https://registry.yarnpkg.com/@ffmpeg/core/-/core-0.9.0.tgz#4a999a07671c081216fcc2714f73ec02ddc9c24b" integrity sha512-d931yzQpb8GRgTZr+T7+BMqglPZ1R8FPH3W3UA8I21RzuasRHsMwQ4MQTlS9twjfqvUGIkD8p/8mNToUVN/Yrw== -"@ffmpeg/ffmpeg@^0.9.8": - version "0.9.8" - resolved "https://registry.yarnpkg.com/@ffmpeg/ffmpeg/-/ffmpeg-0.9.8.tgz#d0292ac1e31f6a070b35e18e50dbbd79f2e2bb08" - integrity sha512-QradleJx78hHJBtI1wRsus1L1jxQB3v4h6k8c3CERI9fssm+NSSppuofmsOei7uq7iQEYq3oK9tJNAyEsRoNng== +"@ffmpeg/ffmpeg@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@ffmpeg/ffmpeg/-/ffmpeg-0.10.0.tgz#0bebd944d50ce11297b91883f94b2f6220b74e34" + integrity sha512-W+d0ysYTO6d4vue/0KMYrxaprh9wvmnPqh6qyHXavBWLrDcE7gI3cJ/EQVfwe9nrt2e0Pi7873P2I18VEDgRfA== dependencies: is-url "^1.2.4" node-fetch "^2.6.1" From 8eb38271ff655315ad8e8b00128cbf2de38d4073 Mon Sep 17 00:00:00 2001 From: Araxeus Date: Wed, 9 Jun 2021 19:53:04 +0300 Subject: [PATCH 3/4] fix unsupported hidden webp coverart --- providers/song-info.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/providers/song-info.js b/providers/song-info.js index 1b119b82..08eaf944 100644 --- a/providers/song-info.js +++ b/providers/song-info.js @@ -9,18 +9,21 @@ const progressSelector = "#progress-bar"; // Grab the progress using the selector const getProgress = async (win) => { // Get current value of the progressbar element - const elapsedSeconds = await win.webContents.executeJavaScript( + return win.webContents.executeJavaScript( 'document.querySelector("' + progressSelector + '").value' ); - - return elapsedSeconds; }; // Grab the native image using the src const getImage = async (src) => { const result = await fetch(src); const buffer = await result.buffer(); - return nativeImage.createFromBuffer(buffer); + const output = nativeImage.createFromBuffer(buffer); + if (output.isEmpty() && !src.endsWith(".jpg") && src.includes(".jpg")) { // fix hidden webp files (https://github.com/th-ch/youtube-music/issues/315) + return getImage(src.slice(0, src.lastIndexOf(".jpg")+4)); + } else { + return output; + } }; // To find the paused status, we check if the title contains `-` @@ -30,7 +33,7 @@ const getPausedStatus = async (win) => { }; const getArtist = async (win) => { - return await win.webContents.executeJavaScript(` + return win.webContents.executeJavaScript(` document.querySelector(".subtitle.ytmusic-player-bar .yt-formatted-string") ?.textContent `); @@ -112,4 +115,3 @@ module.exports = registerCallback; module.exports.setupSongInfo = registerProvider; module.exports.getImage = getImage; module.exports.cleanupArtistName = cleanupArtistName; - From 2a58dc823a2248b19da6daf7864a1b0ba4c139b0 Mon Sep 17 00:00:00 2001 From: Araxeus Date: Wed, 9 Jun 2021 20:05:14 +0300 Subject: [PATCH 4/4] check if native image is empty before writing id tag --- plugins/downloader/back.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/downloader/back.js b/plugins/downloader/back.js index ee345ab2..060245ed 100644 --- a/plugins/downloader/back.js +++ b/plugins/downloader/back.js @@ -55,7 +55,9 @@ function handle(win) { { ...nowPlayingMetadata, ...currentMetadata }; try { - const coverBuffer = songMetadata.image ? songMetadata.image.toPNG() : null; + const coverBuffer = songMetadata.image && !songMetadata.image.isEmpty() ? + songMetadata.image.toPNG() : null; + const writer = new ID3Writer(songBuffer); // Create the metadata tags