From 1357e10d948541cb03f5940bfdcc9f593e894e81 Mon Sep 17 00:00:00 2001 From: DevAndromeda <46562212+DevAndromeda@users.noreply.github.com> Date: Mon, 6 Sep 2021 22:30:52 +0545 Subject: [PATCH] refactor(Queue): add queue parameter to createStream --- docs/extractors/create_stream.md | 15 +++++++++++++++ docs/index.yml | 2 ++ src/Structures/Queue.ts | 6 +++--- 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 docs/extractors/create_stream.md diff --git a/docs/extractors/create_stream.md b/docs/extractors/create_stream.md new file mode 100644 index 0000000..0ad061f --- /dev/null +++ b/docs/extractors/create_stream.md @@ -0,0 +1,15 @@ +# Create Stream + +This is a checkpoint where discord-player calls `createStream` before downloading stream. + +# Example + +```js +const dl = require("my-cool-vid-downloader"); + +// after creating queue, attach this handler, that's it! +queue.createStream = (track, source, queue) => { + const stream = dl(track.url); + return stream; +}; +``` \ No newline at end of file diff --git a/docs/index.yml b/docs/index.yml index 551affa..c4fc0d5 100644 --- a/docs/index.yml +++ b/docs/index.yml @@ -11,6 +11,8 @@ files: - name: Extractors API path: extractor.md + - name: Creating Stream + path: create_Stream.md - name: FAQ files: - name: Custom Filters diff --git a/src/Structures/Queue.ts b/src/Structures/Queue.ts index d604724..6acc742 100644 --- a/src/Structures/Queue.ts +++ b/src/Structures/Queue.ts @@ -28,7 +28,7 @@ class Queue { private _filtersUpdate = false; #lastVolume = 0; #destroyed = false; - public createStream: (track: Track, source: TrackSource) => Promise | Readable = null; + public createStream: (track: Track, source: TrackSource, queue: Queue) => Promise | Readable = null; /** * Queue constructor @@ -645,7 +645,7 @@ class Queue { if (!link) return void this.play(this.tracks.shift(), { immediate: true }); if (customDownloader) { - stream = (await this.createStream(track, link)) ?? null; + stream = (await this.createStream(track, link, this)) ?? null; if (stream) stream = ytdl .arbitraryStream(stream, { @@ -670,7 +670,7 @@ class Queue { }); } } else { - const tryArb = (customDownloader && (await this.createStream(track, track.raw.source || track.raw.engine))) || null; + const tryArb = (customDownloader && (await this.createStream(track, track.raw.source || track.raw.engine, this))) || null; const arbitrarySource = tryArb ? tryArb : track.raw.source === "soundcloud"