diff --git a/plugins/Zeroname/SiteManagerPlugin.py b/plugins/Zeroname/SiteManagerPlugin.py index 40088f12..f03b7710 100644 --- a/plugins/Zeroname/SiteManagerPlugin.py +++ b/plugins/Zeroname/SiteManagerPlugin.py @@ -21,21 +21,13 @@ class SiteManagerPlugin(object): if not self.get(config.bit_resolver): self.need(config.bit_resolver) # Need ZeroName site - # Checks if it's a valid address - def isAddress(self, address): - return self.isBitDomain(address) or super(SiteManagerPlugin, self).isAddress(address) - - # Return: True if the address is domain - def isDomain(self, address): - return self.isBitDomain(address) or super(SiteManagerPlugin, self).isDomain(address) - # Return: True if the address is .bit domain def isBitDomain(self, address): return re.match(r"(.*?)([A-Za-z0-9_-]+\.bit)$", address) # Resolve domain # Return: The address or None - def resolveDomain(self, domain): + def resolveBitDomain(self, domain): domain = domain.lower() if not self.site_zeroname: self.site_zeroname = self.need(config.bit_resolver) @@ -52,33 +44,10 @@ class SiteManagerPlugin(object): 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 - def need(self, address, *args, **kwargs): - if self.isBitDomain(address): # Its looks like a domain - address_resolved = self.resolveDomain(address) - if address_resolved: - address = address_resolved - else: - return None + # Turn domain into address + def resolveDomain(self, domain): + return self.resolveBitDomain(domain) or super(SiteManagerPlugin, self).resolveDomain(domain) - return super(SiteManagerPlugin, self).need(address, *args, **kwargs) - - # Return: Site object or None if not found - def get(self, address): - if not self.loaded: # Not loaded yet - self.load() - if self.isBitDomain(address): # Its looks like a domain - address_resolved = self.resolveDomain(address) - if address_resolved: # Domain found - site = self.sites.get(address_resolved) - if site: - site_domain = site.settings.get("domain") - if site_domain != address: - site.settings["domain"] = address - else: # Domain not found - site = self.sites.get(address) - - else: # Access by site address - site = super(SiteManagerPlugin, self).get(address) - return site + # Return: True if the address is domain + def isDomain(self, address): + return self.isBitDomain(address) or super(SiteManagerPlugin, self).isDomain(address) diff --git a/src/Site/SiteManager.py b/src/Site/SiteManager.py index bb9fe308..8a880c9d 100644 --- a/src/Site/SiteManager.py +++ b/src/Site/SiteManager.py @@ -135,15 +135,30 @@ class SiteManager(object): def isDomain(self, address): return False + def resolveDomain(self, domain): + return False + # Return: Site object or None if not found def get(self, address): + if self.isDomain(address): + address_resolved = self.resolveDomain(address) + if address_resolved: + address = address_resolved + if not self.loaded: # Not loaded yet self.log.debug("Loading site: %s)..." % address) self.load() - return self.sites.get(address) + site = self.sites.get(address) + + return site # Return or create site and start download site files def need(self, address, all_file=True, settings=None): + if self.isDomain(address): + address_resolved = self.resolveDomain(address) + if address_resolved: + address = address_resolved + from .Site import Site site = self.get(address) if not site: # Site not exist yet