|  | @@ -4,100 +4,103 @@ import { useStore } from "vuex";
 | 
	
		
			
				|  |  |  import Toast from "toasters";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  export function useSearchYoutube() {
 | 
	
		
			
				|  |  | -    const store = useStore();
 | 
	
		
			
				|  |  | +	const store = useStore();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    const youtubeSearch = ref({
 | 
	
		
			
				|  |  | -        songs: {
 | 
	
		
			
				|  |  | -            results: [],
 | 
	
		
			
				|  |  | -            query: "",
 | 
	
		
			
				|  |  | -            nextPageToken: ""
 | 
	
		
			
				|  |  | -        },
 | 
	
		
			
				|  |  | -        playlist: {
 | 
	
		
			
				|  |  | -            query: "",
 | 
	
		
			
				|  |  | -            isImportingOnlyMusic: true
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -    });
 | 
	
		
			
				|  |  | +	const youtubeSearch = ref({
 | 
	
		
			
				|  |  | +		songs: {
 | 
	
		
			
				|  |  | +			results: [],
 | 
	
		
			
				|  |  | +			query: "",
 | 
	
		
			
				|  |  | +			nextPageToken: ""
 | 
	
		
			
				|  |  | +		},
 | 
	
		
			
				|  |  | +		playlist: {
 | 
	
		
			
				|  |  | +			query: "",
 | 
	
		
			
				|  |  | +			isImportingOnlyMusic: true
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	});
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    const { socket } = store.state.websockets;
 | 
	
		
			
				|  |  | +	const { socket } = store.state.websockets;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    const searchForSongs = () => {
 | 
	
		
			
				|  |  | -        let { query } = youtubeSearch.value.songs;
 | 
	
		
			
				|  |  | +	const searchForSongs = () => {
 | 
	
		
			
				|  |  | +		let { query } = youtubeSearch.value.songs;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (query.indexOf("&index=") !== -1) {
 | 
	
		
			
				|  |  | -            query = query.split("&index=");
 | 
	
		
			
				|  |  | -            query.pop();
 | 
	
		
			
				|  |  | -            query = query.join("");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +		if (query.indexOf("&index=") !== -1) {
 | 
	
		
			
				|  |  | +			query = query.split("&index=");
 | 
	
		
			
				|  |  | +			query.pop();
 | 
	
		
			
				|  |  | +			query = query.join("");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (query.indexOf("&list=") !== -1) {
 | 
	
		
			
				|  |  | -            query = query.split("&list=");
 | 
	
		
			
				|  |  | -            query.pop();
 | 
	
		
			
				|  |  | -            query = query.join("");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +		if (query.indexOf("&list=") !== -1) {
 | 
	
		
			
				|  |  | +			query = query.split("&list=");
 | 
	
		
			
				|  |  | +			query.pop();
 | 
	
		
			
				|  |  | +			query = query.join("");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        socket.dispatch("apis.searchYoutube", query, res => {
 | 
	
		
			
				|  |  | -            if (res.status === "success") {
 | 
	
		
			
				|  |  | -                youtubeSearch.value.songs.nextPageToken =
 | 
	
		
			
				|  |  | -                    res.data.nextPageToken;
 | 
	
		
			
				|  |  | -                youtubeSearch.value.songs.results = [];
 | 
	
		
			
				|  |  | +		socket.dispatch("apis.searchYoutube", query, res => {
 | 
	
		
			
				|  |  | +			if (res.status === "success") {
 | 
	
		
			
				|  |  | +				youtubeSearch.value.songs.nextPageToken =
 | 
	
		
			
				|  |  | +					res.data.nextPageToken;
 | 
	
		
			
				|  |  | +				youtubeSearch.value.songs.results = [];
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                res.data.items.forEach(result => {
 | 
	
		
			
				|  |  | -                    youtubeSearch.value.songs.results.push({
 | 
	
		
			
				|  |  | -                        id: result.id.videoId,
 | 
	
		
			
				|  |  | -                        url: `https://www.youtube.com/watch?v=${result.id.videoId}`,
 | 
	
		
			
				|  |  | -                        title: result.snippet.title,
 | 
	
		
			
				|  |  | -                        thumbnail: result.snippet.thumbnails.default.url,
 | 
	
		
			
				|  |  | -                        channelId: result.snippet.channelId,
 | 
	
		
			
				|  |  | -                        channelTitle: result.snippet.channelTitle,
 | 
	
		
			
				|  |  | -                        isAddedToQueue: false
 | 
	
		
			
				|  |  | -                    });
 | 
	
		
			
				|  |  | -                });
 | 
	
		
			
				|  |  | -            } else if (res.status === "error") new Toast(res.message);
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +				res.data.items.forEach(result => {
 | 
	
		
			
				|  |  | +					youtubeSearch.value.songs.results.push({
 | 
	
		
			
				|  |  | +						id: result.id.videoId,
 | 
	
		
			
				|  |  | +						url: `https://www.youtube.com/watch?v=${result.id.videoId}`,
 | 
	
		
			
				|  |  | +						title: result.snippet.title,
 | 
	
		
			
				|  |  | +						thumbnail: result.snippet.thumbnails.default.url,
 | 
	
		
			
				|  |  | +						channelId: result.snippet.channelId,
 | 
	
		
			
				|  |  | +						channelTitle: result.snippet.channelTitle,
 | 
	
		
			
				|  |  | +						isAddedToQueue: false
 | 
	
		
			
				|  |  | +					});
 | 
	
		
			
				|  |  | +				});
 | 
	
		
			
				|  |  | +			} else if (res.status === "error") new Toast(res.message);
 | 
	
		
			
				|  |  | +		});
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    const loadMoreSongs = () => {
 | 
	
		
			
				|  |  | -        socket.dispatch(
 | 
	
		
			
				|  |  | -            "apis.searchYoutubeForPage",
 | 
	
		
			
				|  |  | -            youtubeSearch.value.songs.query,
 | 
	
		
			
				|  |  | -            youtubeSearch.value.songs.nextPageToken,
 | 
	
		
			
				|  |  | -            res => {
 | 
	
		
			
				|  |  | -                if (res.status === "success") {
 | 
	
		
			
				|  |  | -                    youtubeSearch.value.songs.nextPageToken =
 | 
	
		
			
				|  |  | -                        res.data.nextPageToken;
 | 
	
		
			
				|  |  | +	const loadMoreSongs = () => {
 | 
	
		
			
				|  |  | +		socket.dispatch(
 | 
	
		
			
				|  |  | +			"apis.searchYoutubeForPage",
 | 
	
		
			
				|  |  | +			youtubeSearch.value.songs.query,
 | 
	
		
			
				|  |  | +			youtubeSearch.value.songs.nextPageToken,
 | 
	
		
			
				|  |  | +			res => {
 | 
	
		
			
				|  |  | +				if (res.status === "success") {
 | 
	
		
			
				|  |  | +					youtubeSearch.value.songs.nextPageToken =
 | 
	
		
			
				|  |  | +						res.data.nextPageToken;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                    res.data.items.forEach(result => {
 | 
	
		
			
				|  |  | -                        youtubeSearch.value.songs.results.push({
 | 
	
		
			
				|  |  | -                            id: result.id.videoId,
 | 
	
		
			
				|  |  | -                            url: `https://www.youtube.com/watch?v=${result.id.videoId}`,
 | 
	
		
			
				|  |  | -                            title: result.snippet.title,
 | 
	
		
			
				|  |  | -                            thumbnail:
 | 
	
		
			
				|  |  | -                                result.snippet.thumbnails.default.url,
 | 
	
		
			
				|  |  | -                            channelId: result.snippet.channelId,
 | 
	
		
			
				|  |  | -                            channelTitle: result.snippet.channelTitle,
 | 
	
		
			
				|  |  | -                            isAddedToQueue: false
 | 
	
		
			
				|  |  | -                        });
 | 
	
		
			
				|  |  | -                    });
 | 
	
		
			
				|  |  | -                } else if (res.status === "error") new Toast(res.message);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        );
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +					res.data.items.forEach(result => {
 | 
	
		
			
				|  |  | +						youtubeSearch.value.songs.results.push({
 | 
	
		
			
				|  |  | +							id: result.id.videoId,
 | 
	
		
			
				|  |  | +							url: `https://www.youtube.com/watch?v=${result.id.videoId}`,
 | 
	
		
			
				|  |  | +							title: result.snippet.title,
 | 
	
		
			
				|  |  | +							thumbnail: result.snippet.thumbnails.default.url,
 | 
	
		
			
				|  |  | +							channelId: result.snippet.channelId,
 | 
	
		
			
				|  |  | +							channelTitle: result.snippet.channelTitle,
 | 
	
		
			
				|  |  | +							isAddedToQueue: false
 | 
	
		
			
				|  |  | +						});
 | 
	
		
			
				|  |  | +					});
 | 
	
		
			
				|  |  | +				} else if (res.status === "error") new Toast(res.message);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		);
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    const addYouTubeSongToPlaylist = (id, index) => {
 | 
	
		
			
				|  |  | -        socket.dispatch(
 | 
	
		
			
				|  |  | -            "playlists.addSongToPlaylist",
 | 
	
		
			
				|  |  | -            false,
 | 
	
		
			
				|  |  | -            id,
 | 
	
		
			
				|  |  | -            this.playlist._id,
 | 
	
		
			
				|  |  | -            res => {
 | 
	
		
			
				|  |  | -                new Toast(res.message);
 | 
	
		
			
				|  |  | -                if (res.status === "success")
 | 
	
		
			
				|  |  | -                    youtubeSearch.value.songs.results[
 | 
	
		
			
				|  |  | -                        index
 | 
	
		
			
				|  |  | -                    ].isAddedToQueue = true;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        );
 | 
	
		
			
				|  |  | -    }
 | 
	
		
			
				|  |  | +	const addYouTubeSongToPlaylist = (id, index) => {
 | 
	
		
			
				|  |  | +		socket.dispatch(
 | 
	
		
			
				|  |  | +			"playlists.addSongToPlaylist",
 | 
	
		
			
				|  |  | +			false,
 | 
	
		
			
				|  |  | +			id,
 | 
	
		
			
				|  |  | +			this.playlist._id,
 | 
	
		
			
				|  |  | +			res => {
 | 
	
		
			
				|  |  | +				new Toast(res.message);
 | 
	
		
			
				|  |  | +				if (res.status === "success")
 | 
	
		
			
				|  |  | +					youtubeSearch.value.songs.results[index].isAddedToQueue =
 | 
	
		
			
				|  |  | +						true;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		);
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -    return { youtubeSearch, searchForSongs, loadMoreSongs, addYouTubeSongToPlaylist };
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | +	return {
 | 
	
		
			
				|  |  | +		youtubeSearch,
 | 
	
		
			
				|  |  | +		searchForSongs,
 | 
	
		
			
				|  |  | +		loadMoreSongs,
 | 
	
		
			
				|  |  | +		addYouTubeSongToPlaylist
 | 
	
		
			
				|  |  | +	};
 | 
	
		
			
				|  |  | +}
 |