UNPKG

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

48 lines (44 loc) 1.45 kB
const playdlEngine = require('./__playdlEngine'); class arbitary { static __arbitaryRegex = [ /^(https?|ftp|file):\/\/[-a-zA-Z0-9+&@#\/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#\/%=~_|]\.mp3$/, /^(https?|ftp|file):\/\/(www.)?(.*?)\.(mp3)$/gm, /^(https?|ftp|file):\/\/(www.)?(.*?)\.(mp3|mp4|wav|avi|m4a)$/gm, ]; static __test(rawUrl, returnRegexValue = false) { try { if (!(rawUrl && typeof rawUrl === 'string' && rawUrl !== '')) return false; return returnRegexValue && Boolean(arbitary.__arbitaryRegex.find((regExp) => regExp.test(rawUrl))) ? rawUrl?.match( arbitary.__arbitaryRegex.find((regExp) => rawUrl.match(regExp)), ) ?? false : Boolean( arbitary.__arbitaryRegex.find((regExp) => regExp.test(rawUrl)), ); } catch { return false; } } static async __extractor(rawUrl, __scrapperOptions, playdl, queue) { try { await playdlEngine.__rawExtractor( rawUrl, { stream: rawUrl, url: rawUrl, orignal_extractor: 'arbitary' }, { ...__scrapperOptions, fetchOptions: { ...__scrapperOptions?.fetchOptions, fetchLimit: 1 }, }, playdl, queue, ); return true; } catch (rawError) { if (__scrapperOptions?.ignoreInternalError) { return void playdl.__errorHandling(rawError); } throw rawError; } } } module.exports = arbitary;