From 407b003cd6993c2e74a1b456baeadab85bbe076e Mon Sep 17 00:00:00 2001 From: shortcutme Date: Mon, 15 Oct 2018 13:11:23 +0200 Subject: [PATCH] Add all piece of an optional file to download queue if one of the piece is downoaded --- plugins/OptionalManager/OptionalManagerPlugin.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/plugins/OptionalManager/OptionalManagerPlugin.py b/plugins/OptionalManager/OptionalManagerPlugin.py index db025b7d..5fce2960 100644 --- a/plugins/OptionalManager/OptionalManagerPlugin.py +++ b/plugins/OptionalManager/OptionalManagerPlugin.py @@ -201,6 +201,20 @@ class SitePlugin(object): else: return super(SitePlugin, self).fileForgot(inner_path) + def fileDone(self, inner_path): + if "|" in inner_path and self.bad_files.get(inner_path, 0) > 5: # Idle optional file done + inner_path_file = re.sub("\|.*", "", inner_path) + num_changed = 0 + for key, val in self.bad_files.items(): + if key.startswith(inner_path_file) and val > 1: + self.bad_files[key] = 1 + num_changed += 1 + self.log.debug("Idle optional file piece done, changed retry number of %s pieces." % num_changed) + if num_changed: + gevent.spawn(self.retryBadFiles) + + return super(SitePlugin, self).fileDone(inner_path) + @PluginManager.registerTo("ConfigPlugin") class ConfigPlugin(object):