Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/downloadmanager.py
diff options
context:
space:
mode:
Diffstat (limited to 'downloadmanager.py')
-rw-r--r--downloadmanager.py47
1 files changed, 20 insertions, 27 deletions
diff --git a/downloadmanager.py b/downloadmanager.py
index ba2b0a5..934693f 100644
--- a/downloadmanager.py
+++ b/downloadmanager.py
@@ -38,6 +38,7 @@ from sugar.graphics.alert import Alert, TimeoutAlert
from sugar.graphics.icon import Icon
from sugar.graphics import style
from sugar.activity import activity
+
# #3903 - this constant can be removed and assumed to be 1 when dbus-python
# 0.82.3 is the only version used
import dbus
@@ -67,7 +68,6 @@ def can_quit():
def remove_all_downloads():
for download in _active_downloads:
download.cancelable.cancel(NS_ERROR_FAILURE)
- download._delete_partial_download()
if download.dl_jobject is not None:
download.datastore_deleted_handler.remove()
datastore.delete(download.dl_jobject.object_id)
@@ -96,12 +96,14 @@ class HelperAppLauncherDialog:
temp_path = os.path.join(activity.get_activity_root(), 'instance')
if not os.path.exists(temp_path):
os.makedirs(temp_path)
- fd, file_path = tempfile.mkstemp(dir=temp_path, prefix=base_name, suffix=extension)
+ fd, file_path = tempfile.mkstemp(dir=temp_path, prefix=base_name,
+ suffix=extension)
os.close(fd)
os.chmod(file_path, 0644)
dest_file.initWithPath(file_path)
- requestor = window_context.queryInterface(interfaces.nsIInterfaceRequestor)
+ interface_id = interfaces.nsIInterfaceRequestor
+ requestor = window_context.queryInterface(interface_id)
dom_window = requestor.getInterface(interfaces.nsIDOMWindow)
_dest_to_window[file_path] = dom_window
@@ -142,14 +144,14 @@ class Download:
del _dest_to_window[file_path]
view = hulahop.get_view_for_window(dom_window)
- logging.debug('Download.init dom_window: %r' % dom_window)
+ logging.debug('Download.init dom_window: %r', dom_window)
self._activity = view.get_toplevel()
return NS_OK
def onStatusChange(self, web_progress, request, status, message):
- logging.info('Download.onStatusChange(%r, %r, %r, %r)' % \
- (web_progress, request, status, message))
+ logging.info('Download.onStatusChange(%r, %r, %r, %r)',
+ web_progress, request, status, message)
def onStateChange(self, web_progress, request, state_flags, status):
if state_flags & interfaces.nsIWebProgressListener.STATE_START:
@@ -167,8 +169,8 @@ class Download:
elif state_flags & interfaces.nsIWebProgressListener.STATE_STOP:
if NS_FAILED(status):
- self._delete_partial_download() # download cancelled
- return
+ # download cancelled
+ return
self._stop_alert = Alert()
self._stop_alert.props.title = _('Download completed')
@@ -246,24 +248,16 @@ class Download:
preview_data = ''.join(preview_data)
return dbus.ByteArray(preview_data)
- def _delete_partial_download(self):
- file_path = self._target_file.path.encode('utf-8', 'replace')
- if os.path.exists(file_path):
- os.unlink(file_path)
- if os.path.exists(file_path + ".part"):
- os.unlink(file_path + ".part")
-
def __start_response_cb(self, alert, response_id):
global _active_downloads
if response_id is gtk.RESPONSE_CANCEL:
logging.debug('Download Canceled')
- self._delete_partial_download()
self.cancelable.cancel(NS_ERROR_FAILURE)
try:
self.datastore_deleted_handler.remove()
datastore.delete(self._object_id)
- except Exception, e:
- logging.warning('Object has been deleted already %s' % e)
+ except Exception:
+ logging.exception('Object has been deleted already')
if self.dl_jobject is not None:
self.cleanup_datastore_write()
if self._stop_alert is not None:
@@ -282,7 +276,6 @@ class Download:
global _active_downloads
_active_downloads.remove(self)
- file_path = self._target_file.path.encode('utf-8', 'replace')
if os.path.isfile(self.dl_jobject.file_path):
os.remove(self.dl_jobject.file_path)
self.dl_jobject.destroy()
@@ -292,7 +285,7 @@ class Download:
self.cleanup_datastore_write()
def _internal_save_error_cb(self, err):
- logging.debug("Error saving activity object to datastore: %s" % err)
+ logging.error('Error saving activity object to datastore: %s', err)
self.cleanup_datastore_write()
def onProgressChange64(self, web_progress, request, cur_self_progress,
@@ -349,13 +342,12 @@ class Download:
arg0=self.dl_jobject.object_id)
def __datastore_deleted_cb(self, uid):
- logging.debug('Downloaded entry has been deleted from the datastore: %r'
- % uid)
+ logging.debug('Downloaded entry has been deleted from the data'
+ ' store: %r', uid)
global _active_downloads
if self in _active_downloads:
# TODO: Use NS_BINDING_ABORTED instead of NS_ERROR_FAILURE.
- self._delete_partial_download()
- self.cancelable.cancel(NS_ERROR_FAILURE) # NS_BINDING_ABORTED)
+ self.cancelable.cancel(NS_ERROR_FAILURE)
_active_downloads.remove(self)
@@ -438,9 +430,10 @@ class _SaveLinkProgressListener(object):
logging.error("Error downloading link")
return
- cls = components.classes[
- "@mozilla.org/uriloader/external-helper-app-service;1"]
- external_helper = cls.getService(interfaces.nsIExternalHelperAppService)
+ class_name = '@mozilla.org/uriloader/external-helper-app-service;1'
+ cls = components.classes[class_name]
+ interface_id = interfaces.nsIExternalHelperAppService
+ external_helper = cls.getService(interface_id)
channel = request.QueryInterface(interfaces.nsIChannel)