SOURCES: clive-delfi.patch - updated to support also videoproject ...
glen
glen at pld-linux.org
Sat Apr 26 00:11:56 CEST 2008
Author: glen Date: Fri Apr 25 22:11:56 2008 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- updated to support also videoproject and embedded videproject videos
---- Files affected:
SOURCES:
clive-delfi.patch (1.4 -> 1.5)
---- Diffs:
================================================================
Index: SOURCES/clive-delfi.patch
diff -u SOURCES/clive-delfi.patch:1.4 SOURCES/clive-delfi.patch:1.5
--- SOURCES/clive-delfi.patch:1.4 Fri Apr 25 23:01:43 2008
+++ SOURCES/clive-delfi.patch Sat Apr 26 00:11:51 2008
@@ -1,26 +1,82 @@
---- clive-0.4.10/src/clive/parse.py~ 2008-04-25 23:53:39.000000000 +0300
-+++ clive-0.4.10/src/clive/parse.py 2008-04-25 23:55:53.000000000 +0300
+--- clive-0.4.10/src/clive/parse.py 2008-04-21 10:54:55.000000000 +0300
++++ clive-0.4.10-delfi/src/clive/parse.py 2008-04-26 01:09:31.000000000 +0300
@@ -50,6 +50,7 @@
('dailymotion.', 'dmotion', self._parse_dmotion),
('guba.com', 'guba', self._parse_guba),
('metacafe.', 'metac', self._parse_metacafe),
-+ ('delfi.', 'delfi', self._parse_delfi),
++ ('delfi.', 'delfi', self._parse_delfi),
]
## Parses a video page data (HTML)
-@@ -221,6 +222,16 @@
+@@ -221,6 +222,72 @@
url = self._parse_from_to(data, 'mediaURL=', '&', skip_from=1)
return (url, vid, low_quality)
-+ def _parse_delfi(self, url, data, low_quality):
-+ text = self._parse_from_to(data, "flv_url:", ",")
-+ try:
-+ url = urllib.unquote(text.replace("'", "").split('flv_url: ',2)[1])
-+ except IndexError:
-+ pass
++ def _graburl(self, url, read=1):
++ from urlgrabber.grabber import URLGrabber, URLGrabError
++ data = ''
++ try:
++ g = URLGrabber(
++ http_headers = (('accept-encoding', 'gzip'),),
++ user_agent = self._opts.http_agent,
++ proxies = self._opts.http_proxy
++ )
++ o = g.urlopen(url)
++ if read:
++ data = o.read()
++ if o.hdr.get('content-encoding') == 'gzip':
++ data = gzip.GzipFile(fileobj=StringIO(data)).read()
++ return data
++ except URLGrabError, err:
++ self._say('%s [%s]' % (e.strerror,url), is_error=1)
++ raise SystemExit
++ return data
+
-+ vid = md5.new(str(time.time())).hexdigest()[:8]
-+ return (url, vid, low_quality)
++ def _parse_delfi(self, url, data, low_quality):
++ url = None
++
++ s = self._parse_from_to(data, "flv_url:", ",")
++ if s:
++ # videobox
++ # http://www.delfi.ee/news/paevauudised/paevavideo/article.php?id=15218215
++ try:
++ url = s.replace("'", "").split('flv_url: ',2)[1]
++ except IndexError:
++ pass
++
++ if not url:
++ # videoproject embed
++ # http://www.delfi.ee/news/paevauudised/paevavideo/article.php?id=18759038
++ s = self._parse_from_to(data, "_delfiVideoSalt", ";")
++ salt = None
++ try:
++ salt = s.split('"',2)[1]
++ except IndexError:
++ pass
++
++ if salt != None:
++ # find url to videoproject
++ s = self._parse_from_to(data, "src=", "/js/embed.js")
++ s = s[5 + s.rfind("src"):] + "/video/" + salt + "/"
++ # fetch video page
++ s = self._graburl(s)
++ s = self._parse_from_to(s, "s1.addVariable('file'", ";");
++ try:
++ url = s.split("'")[3]
++ except IndexError:
++ pass
++
++ if not url:
++ # videoproject
++ # http://video.delfi.ee/video/Uu4gF58g/
++ s = self._parse_from_to(data, "s1.addVariable('file'", ";");
++ try:
++ url = s.split("'")[3]
++ except IndexError:
++ pass
++
++ vid = md5.new(str(time.time())).hexdigest()[:8]
++ return (url, vid, low_quality)
+
def _random_vid(self):
return md5.new(str(time.time())).hexdigest()[:8]
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/clive-delfi.patch?r1=1.4&r2=1.5&f=u
More information about the pld-cvs-commit
mailing list