123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- import { ref } from "vue";
- import { useStore } from "vuex";
- import Toast from "toasters";
- export function useSearchYoutube() {
- const store = useStore();
- const youtubeSearch = ref({
- songs: {
- results: [],
- query: "",
- nextPageToken: ""
- },
- playlist: {
- query: "",
- isImportingOnlyMusic: true
- }
- });
- const { socket } = store.state.websockets;
- const searchForSongs = () => {
- let { query } = youtubeSearch.value.songs;
- 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("");
- }
- 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);
- });
- };
- 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);
- }
- );
- };
- 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
- };
- }
|