katsomo.lua: add code to handle both treeId and progId in url
[vlc.git] / share / lua / playlist / katsomo.lua
index 8560a2d..46d62eb 100644 (file)
@@ -24,6 +24,7 @@
 function probe()
     return vlc.access == "http"
         and string.match( vlc.path, "www.katsomo.fi" )
+        and ( string.match( vlc.path, "treeId" ) or string.match( vlc.path, "progId" ) )
 end
 
 function find( haystack, needle )
@@ -34,6 +35,13 @@ end
 -- Parse function.
 function parse()
     p = {}
+    if string.match( vlc.path, "progId" )
+    then
+       programid = string.match( vlc.path, "progId=(%d+)")
+       path = "http://www.katsomo.fi/metafile.asx?p="..programid.."&bw=800"
+       table.insert(p, { path = path; } )
+       return p
+    end
     while true
     do
         line = vlc.readline()
@@ -41,15 +49,9 @@ function parse()
         if string.match( line, "<title>" )
         then
             title = vlc.strings.decode_uri( find( line, "<title>(.-)<" ) )
-            vlc.msg.info("found title: "..title)
-        end
-        if string.match( line, "<li class=\"program\"" )
-        then
-            description = vlc.strings.resolve_xml_special_chars( find( line, "title=\"(.-)\"" ) )
-            vlc.msg.info("found description:"..description)
         end
-        for programid in string.gmatch( line, "<li class=\"program\" id=\"program(.-)\"" ) do
-            vlc.msg.info("found program id "..programid)
+        for programid in string.gmatch( line, "<li class=\"program\" id=\"program(%d+)\"" ) do
+            description = vlc.strings.resolve_xml_special_chars( find( line, "title=\"(.+)\"" ) )
             path = "http://www.katsomo.fi/metafile.asx?p="..programid.."&bw=800"
             table.insert( p, { path = path; name = title; description = description; url = vlc.path;} )
         end