82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const Resolver = require('../utils/Resolver');
 | 
						|
const { QueryType } = require('../utils/QueryType');
 | 
						|
const { Links } = require('../utils/Links');
 | 
						|
const youtube = require("../media/YoutubeInformation")
 | 
						|
const spotify = require("../media/SpotifyInformation")
 | 
						|
const soundcloud = require("../media/SoundcloudInformation")
 | 
						|
 | 
						|
 | 
						|
async function search(query, multiple, forceType) {
 | 
						|
    if(!query) return null
 | 
						|
    if(!multiple) multiple = false
 | 
						|
    if(!forceType) forceType = null
 | 
						|
    if(forceType == "PLAYLIST") {
 | 
						|
        if(query.includes("spotify")) {
 | 
						|
            return await spotify.getPlaylist(query)
 | 
						|
        } else if(query.includes("soundcloud")) {
 | 
						|
            return await soundcloud.getPlaylist(query)
 | 
						|
        } else if(query.includes("youtube")) {
 | 
						|
            return await youtube.getPlaylist(query)
 | 
						|
        } else {
 | 
						|
            return null
 | 
						|
        }
 | 
						|
    } 
 | 
						|
 | 
						|
    if(forceType == "SONG") {
 | 
						|
        if(query.includes("spotify")) {
 | 
						|
            return await spotify.getSong(query)
 | 
						|
        } else if(query.includes("soundcloud")) {
 | 
						|
            return await soundcloud.getTrack(query)
 | 
						|
        } else if(query.includes("youtube")) {
 | 
						|
            return await youtube.getQuery(query, multiple)
 | 
						|
        } else {
 | 
						|
            return null
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    if(forceType == "ALBUM") {
 | 
						|
        if(query.includes("spotify")) {
 | 
						|
            return await spotify.getAlbum(query)
 | 
						|
        } else if(query.includes("youtube")) {
 | 
						|
            return await youtube.getQuery(query, multiple)
 | 
						|
        } else {
 | 
						|
            return null
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    const type = Resolver.getQueryType(query)
 | 
						|
    if(type == QueryType.YOUTUBE_SEARCH) {
 | 
						|
        return await youtube.getQuery(query, multiple)
 | 
						|
       
 | 
						|
    }
 | 
						|
    if(type == QueryType.YOUTUBE_VIDEO) {
 | 
						|
    
 | 
						|
        return await youtube.getVideo(query)
 | 
						|
    }
 | 
						|
    if(type == QueryType.YOUTUBE_PLAYLIST) {
 | 
						|
    
 | 
						|
        return await youtube.getPlaylist(query)
 | 
						|
    }
 | 
						|
    if(type == QueryType.SPOTIFY_SONG) {
 | 
						|
        return await youtube.getQuery(await spotify.getSong(query))
 | 
						|
        
 | 
						|
    }
 | 
						|
    if(type == QueryType.SPOTIFY_ALBUM) {
 | 
						|
        return await spotify.getAlbum(query)
 | 
						|
    }
 | 
						|
    if(type == QueryType.SPOTIFY_PLAYLIST) {
 | 
						|
        return await spotify.getPlaylist(query)
 | 
						|
 | 
						|
    }
 | 
						|
    if(type == QueryType.SOUNDCLOUD_TRACK) {
 | 
						|
        return await soundcloud.getTrack(query)
 | 
						|
 | 
						|
    }
 | 
						|
    if(type == QueryType.SOUNDCLOUD_PLAYLIST) {
 | 
						|
        return await soundcloud.getPlaylist(query)
 | 
						|
        
 | 
						|
    }
 | 
						|
    //MORELATER: Add more providers
 | 
						|
}
 | 
						|
 | 
						|
module.exports = {search} |