Commit 700ef373 authored by jy1263's avatar jy1263

added functionality to delete songs

parent b2549b86
{ {
"name": "customspeens-client", "name": "spinshare-client",
"version": "1.0.0", "version": "1.0.0",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
......
...@@ -9,3 +9,16 @@ ...@@ -9,3 +9,16 @@
align-items: center; align-items: center;
font-size: 32px; font-size: 32px;
} }
.song-delete-button {
position: absolute;
display: flex;
align-self: flex-start;
background-color: rgba(0, 0, 0, 0.8);
border-bottom-left-radius: 0;
border-top-right-radius: 0;
color: white;
}
.song-delete-button:hover {
background-color: #000000;
color: white;
}
...@@ -12,4 +12,18 @@ ...@@ -12,4 +12,18 @@
font-size: 32px; font-size: 32px;
} }
} }
}
//styling for delete button
.song-delete-button {
position: absolute;
display: flex;
align-self: flex-start;
background-color: rgba(0, 0, 0, 0.8);
border-bottom-left-radius: 0;
border-top-right-radius: 0;
color: white;
&:hover {
background-color: rgba(0, 0, 0, 1);
color: white;
}
} }
\ No newline at end of file
...@@ -82,14 +82,19 @@ class SRXD { ...@@ -82,14 +82,19 @@ class SRXD {
getSongDetail(srtbPath) { getSongDetail(srtbPath) {
let srtbFile = JSON.parse( fs.readFileSync(srtbPath) ); let srtbFile = JSON.parse( fs.readFileSync(srtbPath) );
let songTrackInfo = ""; let songTrackInfo = "";
let songOggInfo = "";
srtbFile.largeStringValuesContainer.values.forEach(function(value) { srtbFile.largeStringValuesContainer.values.forEach(function(value) {
if(value.key == "SO_TrackInfo_TrackInfo") { if(value.key == "SO_TrackInfo_TrackInfo") {
songTrackInfo = JSON.parse( value.val ); songTrackInfo = JSON.parse( value.val );
} }
if(value.key == "SO_ClipInfo_ClipInfo_0") {
songOggInfo = JSON.parse( value.val );
}
}); });
return [songTrackInfo, this.getSongCover(songTrackInfo.albumArtReference.assetName)]; return [songTrackInfo, this.getSongCover(songTrackInfo.albumArtReference.assetName), this.getSongOggDirectory(songOggInfo.clipAssetReference.assetName), this.getSongCoverDirectory(songTrackInfo.albumArtReference.assetName), srtbPath];
} }
// Used to find files by file extension // Used to find files by file extension
...@@ -116,9 +121,42 @@ class SRXD { ...@@ -116,9 +121,42 @@ class SRXD {
return ""; return "";
} }
} }
getSongTrackInfo() { getSongTrackInfo() {
return this.songTrackInfo; return this.songTrackInfo;
} }
//Gets directory of files to delete
getSongCoverDirectory(fileName) {
let dir = fs.readdirSync( path.join(userSettings.get('gameDirectory'), "AlbumArt") );
let fileExtension = dir.filter( elm => elm.match(new RegExp(`(${fileName}).*\.$`, 'ig')));
let finalPath = path.join(userSettings.get('gameDirectory'), "AlbumArt", fileExtension.join());
return finalPath;
}
getSongOggDirectory(fileName) {
let dir = fs.readdirSync( path.join(userSettings.get('gameDirectory'), "AudioClips") );
let fileExtension = dir.filter( elm => elm.match(new RegExp(`(${fileName}).*\.$`, 'ig')));
if (fileExtension != ''){
let finalPath = path.join(userSettings.get('gameDirectory'), "AudioClips", fileExtension.join());
return finalPath;
}
}
//Deletes Files
deleteFiles(oggDirectory, artDirectory, srtbDirectory) {
var deleteFiles = [oggDirectory, artDirectory, srtbDirectory];
for(var i = 0; i < deleteFiles.length; i++){
if (deleteFiles[i] != path.join(userSettings.get('gameDirectory'), "AudioClips" && "AlbumArt")){
try {
fs.unlinkSync(deleteFiles[i]);
} catch(err) {
console.log("One or more files associated either doesn't exist, or has failed to delete.")
}
}
}
RefreshLibrary();
}
} }
module.exports = SRXD; module.exports = SRXD;
...@@ -84,6 +84,12 @@ function BuildLibrarySongDOM(songDetail, spinShareReference) { ...@@ -84,6 +84,12 @@ function BuildLibrarySongDOM(songDetail, spinShareReference) {
songCharter.innerHTML = "<i class=\"mdi mdi-account-circle\"></i><span>" + songDetail[0].charter + "</span>"; songCharter.innerHTML = "<i class=\"mdi mdi-account-circle\"></i><span>" + songDetail[0].charter + "</span>";
songCharterInfo.appendChild(songCharter); songCharterInfo.appendChild(songCharter);
let songDeleteButton = document.createElement("button"); //Creates delete button
songDeleteButton.classList.add("song-delete-button");
songDeleteButton.addEventListener("click", function(){srxdControl.deleteFiles(songDetail[2], songDetail[3], songDetail[4]);});
songDeleteButton.innerHTML = "x";
songCharter.appendChild(songDeleteButton);
songCover.appendChild(songCharterInfo); songCover.appendChild(songCharterInfo);
songContainer.appendChild(songCover); songContainer.appendChild(songCover);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment