X-Git-Url: https://git.rvb.name/mpd-lua.git/blobdiff_plain/b12b118f634647454e110084173fefbb659419cc..6c4cba13d034c0c7675e8f2aa3ee04ad24c911e1:/mpd.js diff --git a/mpd.js b/mpd.js index f1c60cf..b5ff513 100644 --- a/mpd.js +++ b/mpd.js @@ -1,4 +1,4 @@ -urlbase="/cgi-bin/mpd.lua?" +urlbase="/cgi-bin/mpd.cgi?" minScrollHeight=200 currentState="" @@ -48,8 +48,12 @@ function toHHMMSS(seconds) { function RefreshTime() { if (currentSeconds) { currentTime = toHHMMSS(currentSeconds) - trackTime = toHHMMSS(trackSeconds) - nowPlayingTime = currentTime+"/"+trackTime + if (trackSeconds) { + trackTime = toHHMMSS(trackSeconds) + nowPlayingTime = currentTime+"/"+trackTime + } else { + nowPlayingTime = currentTime + } } else { nowPlayingTime = "-:--/-:--" } @@ -61,7 +65,7 @@ function PeriodicRefreshTime() { nowTime = Date.now() delta = (nowTime - updateTime)/1000 currentSeconds = updateSeconds + Math.round(delta) - if (currentSeconds > trackSeconds) { + if (trackSeconds && (currentSeconds > trackSeconds)) { currentSeconds = trackSeconds } RefreshTime() @@ -76,10 +80,22 @@ function RefreshPageStatus() { if (this.readyState != 4 || this.status != 200) return; var returnedData = JSON.parse(this.responseText); trackName = GetFilename(returnedData['current_playing']); + try { + var trackName=decodeURI(trackName).replace(/%2C/g,",") + } + catch(e) { + console.log(trackName) + } trackNo = returnedData['song']; + trackId = returnedData['songid'] currentState = returnedData['state']; document.title='MPD Player: '+trackName; - nowPlayingTrack = (1+Number(trackNo)) + '/' + returnedData['playlistlength']; + if (trackNo) { + var nowPlayingTrackNo=String(1+Number(trackNo)) + } else { + var nowPlayingTrackNo="--" + } + nowPlayingTrack = nowPlayingTrackNo + '/' + returnedData['playlistlength']; nowPlayingName = trackName; playingTime = returnedData['time'] if (playingTime) { @@ -98,25 +114,25 @@ function RefreshPageStatus() { document.getElementById('nowplaying_trackname').innerHTML=nowPlayingName; RefreshTime() if (currentState=="play") { - document.getElementById('playpausebutton').innerHTML=""; + document.getElementById('playpausebutton').innerHTML=""; } else { - document.getElementById('playpausebutton').innerHTML=""; + document.getElementById('playpausebutton').innerHTML=""; } if (currentState=="stop") { - document.getElementById('stopbutton').innerHTML=""; + document.getElementById('stopbutton').innerHTML=""; } else { - document.getElementById('stopbutton').innerHTML=""; + document.getElementById('stopbutton').innerHTML=""; } if (returnedData["repeat"]=="1") { - document.getElementById('repeatstate').innerHTML=""; + document.getElementById('repeatstate').innerHTML=""; } else { - document.getElementById('repeatstate').innerHTML=""; + document.getElementById('repeatstate').innerHTML=""; } document.getElementById('volume_total').innerHTML="
"; var items = document.getElementById('items'); var table = items.getElementsByClassName('track'); - var current_track="track_"+trackNo; + var current_track="track_"+trackId; for (var i = 0; i < table.length; i++) { if (table[i].id==current_track) { table[i].classList.add("itemActive"); @@ -142,22 +158,28 @@ req.onreadystatechange = function () { var playlistMenuText = "\ \ - \
\ - \ - \ - \ + \ + \ + \ + \
"; var itemsText="\ \ - \ + \ "; var even = 0; for (var key in returnedData) { var rec=returnedData[key]; - var name=GetFilename(rec["name"]); + var name=GetFilename(rec["title"]); + try { + var name=decodeURI(name).replace(/%2C/g,",") + } + catch(e) { + console.log(name) + } var id=rec["id"]; if (even) { @@ -170,19 +192,19 @@ req.onreadystatechange = function () { itemsText = itemsText + "\ \ + "+(Number(key)+1)+"\ \ \ \ \ \ "; } @@ -209,14 +231,14 @@ req.onreadystatechange = function () { var playlistMenuText = "
TitleControlsTitleControls
\ - "+(Number(id)+1)+"\ - "+name+"\ + "+name+"\ \ - \ + \ \ - \ + \ \ - \ + \
\ \ - \
\ - \ + \ + \
"; var itemsText= "\ \ - \ + \ "; var even = 0; @@ -230,7 +252,7 @@ req.onreadystatechange = function () { even = ! even; var itemsText = itemsText + "\ \ - \ + \ "; } @@ -245,6 +267,12 @@ req.onreadystatechange = function () { } else { var tailName=name }; + try { + var tailName=decodeURI(tailName).replace(/%2C/g,",") + } + catch(e) { + console.log(tailName) + } if (type == "directory" || type == "file") { if (even) { @@ -263,14 +291,14 @@ req.onreadystatechange = function () { if (type == "directory") { itemsText = itemsText + ""; + "+tailName+""; }; if (type == "file") { itemsText = itemsText + ""; + "+tailName+""; }; itemsText = itemsText + ""; @@ -301,13 +329,13 @@ req.onreadystatechange = function () { var returnedData = JSON.parse(this.responseText); playlistMenuText="
TitleControlsTitleControls
....\ - "+tailName+"\ - \ + \ - "+tailName+"\ - \ +
\ \ - \
\ - \ + \ + \
"; itemsText="\ \ - \ + \ "; var even = 0; @@ -324,8 +352,8 @@ req.onreadystatechange = function () { itemsText = itemsText + "\ \ - \ - \ + \ + \ "; }
NameControlsNameControls
"+name+""+name+"