magmastream 2.9.0-dev.37 → 2.9.0-dev.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4 -1
- package/dist/structures/Utils.js +33 -9
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1378,7 +1378,7 @@ interface ManagerEvents {
|
|
|
1378
1378
|
[ManagerEventTypes.PlayerCreate]: [player: Player];
|
|
1379
1379
|
[ManagerEventTypes.PlayerDestroy]: [player: Player];
|
|
1380
1380
|
[ManagerEventTypes.PlayerDisconnect]: [player: Player, oldChannel: string];
|
|
1381
|
-
[ManagerEventTypes.PlayerMove]: [player: Player,
|
|
1381
|
+
[ManagerEventTypes.PlayerMove]: [player: Player, oldChannel: string, newChannel: string];
|
|
1382
1382
|
[ManagerEventTypes.PlayerRestored]: [player: Player, node: Node];
|
|
1383
1383
|
[ManagerEventTypes.PlayerStateUpdate]: [oldPlayer: Player, newPlayer: Player, changeType: PlayerStateUpdateEvent];
|
|
1384
1384
|
[ManagerEventTypes.QueueEnd]: [player: Player, track: Track, payload: TrackEndEvent];
|
|
@@ -3396,6 +3396,9 @@ declare abstract class AutoPlayUtils {
|
|
|
3396
3396
|
* @returns A single resolved {@link Track} object if found, or `null` if the search fails or returns no results.
|
|
3397
3397
|
*/
|
|
3398
3398
|
private static resolveFirstTrackFromQuery;
|
|
3399
|
+
private static isPlaylistRawData;
|
|
3400
|
+
private static isTrackData;
|
|
3401
|
+
private static isTrackDataArray;
|
|
3399
3402
|
static buildTracksFromResponse<T>(recommendedResult: LavalinkResponse, requester?: T): Track[];
|
|
3400
3403
|
}
|
|
3401
3404
|
/** Gets or extends structures to extend the built in, or already extended, classes to add more functionality. */
|
package/dist/structures/Utils.js
CHANGED
|
@@ -522,24 +522,48 @@ class AutoPlayUtils {
|
|
|
522
522
|
// console.error("[Spotify] Failed to launch Playwright:", err);
|
|
523
523
|
// }
|
|
524
524
|
// }
|
|
525
|
+
static isPlaylistRawData(data) {
|
|
526
|
+
return typeof data === "object" && data !== null && Array.isArray(data.tracks);
|
|
527
|
+
}
|
|
528
|
+
static isTrackData(data) {
|
|
529
|
+
return typeof data === "object" && data !== null && "encoded" in data && "info" in data;
|
|
530
|
+
}
|
|
531
|
+
static isTrackDataArray(data) {
|
|
532
|
+
return (Array.isArray(data) &&
|
|
533
|
+
data.every((track) => typeof track === "object" && track !== null && "encoded" in track && "info" in track && typeof track.encoded === "string"));
|
|
534
|
+
}
|
|
525
535
|
static buildTracksFromResponse(recommendedResult, requester) {
|
|
526
536
|
if (!recommendedResult)
|
|
527
537
|
return [];
|
|
528
538
|
if (TrackUtils.isErrorOrEmptySearchResult(recommendedResult))
|
|
529
539
|
return [];
|
|
530
540
|
switch (recommendedResult.loadType) {
|
|
531
|
-
case Enums_1.LoadTypes.Search: {
|
|
532
|
-
const tracks = recommendedResult.data.map((t) => TrackUtils.build(t, requester));
|
|
533
|
-
return tracks;
|
|
534
|
-
}
|
|
535
541
|
case Enums_1.LoadTypes.Track: {
|
|
536
|
-
const
|
|
537
|
-
|
|
542
|
+
const data = recommendedResult.data;
|
|
543
|
+
if (!this.isTrackData(data)) {
|
|
544
|
+
throw new Error("[TrackBuilder] Invalid TrackData object.");
|
|
545
|
+
}
|
|
546
|
+
return [TrackUtils.build(data, requester)];
|
|
547
|
+
}
|
|
548
|
+
case Enums_1.LoadTypes.Short:
|
|
549
|
+
case Enums_1.LoadTypes.Search: {
|
|
550
|
+
const data = recommendedResult.data;
|
|
551
|
+
if (!this.isTrackDataArray(data)) {
|
|
552
|
+
throw new Error("[TrackBuilder] Invalid TrackData[] array for LoadTypes.Search or Short.");
|
|
553
|
+
}
|
|
554
|
+
return data.map((d) => TrackUtils.build(d, requester));
|
|
538
555
|
}
|
|
556
|
+
case Enums_1.LoadTypes.Album:
|
|
557
|
+
case Enums_1.LoadTypes.Artist:
|
|
558
|
+
case Enums_1.LoadTypes.Station:
|
|
559
|
+
case Enums_1.LoadTypes.Podcast:
|
|
560
|
+
case Enums_1.LoadTypes.Show:
|
|
539
561
|
case Enums_1.LoadTypes.Playlist: {
|
|
540
|
-
const
|
|
541
|
-
|
|
542
|
-
|
|
562
|
+
const data = recommendedResult.data;
|
|
563
|
+
if (this.isPlaylistRawData(data)) {
|
|
564
|
+
return data.tracks.map((d) => TrackUtils.build(d, requester));
|
|
565
|
+
}
|
|
566
|
+
throw new Error(`[TrackBuilder] Invalid playlist data for loadType: ${recommendedResult.loadType}`);
|
|
543
567
|
}
|
|
544
568
|
default:
|
|
545
569
|
throw new Error(`[TrackBuilder] Unsupported loadType: ${recommendedResult.loadType}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "magmastream",
|
|
3
|
-
"version": "2.9.0-dev.
|
|
3
|
+
"version": "2.9.0-dev.38",
|
|
4
4
|
"description": "A user-friendly Lavalink client designed for NodeJS.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -95,4 +95,4 @@
|
|
|
95
95
|
"homepage": "https://docs.magmastream.com",
|
|
96
96
|
"author": "Abel Purnwasy",
|
|
97
97
|
"license": "Apache-2.0"
|
|
98
|
-
}
|
|
98
|
+
}
|