vlc | branch: master | Rémi Duraffort <[email protected]> | 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 _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
