playdl-music-extractor
Version:
PlayDL Music Extractor is a Extractor/Scrapper and Helps Players to fetch data from play-dl or Custom Extractors , as Per reduces extra work and credentials
50 lines (43 loc) • 1.52 kB
JavaScript
const playdlEngine = require('./__playdlEngine');
class deezer {
static __dezerRegex = [
/^https?:\/\/(?:www\.)?deezer\.com\/([^#/\&\?]+)\/(track|album|playlist)\/(\d+)$/,
/^https?:\/\/(?:www\.)?deezer\.com\/([^#/\&\?]+)\/(track)\/(\d+)$/,
/^https?:\/\/(?:www\.)?deezer\.com\/([^#/\&\?]+)\/(album|playlist)\/(\d+)$/,
];
static __dezerTrackRegex = /^https?:\/\/(?:www\.)?deezer\.com\/([^#/\&\?]+)\/(track)\/(\d+)$/;
static __dezeralbumRegex = /^https?:\/\/(?:www\.)?deezer\.com\/([^#/\&\?]+)\/(album|playlist)\/(\d+)$/;
static __test(rawUrl, returnRegexValue = false) {
try {
if (!(rawUrl && typeof rawUrl === 'string' && rawUrl !== '')) {
return false;
}
return returnRegexValue
&& Boolean(deezer.__dezerRegex.find((regExp) => regExp.test(rawUrl)))
? rawUrl?.match(
deezer.__dezerRegex.find((regExp) => rawUrl.match(regExp)),
) ?? false
: Boolean(deezer.__dezerRegex.find((regExp) => regExp.test(rawUrl)));
} catch {
return false;
}
}
static async __extractor(rawUrl, __scrapperOptions, playdl, queue) {
try {
await playdlEngine.__rawExtractor(
rawUrl,
{ orignal_extractor: 'deezer' },
__scrapperOptions,
playdl,
queue,
);
return true;
} catch (rawError) {
if (__scrapperOptions?.ignoreInternalError) {
return void playdl.__errorHandling(rawError);
}
throw rawError;
}
}
}
module.exports = deezer;