Skip to content

Commit 53bf7c5

Browse files
committed
playlist download progressBar using chokidar
1 parent 13fb686 commit 53bf7c5

File tree

4 files changed

+74
-20
lines changed

4 files changed

+74
-20
lines changed

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@
6868
"YoutubeNonStop": "git://github.com/lawfx/YoutubeNonStop.git#v0.9.0",
6969
"async-mutex": "^0.3.1",
7070
"browser-id3-writer": "^4.4.0",
71+
"chokidar": "^3.5.1",
7172
"custom-electron-titlebar": "^3.2.6",
7273
"discord-rpc": "^3.2.0",
7374
"electron-debug": "^3.2.0",

plugins/downloader/menu.js

+18-8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const { URL } = require("url");
55
const { dialog, ipcMain } = require("electron");
66
const is = require("electron-is");
77
const ytpl = require("ytpl");
8+
const chokidar = require('chokidar');
89

910
const { setOptions } = require("../../config/plugins");
1011
const getSongInfo = require("../../providers/song-info");
@@ -51,14 +52,6 @@ module.exports = (win, options, refreshMenu) => {
5152
}
5253
mkdirSync(playlistFolder, { recursive: true });
5354

54-
ipcMain.on("downloader-feedback", (_, feedback) => {
55-
downloadLabel = feedback;
56-
refreshMenu();
57-
});
58-
59-
downloadLabel = `Downloading "${playlistTitle}"`;
60-
refreshMenu();
61-
6255
dialog.showMessageBox({
6356
type: "info",
6457
buttons: ["OK"],
@@ -73,6 +66,23 @@ module.exports = (win, options, refreshMenu) => {
7366
);
7467
}
7568

69+
const steps = 1 / playlist.items.length;
70+
let progress = 0;
71+
72+
win.setProgressBar(2); // starts with indefinite bar
73+
74+
let dirWatcher = chokidar.watch(playlistFolder);
75+
dirWatcher.on('add', () => {
76+
console.log(`progress:${progress} + steps:${steps} = newProgress:${progress+steps}`)
77+
progress += steps;
78+
if (progress >= 0.999) {
79+
win.setProgressBar(-1); // close progress bar
80+
dirWatcher.close().then(() => dirWatcher = null);
81+
} else {
82+
win.setProgressBar(progress);
83+
}
84+
});
85+
7686
playlist.items.forEach((song) => {
7787
win.webContents.send(
7888
"downloader-download-playlist",

plugins/downloader/youtube-dl.js

+2-8
Original file line numberDiff line numberDiff line change
@@ -184,19 +184,13 @@ module.exports = {
184184
ipcRenderer.on(
185185
"downloader-download-playlist",
186186
(_, url, playlistFolder, options) => {
187-
const reinit = () =>
188-
ipcRenderer.send("downloader-feedback", defaultMenuDownloadLabel);
189-
190187
downloadVideoToMP3(
191188
url,
192-
(feedback) => {
193-
ipcRenderer.send("downloader-feedback", feedback);
194-
},
189+
() => {},
195190
(error) => {
196191
triggerAction(CHANNEL, ACTIONS.ERROR, error);
197-
reinit();
198192
},
199-
reinit,
193+
() => {},
200194
options,
201195
null,
202196
playlistFolder

yarn.lock

+53-4
Original file line numberDiff line numberDiff line change
@@ -1638,6 +1638,14 @@ anymatch@^3.0.3:
16381638
normalize-path "^3.0.0"
16391639
picomatch "^2.0.4"
16401640

1641+
anymatch@~3.1.1:
1642+
version "3.1.2"
1643+
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
1644+
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
1645+
dependencies:
1646+
normalize-path "^3.0.0"
1647+
picomatch "^2.0.4"
1648+
16411649
16421650
version "3.5.12"
16431651
resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.12.tgz#bbe174972cc1f481f73d6d92ad47a8b4c7eb4530"
@@ -1991,6 +1999,11 @@ bcrypt-pbkdf@^1.0.0:
19911999
dependencies:
19922000
tweetnacl "^0.14.3"
19932001

2002+
binary-extensions@^2.0.0:
2003+
version "2.2.0"
2004+
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
2005+
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
2006+
19942007
binaryextensions@^4.15.0:
19952008
version "4.15.0"
19962009
resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-4.15.0.tgz#c63a502e0078ff1b0e9b00a9f74d3c2b0f8bd32e"
@@ -2075,7 +2088,7 @@ braces@^2.3.1:
20752088
split-string "^3.0.2"
20762089
to-regex "^3.0.1"
20772090

2078-
braces@^3.0.1:
2091+
braces@^3.0.1, braces@~3.0.2:
20792092
version "3.0.2"
20802093
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
20812094
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
@@ -2404,6 +2417,21 @@ [email protected]:
24042417
resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667"
24052418
integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
24062419

2420+
chokidar@^3.5.1:
2421+
version "3.5.1"
2422+
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
2423+
integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==
2424+
dependencies:
2425+
anymatch "~3.1.1"
2426+
braces "~3.0.2"
2427+
glob-parent "~5.1.0"
2428+
is-binary-path "~2.1.0"
2429+
is-glob "~4.0.1"
2430+
normalize-path "~3.0.0"
2431+
readdirp "~3.5.0"
2432+
optionalDependencies:
2433+
fsevents "~2.3.1"
2434+
24072435
chownr@^1.1.1:
24082436
version "1.1.4"
24092437
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
@@ -4257,7 +4285,7 @@ fs.realpath@^1.0.0:
42574285
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
42584286
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
42594287

4260-
fsevents@^2.1.2:
4288+
fsevents@^2.1.2, fsevents@~2.3.1:
42614289
version "2.3.2"
42624290
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
42634291
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
@@ -4370,6 +4398,13 @@ glob-parent@^5.0.0, glob-parent@^5.1.0:
43704398
dependencies:
43714399
is-glob "^4.0.1"
43724400

4401+
glob-parent@~5.1.0:
4402+
version "5.1.2"
4403+
resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
4404+
integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
4405+
dependencies:
4406+
is-glob "^4.0.1"
4407+
43734408
glob-to-regexp@^0.3.0:
43744409
version "0.3.0"
43754410
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
@@ -4902,6 +4937,13 @@ is-arrayish@^0.2.1:
49024937
resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
49034938
integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
49044939

4940+
is-binary-path@~2.1.0:
4941+
version "2.1.0"
4942+
resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
4943+
integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
4944+
dependencies:
4945+
binary-extensions "^2.0.0"
4946+
49054947
is-buffer@^1.1.5, is-buffer@~1.1.6:
49064948
version "1.1.6"
49074949
resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
@@ -5032,7 +5074,7 @@ is-glob@^3.1.0:
50325074
dependencies:
50335075
is-extglob "^2.1.0"
50345076

5035-
is-glob@^4.0.0, is-glob@^4.0.1:
5077+
is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1:
50365078
version "4.0.1"
50375079
resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
50385080
integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
@@ -6581,7 +6623,7 @@ normalize-path@^2.1.1:
65816623
dependencies:
65826624
remove-trailing-separator "^1.0.1"
65836625

6584-
normalize-path@^3.0.0:
6626+
normalize-path@^3.0.0, normalize-path@~3.0.0:
65856627
version "3.0.0"
65866628
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
65876629
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
@@ -7477,6 +7519,13 @@ readdir-glob@^1.0.0:
74777519
dependencies:
74787520
minimatch "^3.0.4"
74797521

7522+
readdirp@~3.5.0:
7523+
version "3.5.0"
7524+
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e"
7525+
integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==
7526+
dependencies:
7527+
picomatch "^2.2.1"
7528+
74807529
redent@^3.0.0:
74817530
version "3.0.0"
74827531
resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"

0 commit comments

Comments
 (0)