From bbbfffd1cb5727ce5aa5e88903fdd071da3feb78 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Sat, 19 Nov 2016 10:56:19 +0100 Subject: [PATCH] Rev1754, Don't reload domain database on very request --- plugins/Zeroname/SiteManagerPlugin.py | 18 +++++++++++++++--- src/Config.py | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/plugins/Zeroname/SiteManagerPlugin.py b/plugins/Zeroname/SiteManagerPlugin.py index fcf666ae..2d1979d8 100644 --- a/plugins/Zeroname/SiteManagerPlugin.py +++ b/plugins/Zeroname/SiteManagerPlugin.py @@ -1,5 +1,6 @@ import logging import re +import time from Config import config from Plugin import PluginManager @@ -12,6 +13,8 @@ log = logging.getLogger("ZeronamePlugin") @PluginManager.registerTo("SiteManager") class SiteManagerPlugin(object): site_zeroname = None + db_domains = None + db_domains_modified = None def load(self, *args, **kwargs): super(SiteManagerPlugin, self).load(*args, **kwargs) @@ -35,9 +38,18 @@ class SiteManagerPlugin(object): domain = domain.lower() if not self.site_zeroname: self.site_zeroname = self.need(config.bit_resolver) - self.site_zeroname.needFile("data/names.json", priority=10) - db = self.site_zeroname.storage.loadJson("data/names.json") - return db.get(domain) + + site_zeroname_modified = self.site_zeroname.content_manager.contents.get("content.json", {}).get("modified", 0) + if not self.db_domains or self.db_domains_modified != site_zeroname_modified: + self.site_zeroname.needFile("data/names.json", priority=10) + s = time.time() + self.db_domains = self.site_zeroname.storage.loadJson("data/names.json") + log.debug( + "Domain db with %s entries loaded in %.3fs (modification: %s -> %s)" % + (len(self.db_domains), time.time() - s, self.db_domains_modified, site_zeroname_modified) + ) + self.db_domains_modified = site_zeroname_modified + return self.db_domains.get(domain) # Return or create site and start download site files # Return: Site or None if dns resolve failed diff --git a/src/Config.py b/src/Config.py index 348659c6..2ef325ab 100644 --- a/src/Config.py +++ b/src/Config.py @@ -9,7 +9,7 @@ class Config(object): def __init__(self, argv): self.version = "0.5.1" - self.rev = 1751 + self.rev = 1754 self.argv = argv self.action = None self.config_file = "zeronet.conf"