access: bluray: fix debug code
[vlc.git] / share / lua / sd / icecast.lua
blob5ad183b7040435ea345f9326cb04049c7287a72e
1 --[[
2 $Id$
4 Copyright © 2010 VideoLAN and AUTHORS
6 Authors: Fabio Ritrovato <sephiroth87 at videolan dot org>
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
21 --]]
23 lazily_loaded = false
25 function lazy_load()
26 if lazily_loaded then return nil end
27 require "simplexml"
28 lazily_loaded = true
29 end
31 function descriptor()
32 return { title="Icecast Radio Directory" }
33 end
35 function dropnil(s)
36 if s == nil then return "" else return s end
37 end
39 function main()
40 lazy_load()
41 local tree = simplexml.parse_url("http://dir.xiph.org/yp.xml")
42 for _, station in ipairs( tree.children ) do
43 simplexml.add_name_maps( station )
44 local station_name = station.children_map["server_name"][1].children[1]
45 if station_name == "Unspecified name" or station_name == "" or station_name == nil
46 then
47 station_name = station.children_map["listen_url"][1].children[1]
48 if string.find( station_name, "radionomy.com" )
49 then
50 station_name = string.match( station_name, "([^/]+)$")
51 station_name = string.gsub( station_name, "-", " " )
52 end
53 end
54 vlc.sd.add_item( {path=station.children_map["listen_url"][1].children[1],
55 title=station_name,
56 genre=dropnil(station.children_map["genre"][1].children[1]),
57 nowplaying=dropnil(station.children_map["current_song"][1].children[1]),
58 uiddata=station.children_map["listen_url"][1].children[1]
59 .. dropnil(station.children_map["server_name"][1].children[1]),
60 meta={
61 ["Listing Source"]="dir.xiph.org",
62 ["Listing Type"]="radio",
63 ["Icecast Bitrate"]=dropnil(station.children_map["bitrate"][1].children[1]),
64 ["Icecast Server Type"]=dropnil(station.children_map["server_type"][1].children[1])
65 }} )
66 end
67 end