allow to remove files from mp playlist, also fixes dl-link in playlist and actually...
authorMoritz Venn <ritzmo@users.schwerkraft.elitedvb.net>
Mon, 26 Oct 2009 18:09:37 +0000 (18:09 +0000)
committerMoritz Venn <ritzmo@users.schwerkraft.elitedvb.net>
Mon, 26 Oct 2009 18:09:37 +0000 (18:09 +0000)
webinterface/src/WebComponents/Sources/MP.py
webinterface/src/WebScreens.py
webinterface/src/web-data/config.js
webinterface/src/web-data/tools.js
webinterface/src/web-data/tpl/default/tplMediaPlayer.htm

index 745447a..e500a2e 100644 (file)
@@ -9,6 +9,7 @@ class MP(Source):
        COMMAND = 3
        WRITEPLAYLIST = 4
        ADD = 5
+       REMOVE = 6
 
        def __init__(self, session, func=LIST):
                Source.__init__(self)
@@ -31,6 +32,8 @@ class MP(Source):
                        self.result = self.command(cmd)
                elif func is self.WRITEPLAYLIST:
                        self.result = self.writePlaylist(cmd)
+               elif func is self.REMOVE:
+                       self.result = self.removeFile(cmd)
                elif func is self.ADD:
                        self.result = self.addFile(cmd)
 
@@ -133,6 +136,29 @@ class MP(Source):
                mp.playlist.updateList()
                return (True, "%s added to playlist and/or playback started" % (file))
 
+       def removeFile(self, file):
+               # TODO: fix error handling
+               mp = self.tryOpenMP()
+               if mp is None:
+                       return (False, "mediaplayer not installed")
+
+               ref = eServiceReference(file)
+               if not ref.valid():
+                       if not os_path.isfile(file):
+                               return (False, "%s is neither a valid reference nor a valid file" % file)
+                       ref = eServiceReference(4097, 0, file)
+
+               serviceRefList = mp.playlist.getServiceRefList()
+               i = 0
+               for mpref in serviceRefList:
+                       if mpref == ref:
+                               mp.playlist.deleteFile(i)
+                               mp.playlist.updateList()
+                               return (True, "%s removed from playlist" % file)
+                       i += 1
+
+               return (False, "%s not found in playlist" % file)
+
        def writePlaylist(self, param):
                filename = "playlist/%s.e2pls" % param
                from Tools.Directories import resolveFilename, SCOPE_CONFIG
index d14d824..7280b8d 100644 (file)
@@ -185,6 +185,7 @@ class MediaPlayerWebScreen(WebScreen):
 
                self["FileList"] = MP(session, func=MP.LIST)
                self["PlayFile"] = MP(session, func=MP.PLAY)
+               self["RemoveFile"] = MP(session, func=MP.REMOVE)
                self["Command"] = MP(session, func=MP.COMMAND)
                self["WritePlaylist"] = MP(session, func=MP.WRITEPLAYLIST)
 
index b8acfcf..da1c0ee 100644 (file)
@@ -38,8 +38,9 @@ var url_moviedelete= "/web/moviedelete"; // plus serviceref
 
 var url_mediaplayerlist= "/web/mediaplayerlist?types=audio&path="; // plus full qualified path
 var url_mediaplayerplay= "/web/mediaplayerplay?file="; // plus file-serviceref
+var url_mediaplayerremove= "/web/mediaplayerremove?file="; // plus file-serviceref
 var url_mediaplayercmd= "/web/mediaplayercmd?command="; // plus command
-var url_mediaplayerwrite= "/web/mediaplayerwrite?filename="; // plus command
+var url_mediaplayerwrite= "/web/mediaplayerwrite?filename="; // plus filename
 
 var url_filelist = "/web/mediaplayerlist?path="; // plus full qualified path
 
@@ -71,4 +72,4 @@ var providerRadio ='1:7:2:0:0:0:0:0:0:0:(type == 2) FROM PROVIDERS ORDER BY name
 var satellitesTv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) FROM SATELLITES ORDER BY name';
 var satellitesRadio ='1:7:2:0:0:0:0:0:0:0:(type == 2) FROM SATELLITES ORDER BY name';
 var allTv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) ORDER BY name';
-var allRadio = '1:7:2:0:0:0:0:0:0:0:(type == 2) ORDER BY name';
\ No newline at end of file
+var allRadio = '1:7:2:0:0:0:0:0:0:0:(type == 2) ORDER BY name';
index 945ae81..ec813b9 100644 (file)
@@ -1239,7 +1239,7 @@ function restartTwisted() {
 
 //MediaPlayer
 function sendMediaPlayer(command) {
-       debug("[playFile] loading sendMediaPlayer");
+       debug("[sendMediaPlayer] called");
        doRequest( url_mediaplayercmd+command );
 }
 
@@ -1337,14 +1337,21 @@ function playFile(file,root) {
 }
 
 
+function deleteFile(sref) {
+       debug("[deleteFile] called");
+       mediaPlayerStarted = true;
+       doRequest( url_mediaplayerremove+sref );
+}
+
+
 function openMediaPlayerPlaylist() {
-       debug("[playFile] loading openMediaPlayerPlaylist");
+       debug("[openMediaPlayerPlaylist] called");
        doRequest(url_mediaplayerlist+"playlist", incomingMediaPlayer, false);
 }
 
 
 function writePlaylist() {
-       debug("[playFile] loading writePlaylist");
+       debug("[writePlaylist] called");
        var filename = '';
        filename = prompt("Please enter a name for the playlist", "");
 
index 3d3892a..ed17da3 100644 (file)
@@ -15,8 +15,7 @@
                                                                <area shape="circle" coords="125, 17, 14" nohref onclick="sendMediaPlayer('next')" alt="jump forward">
                                                                <area shape="circle" coords="161, 17, 14" nohref onclick="sendMediaPlayer('stop')" alt="stop">
                                                                </map><img src="/web-data/gfx/dvr-buttons-small-fs8.png" align="top" title="Control MediaPlayer" border="0" usemap="#mpcontrols">
-                                                               <!--  <img src="/web-data/img/edit.png" onclick="openMediaPlayerPlaylist()">
-                                                                still need some work for editing --> 
+                                                               <img src="/web-data/img/edit.png" onclick="openMediaPlayerPlaylist()">
                                                        </div>
                                                        <div class="sListSearch">
                                                                <img src="/web-data/img/nok.png" align="top" title="Close MediaPlayer" border="0" onclick="sendMediaPlayer('exit')">
                                                        <div style="color: #${item.color};" onclick="${item.exec}('${item.servicereference}','${item.root}');" class="sListSName" title="${item.servicereference}">${item.name}</div>
                                                </td>
                                                <td>
-                                                       {if item.isdir == "false"}                                                      
+                                                       {if item.root == "playlist"}
+                                                       <div class="sListExt">
+                                                               <img src="/web-data/gfx/play.png" onclick="${item.exec}('${item.servicereference}','${item.root}');" title="${item.exec_description}" border="0">
+                                                               <img src="/web-data/img/nok.png" onclick="deleteFile('${item.servicereference}');" title="remove file" border="0">
+                                                               <a target="_blank" href="/file?file=${item.name}"><img src="/web-data/img/save.png" title="Download File" border="0"></a>
+                                                       </div>
+                                                       {elseif item.isdir == "false"}                                                  
                                                        <div class="sListExt">
                                                                <img src="/web-data/gfx/play.png" onclick="${item.exec}('${item.servicereference}','${item.root}');" title="${item.exec_description}" border="0">
                                                                <a target="_blank" href="/file?file=${item.name}&root=${item.root}"><img src="/web-data/img/save.png" title="Download File" border="0"></a>