Add "search as you type" to the HTTP interface.
[vlc.git] / share / http-lua / requests / playlist.xml
1 <?xml version="1.0" encoding="utf-8" standalone="yes" ?<?vlc print'>'?>
2 <?vlc --[[
3 vim:syntax=lua
4 <!--  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >
5 <  playlist.xml: VLC media player web interface
6 < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >
7 <  Copyright (C) 2005-2006 the VideoLAN team
8 <  $Id$
9
10 <  Authors: Antoine Cellerier <dionoea -at- videolan -dot- org>
11
12 <  This program is free software; you can redistribute it and/or modify
13 <  it under the terms of the GNU General Public License as published by
14 <  the Free Software Foundation; either version 2 of the License, or
15 <  (at your option) any later version.
16
17 <  This program is distributed in the hope that it will be useful,
18 <  but WITHOUT ANY WARRANTY; without even the implied warranty of
19 <  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 <  GNU General Public License for more details.
21
22 <  You should have received a copy of the GNU General Public License
23 <  along with this program; if not, write to the Free Software
24 <  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
25 < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
26 ]] ?>
27
28 <?vlc
29 --[[<node id="0" name="Undefined" ro="ro">]]
30 function print_playlist(item)
31   if item.flags.disabled then return end
32   if item.children then
33     local name = vlc.convert_xml_special_chars(item.name)
34     print("<node id=\""..tostring(item.id).."\" name=\""..name.."\" ro=\""..(item.flags.ro and "ro" or "rw").."\">")
35     for _, c in ipairs(item.children) do
36       print_playlist(c)
37     end
38     print("</node>")
39   else
40     local name, path = vlc.convert_xml_special_chars(item.name,item.path or "")
41     print("<leaf id='"..tostring(item.id).."' uri='"..path.."' name='"..name.."' ro='"..(item.flags.ro and "ro" or "rw").."' duration='"..tostring(item.duration).."'/>")
42   end
43 end
44 function a(t,pre)
45   local pre = pre or ""
46   for k,v in pairs(t) do
47     vlc.msg.err(pre..tostring(k).." : "..tostring(v))
48     if type(v) == "table" then
49       a(v,pre.."  ")
50     end
51   end
52 end
53 --[[
54 for cat,pl in pairs(p) do
55   print("<node id=\"-1\" name=\""..cat.."\" ro=\"ro\">")
56   print_playlist(pl)
57   print("</node>")
58 end
59 --]]
60 local p
61 if _GET["search"] then
62   if _GET["search"] ~= "" then
63     _G.search_key = _GET["search"]
64   else
65     _G.search_key = nil
66   end
67   local key = vlc.decode_uri(_GET["search"])
68   p = vlc.playlist.search(key)
69 else
70   p = vlc.playlist.get()
71 end
72 -- a(p) Uncomment to debug
73 print_playlist(p)
74 ?>
75
76 <?vlc --[[
77 </node>
78 <node id="9" name="Nevermind" ro="rw">
79 <leaf id="10" current="current" uri="file:///mnt/stuff/media/Nirvana/Nevermind/01 - Smells Like Teen Spirit.mp3" name="Smells Like Teen Spirit" ro="rw" duration="-1"/>
80 ]]?>