diff options
Diffstat (limited to 'downloadmanager.py')
-rw-r--r-- | downloadmanager.py | 47 |
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) |