Move resolveDomain to SiteManager for easier resolver plugins
This commit is contained in:
parent
7801937f74
commit
2bdd073608
2 changed files with 23 additions and 39 deletions
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue