diff --git a/dist/src/sources/Spotify.js b/dist/src/sources/Spotify.js index f6f1fefe..b734ed15 100644 --- a/dist/src/sources/Spotify.js +++ b/dist/src/sources/Spotify.js @@ -177,7 +177,10 @@ class Spotify { case 'album': case 'playlist': { const base = link.type === 'album' ? 'albums' : 'playlists'; - const data = await this.apiRequest(`/${base}/${link.id}`); + const pageLimit = link.type === 'playlist' + ? this.manager.options.spotify?.limitLoadPlaylistPage ?? 100 + : this.manager.options.spotify?.limitLoadAlbumPage ?? 50; + const data = await this.apiRequest(`/${base}/${link.id}?limit=${pageLimit}`); if (!data || data.error) { return { loadType: 'error', data: { message: `${link.type} not found.` } }; } @@ -185,13 +188,30 @@ class Spotify { ? data.tracks.items.map((i) => i.track) : data.tracks.items; items = items.filter(Boolean); - const max = options?.limit ?? (link.type === 'playlist' - ? this.manager.options.spotify?.limitLoadPlaylist ?? this.manager.options.playlistLoadLimit - : this.manager.options.spotify?.limitLoadAlbum ?? this.manager.options.playlistLoadLimit); + let next = data.tracks.next; + const max = options?.limit ?? + (link.type === 'playlist' + ? this.manager.options.spotify?.limitLoadPlaylist ?? + this.manager.options.playlistLoadLimit + : this.manager.options.spotify?.limitLoadAlbum ?? + this.manager.options.playlistLoadLimit); + while (next && (!max || items.length < max)) { + const nextPage = await this.apiRequest(next); + if (!nextPage || nextPage.error) + break; + const newItems = link.type === 'playlist' + ? nextPage.items.map((i) => i.track) + : nextPage.items; + items.push(...newItems.filter(Boolean)); + next = nextPage.next; + } if (max != null) items = items.slice(0, max); - const tracks = items.map((item) => this.buildTrack(item, item.external_urls.spotify)); - return { loadType: 'playlist', data: { info: { name: data.name, selectedTrack: 0 }, tracks } }; + const tracks = items.map((item) => this.buildTrack(item, item.external_urls?.spotify)); + return { + loadType: 'playlist', + data: { info: { name: data.name, selectedTrack: 0 }, tracks }, + }; } default: return { loadType: 'error', data: { message: 'Unsupported Spotify URL type' } }; @@ -199,10 +219,10 @@ class Spotify { } getLinkType(url) { const regex = { - track: /open\.spotify\.com\/(?:intl-[^/]+\/)?track\/(\w+)/, - album: /open\.spotify\.com\/(?:intl-[^/]+\/)?album\/(\w+)/, - playlist: /open\.spotify\.com\/(?:intl-[^/]+\/)?playlist\/(\w+)/, - artist: /open\.spotify\.com\/(?:intl-[^/]+\/)?artist\/(\w+)/, + track: /(?:open\.spotify\.com\/(?:intl-[^/]+\/)?track\/|spotify:track:)(\w+)/, + album: /(?:open\.spotify\.com\/(?:intl-[^/]+\/)?album\/|spotify:album:)(\w+)/, + playlist: /(?:open\.spotify\.com\/(?:intl-[^/]+\/)?playlist\/|spotify:playlist:)(\w+)/, + artist: /(?:open\.spotify\.com\/(?:intl-[^/]+\/)?artist\/|spotify:artist:)(\w+)/, }; for (const type in regex) { const match = url.match(regex[type]); diff --git a/dist/src/sources/Spotify.js.map b/dist/src/sources/Spotify.js.map index 96648c02..2958d937 100644 --- a/dist/src/sources/Spotify.js.map +++ b/dist/src/sources/Spotify.js.map @@ -1 +1 @@ -{"version":3,"file":"Spotify.js","sourceRoot":"","sources":["../../../src/sources/Spotify.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Spotify.js","sourceRoot":"","sources":["../../../src/sources/Spotify.ts"],"names":[],"mappings":";;AACA,uCAA4D;AAE5D,MAAM,oBAAoB,GAAG,4BAA4B,CAAC;AAE1D,MAAqB,OAAO;IACnB,IAAI,GAAG,SAAS,CAAC;IAChB,OAAO,CAAU;IACjB,WAAW,GAAkB,IAAI,CAAC;IAClC,QAAQ,GAAkB,IAAI,CAAC;IAC/B,YAAY,GAAkB,IAAI,CAAC;IACnC,gBAAgB,GAAG,KAAK,CAAC;IAEjC,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;QACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,uCAAuC,CAAC,CAAC;IACtE,CAAC;IAEM,KAAK,CAAC,GAAW;QACtB,OAAO,CACL,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;YAC3B,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;YAC1B,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC;YAC3B,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CACzB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAElC,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;YACvD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC;YAE/D,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,kEAAkE,CAAC,CAAC;gBAC/F,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAErF,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,wCAAwC,EAAE;gBAC1E,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,aAAa,EAAE,SAAS,IAAI,EAAE;oBAC9B,cAAc,EAAE,mCAAmC;iBACpD;gBACD,IAAI,EAAE,+BAA+B;aACtC,CAAC,CAAC;YAEH,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,OAAO,EACP,qDAAqD,aAAa,CAAC,MAAM,MAAM,SAAS,EAAE,CAC3F,CAAC;gBACF,OAAO;YACT,CAAC;YAED,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,aAAa,CAAC,IAAI,EAAE,CAAQ,CAAC;YAC1E,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,yDAAyD,CAAC,CAAC;QACxF,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,IAAY;QACnC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,kEAAkE,CAAC,CAAC;YAC/F,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,oBAAoB,GAAG,IAAI,EAAE,CAAC;YAE9E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC3B,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,WAAW,EAAE;oBAC3C,MAAM,EAAE,kBAAkB;iBAC3B;aACF,CAAC,CAAC;YAEH,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,sCAAsC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;gBACjG,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAS,EAAE,GAAY;QACxC,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,kCAAkC,IAAI,CAAC,EAAE,EAAE,CAAC;QAEhF,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,IAAI,CAAC,EAAE,IAAI,OAAO;YAC9B,GAAG,EAAE,QAAQ;YACb,KAAK,EAAE,IAAI,CAAC,IAAI,IAAI,eAAe;YACnC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gBAAgB;YAC5E,MAAM,EAAE,IAAI,CAAC,WAAW,IAAI,CAAC;YAC7B,UAAU,EAAE,IAAI;YAChB,QAAQ,EAAE,KAAK;YACf,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;YACxC,UAAU,EAAE,IAAI,CAAC,IAAI;YACrB,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI;SAC9B,CAAC;QAEF,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,IAAA,mBAAW,EAAC,IAAI,CAAC;YAC1B,UAAU,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE;SAC1D,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,OAA4B;QAC7D,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,IAAI,EAAE,CAAC;QACpF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAChC,aAAa,kBAAkB,CAAC,KAAK,CAAC,qBAAqB,KAAK,EAAE,CACnE,CAAC;QAEF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,0CAA0C,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7F,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;YAChC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAC5D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAc;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,wBAAwB,IAAI,EAAE,CAAC;QAC3E,MAAM,WAAW,GAAG,GAAG,MAAM,UAAU,KAAK,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,oBAAoB,WAAW,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,mDAAmD,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACtG,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,iCAAiC,EAAE,EAAE,CAAC;QACrF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YACzB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;QACzC,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE;gBACJ,IAAI,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,aAAa,EAAE,CAAC,EAAE;gBAC3D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACxD;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAAc,EAAE,OAA4B;QAC5D,MAAM,UAAU,GAAG,MAAM;aACtB,OAAO,CAAC,kCAAkC,EAAE,mBAAmB,CAAC;aAChE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEjB,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,CAAC;QACzE,CAAC;QAED,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,EAAE,CAAC;gBACtE,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,EAAE,CAAC;YACxE,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBAChE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,EAAE,uBAAuB,CAAC,CAAC;gBACpF,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;oBACtC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC;gBACvE,CAAC;gBAED,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,GAAG,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC;gBAC5E,IAAI,GAAG,IAAI,IAAI;oBAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAE/C,OAAO;oBACL,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,IAAI,eAAe,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE;iBACtF,CAAC;YACJ,CAAC;YAED,KAAK,OAAO,CAAC;YACb,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;gBAC5D,MAAM,SAAS,GACb,IAAI,CAAC,IAAI,KAAK,UAAU;oBACtB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,qBAAqB,IAAI,GAAG;oBAC5D,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,IAAI,EAAE,CAAC;gBAE7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,UAAU,SAAS,EAAE,CAAC,CAAC;gBAC7E,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,aAAa,EAAE,EAAE,CAAC;gBAC7E,CAAC;gBAED,IAAI,KAAK,GACP,IAAI,CAAC,IAAI,KAAK,UAAU;oBACtB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC5C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;gBACxB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAE9B,IAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC5B,MAAM,GAAG,GACP,OAAO,EAAE,KAAK;oBACd,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;wBACvB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,iBAAiB;4BAC/C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB;wBACxC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc;4BAC5C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;gBAE9C,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC;oBAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAC7C,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK;wBAAE,MAAM;oBACvC,MAAM,QAAQ,GACZ,IAAI,CAAC,IAAI,KAAK,UAAU;wBACtB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;wBACzC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACrB,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBACxC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACvB,CAAC;gBAED,IAAI,GAAG,IAAI,IAAI;oBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBAE7C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CACrC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CACnD,CAAC;gBACF,OAAO;oBACL,QAAQ,EAAE,UAAU;oBACpB,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE;iBAC9D,CAAC;YACJ,CAAC;YAED;gBACE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,8BAA8B,EAAE,EAAE,CAAC;QACpF,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,MAAM,KAAK,GAA2B;YACpC,KAAK,EAAE,sEAAsE;YAC7E,KAAK,EAAE,sEAAsE;YAC7E,QAAQ,EAAE,4EAA4E;YACtF,MAAM,EAAE,wEAAwE;SACjF,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACrC,IAAI,KAAK,EAAE,CAAC;gBACV,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,GAAW;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;CACF;AA/RD,0BA+RC"} \ No newline at end of file diff --git a/dist/src/typings/Interfaces.d.ts b/dist/src/typings/Interfaces.d.ts index 9f26e322..23442e68 100644 --- a/dist/src/typings/Interfaces.d.ts +++ b/dist/src/typings/Interfaces.d.ts @@ -147,6 +147,8 @@ export interface IOptionsManager { limitLoadArtist?: number; limitLoadSearch?: number; limitLoadRecommendations?: number; + limitLoadPlaylistPage?: number; + limitLoadAlbumPage?: number; }; deezer?: { maxSearchResults?: number; diff --git a/docs/content/index.md b/docs/content/index.md index eabd8b36..852f8251 100644 --- a/docs/content/index.md +++ b/docs/content/index.md @@ -392,7 +392,9 @@ A showcase for our amazing community :: :: -## Contributors +## Meet the Team + +### Development Team & Collaborators ::team-card-group ::team-card --- @@ -421,31 +423,46 @@ A showcase for our amazing community ::team-card --- center: false - avatar: https://cdn.discordapp.com/avatars/336885637934481409/371faca58eb88781b922d4967b91fab4.png?size=2048 - name: xotakfr - title: Tester & Bug Hunter + avatar: https://avatars.githubusercontent.com/u/50148901?s=60&v=4 + name: Comicallybad + title: Collaborator & Developer links: - icon: lucide:github - to: https://github.com/xotakfr + to: https://github.com/comicallybad --- :: ::team-card --- center: false - avatar: https://images-ext-1.discordapp.net/external/EzD_6L_K28EMUN8RwQhssNUaZEyVN1H3dG6VIHczPvc/%3Fsize%3D2048/https/cdn.discordapp.com/avatars/389709853511122944/cd8fa0420ae13e16f5bfd87340da35d8.png?format=webp&quality=lossless&width=810&height=810 - name: iamforster - title: Tester & Bug Hunter + avatar: https://avatars.githubusercontent.com/u/76094069?v=4 + name: UnschooledGamer + title: Collaborator + links: + - icon: lucide:github + to: https://github.com/UnschooledGamer --- :: ::team-card --- center: false - avatar: https://avatars.githubusercontent.com/u/50148901?s=60&v=4 - name: Comicallybad - title: Bug Fixes + avatar: https://cdn.discordapp.com/avatars/336885637934481409/371faca58eb88781b922d4967b91fab4.png?size=2048 + name: xotakfr + title: Collaborator links: - icon: lucide:github - to: https://github.com/comicallybad + to: https://github.com/xotakfr + --- + :: +:: + +### Our Amazing Contributors +::team-card-group + ::team-card + --- + center: false + avatar: https://images-ext-1.discordapp.net/external/EzD_6L_K28EMUN8RwQhssNUaZEyVN1H3dG6VIHczPvc/%3Fsize%3D2048/https/cdn.discordapp.com/avatars/389709853511122944/cd8fa0420ae13e16f5bfd87340da35d8.png?format=webp&quality=lossless&width=810&height=810 + name: iamforster + title: Tester & Bug Hunter --- :: ::team-card diff --git a/src/sources/Spotify.ts b/src/sources/Spotify.ts index 350d9194..35776a1f 100644 --- a/src/sources/Spotify.ts +++ b/src/sources/Spotify.ts @@ -217,7 +217,12 @@ export default class Spotify implements ISource { case 'album': case 'playlist': { const base = link.type === 'album' ? 'albums' : 'playlists'; - const data = await this.apiRequest(`/${base}/${link.id}`); + const pageLimit = + link.type === 'playlist' + ? this.manager.options.spotify?.limitLoadPlaylistPage ?? 100 + : this.manager.options.spotify?.limitLoadAlbumPage ?? 50; + + const data = await this.apiRequest(`/${base}/${link.id}?limit=${pageLimit}`); if (!data || data.error) { return { loadType: 'error', data: { message: `${link.type} not found.` } }; } @@ -228,14 +233,35 @@ export default class Spotify implements ISource { : data.tracks.items; items = items.filter(Boolean); + let next = data.tracks.next; const max = - options?.limit ?? (link.type === 'playlist' - ? this.manager.options.spotify?.limitLoadPlaylist ?? this.manager.options.playlistLoadLimit - : this.manager.options.spotify?.limitLoadAlbum ?? this.manager.options.playlistLoadLimit); + options?.limit ?? + (link.type === 'playlist' + ? this.manager.options.spotify?.limitLoadPlaylist ?? + this.manager.options.playlistLoadLimit + : this.manager.options.spotify?.limitLoadAlbum ?? + this.manager.options.playlistLoadLimit); + + while (next && (!max || items.length < max)) { + const nextPage = await this.apiRequest(next); + if (!nextPage || nextPage.error) break; + const newItems = + link.type === 'playlist' + ? nextPage.items.map((i: any) => i.track) + : nextPage.items; + items.push(...newItems.filter(Boolean)); + next = nextPage.next; + } + if (max != null) items = items.slice(0, max); - const tracks = items.map((item: any) => this.buildTrack(item, item.external_urls.spotify)); - return { loadType: 'playlist', data: { info: { name: data.name, selectedTrack: 0 }, tracks } }; + const tracks = items.map((item: any) => + this.buildTrack(item, item.external_urls?.spotify) + ); + return { + loadType: 'playlist', + data: { info: { name: data.name, selectedTrack: 0 }, tracks }, + }; } default: @@ -245,10 +271,10 @@ export default class Spotify implements ISource { private getLinkType(url: string): { type: string; id: string } | null { const regex: Record = { - track: /open\.spotify\.com\/(?:intl-[^/]+\/)?track\/(\w+)/, - album: /open\.spotify\.com\/(?:intl-[^/]+\/)?album\/(\w+)/, - playlist: /open\.spotify\.com\/(?:intl-[^/]+\/)?playlist\/(\w+)/, - artist: /open\.spotify\.com\/(?:intl-[^/]+\/)?artist\/(\w+)/, + track: /(?:open\.spotify\.com\/(?:intl-[^/]+\/)?track\/|spotify:track:)(\w+)/, + album: /(?:open\.spotify\.com\/(?:intl-[^/]+\/)?album\/|spotify:album:)(\w+)/, + playlist: /(?:open\.spotify\.com\/(?:intl-[^/]+\/)?playlist\/|spotify:playlist:)(\w+)/, + artist: /(?:open\.spotify\.com\/(?:intl-[^/]+\/)?artist\/|spotify:artist:)(\w+)/, }; for (const type in regex) { diff --git a/src/typings/Interfaces.ts b/src/typings/Interfaces.ts index d3cabea2..32a32aaf 100644 --- a/src/typings/Interfaces.ts +++ b/src/typings/Interfaces.ts @@ -172,6 +172,8 @@ export interface IOptionsManager { limitLoadArtist?: number; limitLoadSearch?: number; limitLoadRecommendations?: number; + limitLoadPlaylistPage?: number; + limitLoadAlbumPage?: number; }; deezer?: { maxSearchResults?: number; diff --git a/testBot/bot.js b/testBot/bot.js index 7c74d0f8..528581f3 100644 --- a/testBot/bot.js +++ b/testBot/bot.js @@ -32,7 +32,7 @@ client.manager = new Manager({ database: { provider: "local", }, - playlistLoadLimit: 3, + playlistLoadLimit: 2000, spotify: { clientId: "c5a8160518fd4293b09f9bce0fcda0f0", clientSecret: "3871150b7e13430db154cadb86277b02",