From f472ad829c3ac4a836f9606e622b0d25759f8c0d Mon Sep 17 00:00:00 2001 From: Rafael Ortiz Date: Fri, 15 Jul 2011 17:14:02 +0000 Subject: Remove unfinished downloads When Browse starts removes all files in the instance directory that where not modified in a long time(1 day). Since there is no way to pause a download and continue later, this files are failed downloads that should be eliminated. this is the ''cache'' case of an already fixed issue, by Jose Prous joseprous@gmail.com --- diff --git a/downloadmanager.py b/downloadmanager.py index 4eab726..4adf98d 100644 --- a/downloadmanager.py +++ b/downloadmanager.py @@ -56,6 +56,8 @@ DS_DBUS_PATH = '/org/laptop/sugar/DataStore' _MIN_TIME_UPDATE = 5 # In seconds _MIN_PERCENT_UPDATE = 10 +_MAX_DELTA_CACHE_TIME = 86400 # In seconds + _active_downloads = [] _dest_to_window = {} @@ -75,6 +77,15 @@ def remove_all_downloads(): datastore.delete(download.dl_jobject.object_id) download.cleanup() +def remove_old_parts(): + temp_path = os.path.join(activity.get_activity_root(), 'instance') + if os.path.exists(temp_path): + for file in os.listdir(temp_path): + file_full_path = os.path.join(temp_path, file) + modification_time = os.path.getmtime(file_full_path) + if(time.time() - modification_time > _MAX_DELTA_CACHE_TIME): + logging.debug('removing %s' % file_full_path) + os.remove(file_full_path) class HelperAppLauncherDialog: _com_interfaces_ = interfaces.nsIHelperAppLauncherDialog diff --git a/webactivity.py b/webactivity.py index 865cbb6..bf20265 100644 --- a/webactivity.py +++ b/webactivity.py @@ -200,6 +200,8 @@ class WebActivity(activity.Activity): _logger.debug('Starting the web activity') + downloadmanager.remove_old_parts() + self._force_close = False self._tabbed_view = TabbedView() -- cgit v0.9.1