]>
code.delx.au - webdl/blob - common.py
f286333dbccbbfe8807b601e6456e96904ffde84
1 # vim:ts=4:sts=4:sw=4:noet
17 autosocks
.try_autosocks()
19 CACHE_DIR
= os
.path
.expanduser("~/.cache/webdl")
22 def __init__(self
, title
, parent
=None):
25 parent
.children
.append(self
)
28 self
.can_download
= False
35 root_node
= Node("Root")
38 iview_node
= Node("ABC iView", root_node
)
39 iview
.fill_nodes(iview_node
)
42 sbs_node
= Node("SBS", root_node
)
43 sbs
.fill_nodes(sbs_node
)
54 filename
= md5
.new(url
).hexdigest()
55 filename
= os
.path
.join(CACHE_DIR
, filename
)
56 if os
.path
.exists(filename
):
57 if int(time
.time()) - os
.path
.getmtime(filename
) < 24*3600:
60 src
= urllib
.urlopen(url
)
61 dst
= open(filename
, "w")
62 shutil
.copyfileobj(src
, dst
)
80 def download_rtmp(filename
, vbase
, vpath
):
81 if vpath
.endswith(".flv"):
90 p
= subprocess
.Popen(cmd
)
93 print >>sys
.stderr
, "rtmpdump exited with error code:", ret
96 print >>sys
.stderr
, "Failed to run rtmpdump!", e
98 except KeyboardInterrupt:
99 print "Cancelled", cmd
103 except KeyboardInterrupt:
104 p
.send_signal(signal
.SIGKILL
)
107 def download_urllib(filename
, url
):
108 print "Downloading: %s -> %s" % (url
, filename
)
110 src
= urllib
.urlopen(url
)
111 dst
= open(filename
, "w")
112 shutil
.copyfileobj(src
, dst
)
114 except KeyboardInterrupt:
115 print "\nCancelled", url