Add website script for wimp.com
authorMartin Herkt <lachs0r@srsfckn.biz>
Fri, 8 Mar 2013 12:58:03 +0000 (8 13:58 +0100)
committerToni Gundogdu <legatvs@gmail.com>
Fri, 8 Mar 2013 17:00:16 +0000 (8 19:00 +0200)
Signed-off-by: Martin Herkt <lachs0r@srsfckn.biz>
share/lua/website/wimp.lua [new file with mode: 0644]

diff --git a/share/lua/website/wimp.lua b/share/lua/website/wimp.lua
new file mode 100644 (file)
index 0000000..80c4111
--- /dev/null
@@ -0,0 +1,64 @@
+
+-- libquvi-scripts
+-- Copyright (C) 2013  Martin Herkt <lachs0r@srsfckn.bit>
+--
+-- This file is part of libquvi-scripts <http://quvi.sourceforge.net/>.
+--
+-- This library is free software; you can redistribute it and/or
+-- modify it under the terms of the GNU Lesser General Public
+-- License as published by the Free Software Foundation; either
+-- version 2.1 of the License, or (at your option) any later version.
+--
+-- This library 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
+-- Lesser General Public License for more details.
+--
+-- You should have received a copy of the GNU Lesser General Public
+-- License along with this library; if not, write to the Free Software
+-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+-- 02110-1301  USA
+--
+
+-- Identify the script.
+function ident(self)
+  package.path = self.script_dir .. '/?.lua'
+  local C      = require 'quvi/const'
+  local r      = {}
+  r.domain     = "wimp%.com"
+  r.formats    = "default"
+  r.categories = C.proto_http
+  local U      = require 'quvi/util'
+  r.handles    = U.handles(self.page_url, {r.domain}, {"/.+/"})
+  return r
+end
+
+-- Query available formats.
+function query_formats(self)
+  self.formats = 'default'
+  return self
+end
+
+-- Parse media URL.
+function parse(self)
+  self.host_id = "wimp"
+
+  self.id = self.page_url:match("/(.-)/")
+          or error("no match: media ID")
+
+  local p = quvi.fetch(self.page_url)
+
+  self.title = p:match('"og:title" content="(.-)" />')
+              or error("no match: media title")
+
+  self.thumbnail_url = p:match('"og:image" content="(.-)"') or ''
+
+  local B = require 'quvi/util'
+  local u = B.base64_decode(p:match("googleCode = '(.-)'"))
+            or error("no match: encoded media stream URL")
+
+  self.url = {u:match('"file","(.-)"')
+            or error("no match: media stream URL")}
+
+  return self
+end