From af1fb7aaa6e3d4730e49e06d4ca8fea768ff9f38 Mon Sep 17 00:00:00 2001 From: rllola Date: Sun, 14 Apr 2019 22:41:26 +0200 Subject: [PATCH] Also recognise 'map' namecoin standard way of registering for domain --- plugins/ZeronameLocal/SiteManagerPlugin.py | 27 +++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/plugins/ZeronameLocal/SiteManagerPlugin.py b/plugins/ZeronameLocal/SiteManagerPlugin.py index 54c06eef..082cefcd 100644 --- a/plugins/ZeronameLocal/SiteManagerPlugin.py +++ b/plugins/ZeronameLocal/SiteManagerPlugin.py @@ -112,14 +112,35 @@ class SiteManagerPlugin(object): print(domain_object) if "zeronet" in domain_object["value"]: - # Has a subdomain? zeronet_domains = json.loads(domain_object["value"])["zeronet"] + if isinstance(zeronet_domains, str): + # { + # "zeronet":"19rXKeKptSdQ9qt7omwN82smehzTuuq6S9" + # } is valid + zeronet_domains = {"": zeronet_domains} + self.cache[domain] = {"addresses_resolved": zeronet_domains, "time": time.time()} - print(self.cache[domain]) + elif "map" in domain_object["value"]: + # Namecoin standard use {"map": { "blog": {"zeronet": "1D..."} }} + data_map = json.loads(domain_object["value"])["map"] - return self.cache[domain]["addresses_resolved"][subdomain] + zeronet_domains = dict() + for subdomain in data_map: + if "zeronet" in data_map[subdomain]: + zeronet_domains[subdomain] = data_map[subdomain]["zeronet"] + if "zeronet" in data_map and isinstance(data_map["zeronet"], str): + # {"map":{ + # "zeronet":"19rXKeKptSdQ9qt7omwN82smehzTuuq6S9", + # }} + zeronet_domains[""] = data_map["zeronet"] + + else: + # No Zeronet address registered + return None + + return self.cache[domain]["addresses_resolved"][subdomain] @PluginManager.registerTo("ConfigPlugin") class ConfigPlugin(object):