[vlc-devel] commit: Lua SD: Free Music Charts script (Fabio Ritrovato )
git version control
git at videolan.org
Tue Feb 16 14:07:42 CET 2010
vlc | branch: master | Fabio Ritrovato <sephiroth87 at videolan.org> | Tue Feb 16 14:07:16 2010 +0100| [07db8d36078131bde0c65881c5ccf5a6fe69e430] | committer: Fabio Ritrovato
Lua SD: Free Music Charts script
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=07db8d36078131bde0c65881c5ccf5a6fe69e430
---
share/lua/sd/fmc.lua | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/share/lua/sd/fmc.lua b/share/lua/sd/fmc.lua
new file mode 100644
index 0000000..eae7901
--- /dev/null
+++ b/share/lua/sd/fmc.lua
@@ -0,0 +1,52 @@
+--SD_Description=Free Music Charts
+--[[
+ $Id$
+
+ Copyright © 2010 the VideoLAN team
+
+ Authors: Fabio Ritrovato <sephiroth87 at videolan dot org>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+--]]
+require "simplexml"
+
+function main()
+ local tree = simplexml.parse_url("http://www.archive.org/download/freemusiccharts.songs/fmc.xml")
+ for i = 1, table.getn(tree.children) do
+ simplexml.add_name_maps( tree.children[i] )
+ local node = vlc.sd.add_node( {title=tree.children[i].children_map["description"][1].children[1]} )
+ if tonumber( tree.children[i].children_map["songcount"][1].children[1] ) > 0 then
+ local songs_node = node:add_node( {title="Songs"} )
+ for j = 1, table.getn( tree.children[i].children_map["songs"][1].children ) do
+ _, _, artist, title = string.find( tree.children[i].children_map["songs"][1].children[j].children_map["name"][1].children[1], "(.+)%s*-%s*(.+)" )
+ local rank = tree.children[i].children_map["songs"][1].children[j].children_map["rank"][1].children[1]
+ if rank ~= nil then
+ rank = "Rank: " .. rank
+ else
+ rank = "Rank: N/A"
+ end
+ local votes = tree.children[i].children_map["songs"][1].children[j].children_map["votes"][1].children[1]
+ if votes ~= nil then
+ votes = "Votes: " .. rank
+ else
+ votes = "Votes: N/A"
+ end
+ songs_node:add_subitem( {url=tree.children[i].children_map["songs"][1].children[j].children_map["url"][1].children[1],title=title,artist=artist,description=rank .. ", " .. votes} )
+ end
+ end
+ node:add_subitem( {title=tree.children[i].children_map["date"][1].children[1] .. " MP3 Podcast",url=tree.children[i].children_map["podcastmp3"][1].children[1]} )
+ node:add_subitem( {title=tree.children[i].children_map["date"][1].children[1] .. " OGG Podcast",url=tree.children[i].children_map["podcastogg"][1].children[1]} )
+ end
+end
More information about the vlc-devel
mailing list