1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import gobject
20
21
22
23
24
25 import urllib
26 use_gnomevfs = False
27
28
32
33 - def read_cb (self, handle, buffer, exc_type, bytes_requested, (data, callback, args)):
34 if exc_type:
35 if issubclass (exc_type, gnomevfs.EOFError):
36 gobject.idle_add (callback, data, *args)
37 handle.close (lambda *args: None)
38 else:
39 gobject.idle_add (callback, None, *args)
40 handle.close (lambda *args: None)
41 return
42
43 data += buffer
44 handle.read (self.chunk, self.read_cb, (data, callback, args))
45
46 - def open_cb (self, handle, exc_type, (data, callback, args)):
47 if exc_type:
48 gobject.idle_add (callback, None, *args)
49 return
50
51 handle.read (self.chunk, self.read_cb, (data, callback, args))
52
53 - def get_url (self, url, callback, *args):
54 gnomevfs.async.open (url, self.open_cb, data=("", callback, args))
55
56
58 - def get_url (self, url, callback, *args):
59 try:
60 sock = urllib.urlopen (url)
61 data = sock.read ()
62 sock.close ()
63 callback (data, *args)
64 except:
65 callback (None, *args)
66 raise
67
68
74