diff --git a/src/Content/ContentManager.py b/src/Content/ContentManager.py index 9d6b31bc..3b8508c7 100644 --- a/src/Content/ContentManager.py +++ b/src/Content/ContentManager.py @@ -23,7 +23,6 @@ class ContentManager(object): self.contents = ContentDbDict(site) self.hashfield = PeerHashfield() self.has_optional_files = False - self.site.onFileDone.append(lambda inner_path: self.addOptionalFile(inner_path)) def loadContents(self): if len(self.contents) == 0: @@ -800,12 +799,6 @@ class ContentManager(object): self.log.error("File not in content.json: %s" % inner_path) return False - def addOptionalFile(self, inner_path): - info = self.getFileInfo(inner_path) - if info and info["optional"]: - self.log.debug("Downloaded optional file, adding to hashfield: %s" % inner_path) - self.hashfield.appendHash(info["sha512"]) - if __name__ == "__main__": def testSign(): diff --git a/src/Worker/WorkerManager.py b/src/Worker/WorkerManager.py index ba3f095d..16e2e4f9 100644 --- a/src/Worker/WorkerManager.py +++ b/src/Worker/WorkerManager.py @@ -8,10 +8,11 @@ import gevent from Worker import Worker from Config import config from util import helper +from Plugin import PluginManager import util - -class WorkerManager: +@PluginManager.acceptPlugins +class WorkerManager(object): def __init__(self, site): self.site = site @@ -417,6 +418,9 @@ class WorkerManager: def doneTask(self, task): task["done"] = True self.tasks.remove(task) # Remove from queue + if task["optional_hash_id"]: + self.log.debug("Downloaded optional file, adding to hashfield: %s" % task["inner_path"]) + self.site.content_manager.hashfield.appendHashId(task["optional_hash_id"]) self.site.onFileDone(task["inner_path"]) task["evt"].set(True) if not self.tasks: