]> git.pld-linux.org Git - packages/clive.git/blame - clive-delfi.patch
- updated to 0.5.0
[packages/clive.git] / clive-delfi.patch
CommitLineData
a524bea4
ER
1--- clive-0.4.10/src/clive/parse.py 2008-04-21 10:54:55.000000000 +0300
2+++ clive-0.4.10-delfi/src/clive/parse.py 2008-04-26 01:09:31.000000000 +0300
d063348f 3@@ -50,6 +50,7 @@
95f38a39
AG
4 ('sevenload.com', 'sevenl', self._parse_sevenload),
5 ('myvideo.', 'myvideo', self._parse_myvideo),
77031ea2 6 ('break.com', 'break', self._parse_break),
a524bea4 7+ ('delfi.', 'delfi', self._parse_delfi),
f9a33831 8 ]
f51d0f1f 9
f9a33831 10 ## Parses a video page data (HTML)
a524bea4 11@@ -221,6 +222,72 @@
f9a33831
ER
12 url = self._parse_from_to(data, 'mediaURL=', '&', skip_from=1)
13 return (url, vid, low_quality)
bbc5d685 14
a524bea4
ER
15+ def _graburl(self, url, read=1):
16+ from urlgrabber.grabber import URLGrabber, URLGrabError
17+ data = ''
18+ try:
19+ g = URLGrabber(
20+ http_headers = (('accept-encoding', 'gzip'),),
21+ user_agent = self._opts.http_agent,
22+ proxies = self._opts.http_proxy
23+ )
24+ o = g.urlopen(url)
25+ if read:
26+ data = o.read()
27+ if o.hdr.get('content-encoding') == 'gzip':
28+ data = gzip.GzipFile(fileobj=StringIO(data)).read()
29+ return data
30+ except URLGrabError, err:
31+ self._say('%s [%s]' % (e.strerror,url), is_error=1)
32+ raise SystemExit
33+ return data
bbc5d685 34+
a524bea4
ER
35+ def _parse_delfi(self, url, data, low_quality):
36+ url = None
37+
38+ s = self._parse_from_to(data, "flv_url:", ",")
39+ if s:
40+ # videobox
41+ # http://www.delfi.ee/news/paevauudised/paevavideo/article.php?id=15218215
42+ try:
43+ url = s.replace("'", "").split('flv_url: ',2)[1]
44+ except IndexError:
45+ pass
46+
47+ if not url:
48+ # videoproject embed
49+ # http://www.delfi.ee/news/paevauudised/paevavideo/article.php?id=18759038
50+ s = self._parse_from_to(data, "_delfiVideoSalt", ";")
51+ salt = None
52+ try:
53+ salt = s.split('"',2)[1]
54+ except IndexError:
55+ pass
56+
57+ if salt != None:
58+ # find url to videoproject
59+ s = self._parse_from_to(data, "src=", "/js/embed.js")
60+ s = s[5 + s.rfind("src"):] + "/video/" + salt + "/"
61+ # fetch video page
62+ s = self._graburl(s)
63+ s = self._parse_from_to(s, "s1.addVariable('file'", ";");
64+ try:
65+ url = s.split("'")[3]
66+ except IndexError:
67+ pass
68+
69+ if not url:
70+ # videoproject
71+ # http://video.delfi.ee/video/Uu4gF58g/
72+ s = self._parse_from_to(data, "s1.addVariable('file'", ";");
73+ try:
74+ url = s.split("'")[3]
75+ except IndexError:
76+ pass
77+
78+ vid = md5.new(str(time.time())).hexdigest()[:8]
79+ return (url, vid, low_quality)
f51d0f1f 80+
f9a33831
ER
81 def _random_vid(self):
82 return md5.new(str(time.time())).hexdigest()[:8]
83
This page took 0.059494 seconds and 4 git commands to generate.