Przeglądaj źródła

fix: more fixes for mediaSource

Kristian Vos 2 lat temu
rodzic
commit
31530a8c64

+ 1 - 2
backend/logic/stations.js

@@ -964,8 +964,7 @@ class _StationsModule extends CoreClass {
 				song: currentSong,
 				skippedAt,
 				skipReason
-			},
-			documentVersion: 1
+			}
 		});
 
 		if (!document) return;

+ 25 - 7
frontend/src/components/modals/EditPlaylist/Tabs/AddSongs.vue

@@ -45,10 +45,16 @@ watch(
 	songs => {
 		songs.forEach((searchItem, index) =>
 			playlist.value.songs.find(song => {
-				if (song.youtubeId === searchItem.id)
+				if (
+					song.mediaSource === "youtube:" &&
+					song.mediaSource.split(":")[1] === searchItem.id
+				)
 					youtubeSearch.value.songs.results[index].isAddedToQueue =
 						true;
-				return song.youtubeId === searchItem.id;
+				return (
+					song.mediaSource === "youtube:" &&
+					song.mediaSource.split(":")[1] === searchItem.id
+				);
 			})
 		);
 	}
@@ -72,20 +78,32 @@ watch(
 		youtubeSearch.value.songs.results.forEach((searchItem, index) =>
 			playlist.value.songs.find(song => {
 				youtubeSearch.value.songs.results[index].isAddedToQueue = false;
-				if (song.youtubeId === searchItem.id)
+				if (
+					song.mediaSource === "youtube:" &&
+					song.mediaSource.split(":")[1] === searchItem.id
+				)
 					youtubeSearch.value.songs.results[index].isAddedToQueue =
 						true;
 
-				return song.youtubeId === searchItem.id;
+				return (
+					song.mediaSource === "youtube:" &&
+					song.mediaSource.split(":")[1] === searchItem.id
+				);
 			})
 		);
 		musareSearch.value.results.forEach((searchItem, index) =>
 			playlist.value.songs.find(song => {
 				musareSearch.value.results[index].isAddedToQueue = false;
-				if (song.youtubeId === searchItem.youtubeId)
+				if (
+					song.mediaSource === "youtube:" &&
+					song.mediaSource.split(":")[1] === searchItem.youtubeId
+				)
 					musareSearch.value.results[index].isAddedToQueue = true;
 
-				return song.youtubeId === searchItem.youtubeId;
+				return (
+					song.mediaSource === "youtube:" &&
+					song.mediaSource.split(":")[1] === searchItem.youtubeId
+				);
 			})
 		);
 	}
@@ -156,7 +174,7 @@ onMounted(async () => {
 								@click="
 									addMusareSongToPlaylist(
 										playlist._id,
-										song.youtubeId,
+										song.mediaSource,
 										index
 									)
 								"

+ 4 - 4
frontend/src/components/modals/EditPlaylist/Tabs/ImportPlaylists.vue

@@ -112,12 +112,12 @@ const importMusarePlaylistFile = () => {
 
 	if (importMusarePlaylistFileContents.value.playlist) {
 		mediaSources =
-			importMusarePlaylistFileContents.value.playlist.songs.map(
-				song => `youtube:${song.youtubeId}`
+			importMusarePlaylistFileContents.value.playlist.songs.map(song =>
+				song.youtubeId ? `youtube:${song.youtubeId}` : song.mediaSource
 			);
 	} else if (importMusarePlaylistFileContents.value.songs) {
-		mediaSources = importMusarePlaylistFileContents.value.songs.map(
-			song => `youtube:${song.youtubeId}`
+		mediaSources = importMusarePlaylistFileContents.value.songs.map(song =>
+			song.youtubeId ? `youtube:${song.youtubeId}` : song.mediaSource
 		);
 	}
 

+ 7 - 1
frontend/src/components/modals/EditSong/Tabs/Youtube.vue

@@ -106,7 +106,13 @@ onMounted(() => {
 					<template #actions>
 						<i
 							class="material-icons icon-selected"
-							v-if="result.id === form.inputs.youtubeId.value"
+							v-if="
+								form.inputs.mediaSource.value.startsWith(
+									'youtube:'
+								) &&
+								result.id ===
+									form.inputs.mediaSource.value.split(':')[1]
+							"
 							key="selected"
 							>radio_button_checked
 						</i>