diff --git a/src/Site/Site.py b/src/Site/Site.py index 20b9919e..76fe3bd2 100644 --- a/src/Site/Site.py +++ b/src/Site/Site.py @@ -49,12 +49,13 @@ class Site(object): self.content_updated = None # Content.js update time self.notifications = [] # Pending notifications displayed once on page load [error|ok|info, message, timeout] self.page_requested = False # Page viewed in browser + self.websockets = [] # Active site websocket connections + self.connection_server = None self.storage = SiteStorage(self, allow_create=allow_create) # Save and load site files self.loadSettings(settings) # Load settings from sites.json self.content_manager = ContentManager(self) self.content_manager.loadContents() # Load content.json files - self.connection_server = None if "main" in sys.modules and "file_server" in dir(sys.modules["main"]): # Use global file server by default if possible self.connection_server = sys.modules["main"].file_server else: @@ -67,7 +68,6 @@ class Site(object): self.settings["wrapper_key"] = CryptHash.random() self.log.debug("New wrapper key: %s" % self.settings["wrapper_key"]) - self.websockets = [] # Active site websocket connections def __str__(self): return "Site %s" % self.address_short @@ -924,6 +924,16 @@ class Site(object): self.log.debug("Queried hashfield from %s peers" % queried) return queried + def delete(self): + self.settings["serving"] = False + self.saveSettings() + self.worker_manager.running = False + self.worker_manager.stopWorkers() + self.storage.deleteFiles() + self.updateWebsocket() + self.content_manager.contents.db.deleteSite(self.site.address) + SiteManager.site_manager.delete(address) + # - Events - # Add event listeners diff --git a/src/Site/SiteStorage.py b/src/Site/SiteStorage.py index e7ebf038..5b70fb54 100644 --- a/src/Site/SiteStorage.py +++ b/src/Site/SiteStorage.py @@ -296,6 +296,7 @@ class SiteStorage(object): i = 0 if not self.site.content_manager.contents.get("content.json"): # No content.json, download it first + self.log.debug("VerifyFile content.json not exists") self.site.needFile("content.json", update=True) # Force update to fix corrupt file self.site.content_manager.loadContent() # Reload content.json for content_inner_path, content in self.site.content_manager.contents.items(): @@ -405,9 +406,6 @@ class SiteStorage(object): except Exception, err: self.log.error("Db file delete error: %s" % err) - # Delete from content.db - self.site.content_manager.contents.db.deleteSite(self.site.address) - for inner_path in files: path = self.getPath(inner_path) if os.path.isfile(path): diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py index d2d2f5c6..48678da4 100644 --- a/src/Ui/UiWebsocket.py +++ b/src/Ui/UiWebsocket.py @@ -665,13 +665,7 @@ class UiWebsocket(object): def actionSiteDelete(self, to, address): site = self.server.sites.get(address) if site: - site.settings["serving"] = False - site.saveSettings() - site.worker_manager.running = False - site.worker_manager.stopWorkers() - site.storage.deleteFiles() - site.updateWebsocket() - SiteManager.site_manager.delete(address) + site.delete() self.user.deleteSiteData(address) self.response(to, "Deleted") import gc