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.
26 if lazily_loaded
then return nil end
32 return { title
="Icecast Radio Directory" }
36 if s
== nil then return "" else return s
end
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
47 station_name
= station
.children_map
["listen_url"][1].children
[1]
48 if string.find( station_name
, "radionomy.com" )
50 station_name
= string.match( station_name
, "([^/]+)$")
51 station_name
= string.gsub( station_name
, "-", " " )
54 vlc
.sd
.add_item( {path
=station
.children_map
["listen_url"][1].children
[1],
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]),
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])