[vlc-commits] commit: appletrailer: sort the elements of the playlist. ( Rémi Duraffort )
git at videolan.org
git at videolan.org
Sun Aug 22 09:10:25 CEST 2010
vlc | branch: master | Rémi Duraffort <ivoire at videolan.org> | Sun Aug 22 09:09:57 2010 +0200| [e0b2c38dc2563c08c1746a69b78f5694562fbb74] | committer: Rémi Duraffort
appletrailer: sort the elements of the playlist.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e0b2c38dc2563c08c1746a69b78f5694562fbb74
---
share/lua/playlist/appletrailers.lua | 29 ++++++++++++++++++++++++++---
1 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/share/lua/playlist/appletrailers.lua b/share/lua/playlist/appletrailers.lua
index ad6437f..434300f 100644
--- a/share/lua/playlist/appletrailers.lua
+++ b/share/lua/playlist/appletrailers.lua
@@ -3,7 +3,7 @@
movie URL
$Id$
- Copyright © 2007 the VideoLAN team
+ Copyright © 2007-2010 the VideoLAN team
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
@@ -31,6 +31,27 @@ function find( haystack, needle )
return r
end
+function sort(a, b)
+ if(a == nil) then return false end
+ if(b == nil) then return false end
+
+ local str_a
+ local str_b
+
+ if(string.find(a.name, '%(') == 1) then
+ str_a = tonumber(string.sub(a.name, 2, string.find(a.name, 'p') - 1))
+ str_b = tonumber(string.sub(b.name, 2, string.find(b.name, 'p') - 1))
+ else
+ str_a = string.sub(a.name, 1, string.find(a.name, '%(') - 2)
+ str_b = string.sub(b.name, 1, string.find(b.name, '%(') - 2)
+ if(str_a == str_b) then
+ str_a = tonumber(string.sub(a.name, string.len(str_a) + 3, string.find(a.name, 'p', string.len(str_a) + 3) - 1))
+ str_b = tonumber(string.sub(b.name, string.len(str_b) + 3, string.find(b.name, 'p', string.len(str_b) + 3) - 1))
+ end
+ end
+ if(str_a > str_b) then return false else return true end
+end
+
-- Parse function.
function parse()
local playlist = {}
@@ -43,7 +64,7 @@ function parse()
if not line then break end
if string.match( line, "class=\".-first" ) then
- description = find( line, "h%d.->(.-)</h%d")
+ description = find( line, "h%d.->(.-)</h%d") .. ' '
end
if string.match( line, 'img src=') then
for img in string.gmatch(line, '<img src="(http://.*\.jpg)" ') do
@@ -59,11 +80,13 @@ function parse()
for urlline,resolution in string.gmatch(line, "class=\"hd\".-href=\"(.-.mov)\".-(%d+.-p)") do
urlline = string.gsub( urlline, "_"..resolution, "_h"..resolution )
table.insert( playlist, { path = urlline,
- name = description .. " (" .. resolution .. ")",
+ name = description .. '(' .. resolution .. ')',
arturl = art_url,
options = {":http-user-agent=QuickTime/7.2", ":demux=avformat,ffmpeg",":play-and-pause"} } )
end
end
end
+
+ table.sort(playlist, sort)
return playlist
end
More information about the vlc-commits
mailing list