A music player that connects to your cloud/distributed storage.
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: adjust v3 playlist import to new playlist item definition

+27 -13
+27 -13
src/facets/tools/v3-import.html.txt
··· 173 173 const playlistName = item.name ?? "Untitled"; 174 174 const isUnordered = !!item.collection; 175 175 176 - return (item.tracks ?? []).map((track, index) => ({ 177 - $type: "sh.diffuse.output.playlistItem", 178 - id: TID.now(), 179 - playlist: playlistName, 180 - position: isUnordered ? undefined : index, 181 - criteria: [ 182 - { field: "tags.album", value: track.album ?? "", transformations: ["toLowerCase"] }, 183 - { field: "tags.artist", value: track.artist ?? "", transformations: ["toLowerCase"] }, 184 - { field: "tags.title", value: track.title ?? "", transformations: ["toLowerCase"] }, 185 - ], 186 - createdAt: now, 187 - updatedAt: now, 188 - })); 176 + const playlistItems = []; 177 + 178 + (item.tracks ?? []).forEach((track, index) => { 179 + playlistItems.push({ 180 + $type: "sh.diffuse.output.playlistItem", 181 + id: TID.now(), 182 + playlist: playlistName, 183 + positionedAfter: isUnordered 184 + ? undefined 185 + : index > 0 186 + ? playlistItems[index - 1].id 187 + : undefined, 188 + criteria: [ 189 + { field: "tags.album", value: track.album ?? "", transformations: ["toLowerCase"] }, 190 + { 191 + field: "tags.artist", 192 + value: track.artist ?? "", 193 + transformations: ["toLowerCase"], 194 + }, 195 + { field: "tags.title", value: track.title ?? "", transformations: ["toLowerCase"] }, 196 + ], 197 + createdAt: now, 198 + updatedAt: now, 199 + }); 200 + }); 201 + 202 + return playlistItems; 189 203 }); 190 204 191 205 await output.playlistItems.save([...existing, ...newPlaylistItems]);