Created Zeroname-local plugin that use local namecoind for lookup
Reused Zeroname code, and swapped out the reolveDomain function. It now connects to namecoind directly using RPC and then run rpc.name_show() to find domain.
This commit is contained in:
parent
4e1586acef
commit
64981e4392
4 changed files with 191 additions and 0 deletions
81
plugins/disabled-Zeroname-local/domainLookup.py
Normal file
81
plugins/disabled-Zeroname-local/domainLookup.py
Normal file
|
@ -0,0 +1,81 @@
|
|||
from bitcoinrpc.authproxy import AuthServiceProxy, JSONRPCException
|
||||
import time, json, os, sys, re, socket, json
|
||||
|
||||
# Either returns domain's address or none if it doesn't exist
|
||||
# Supports subdomains and .bit on the end
|
||||
def lookupDomain(domain):
|
||||
domain = domain.lower()
|
||||
|
||||
#remove .bit on end
|
||||
if domain[-4:] == ".bit":
|
||||
domain = domain[0:-4]
|
||||
|
||||
#check for subdomain
|
||||
if domain.find(".") != -1:
|
||||
subdomain = domain[0:domain.find(".")]
|
||||
domain = domain[domain.find(".")+1:]
|
||||
else:
|
||||
subdomain = ""
|
||||
|
||||
try:
|
||||
domain_object = rpc.name_show("d/"+domain)
|
||||
except:
|
||||
#domain doesn't exist
|
||||
return None
|
||||
|
||||
domain_json = json.loads(domain_object['value'])
|
||||
|
||||
try:
|
||||
domain_address = domain_json["zeronet"][subdomain]
|
||||
except:
|
||||
#domain exists but doesn't have any zeronet value
|
||||
return None
|
||||
|
||||
return domain_address
|
||||
|
||||
# Loading config...
|
||||
|
||||
# Check whether platform is on windows or linux
|
||||
# On linux namecoin is installed under ~/.namecoin, while on on windows it is in %appdata%/Namecoin
|
||||
|
||||
if sys.platform == "win32":
|
||||
namecoin_location = os.getenv('APPDATA') + "/Namecoin/"
|
||||
else:
|
||||
namecoin_location = os.path.expanduser("~/.namecoin/")
|
||||
|
||||
# Getting rpc connect details
|
||||
namecoin_conf = open(namecoin_location + "namecoin.conf").read()
|
||||
|
||||
# Connecting to RPC
|
||||
rpc_user = re.search("rpcuser=(.*)$", namecoin_conf, re.M).group(1)
|
||||
rpc_pass = re.search("rpcpassword=(.*)$", namecoin_conf, re.M).group(1)
|
||||
rpc_url = "http://%s:%s@127.0.0.1:8336" % (rpc_user, rpc_pass)
|
||||
|
||||
rpc = AuthServiceProxy(rpc_url, timeout=60*5)
|
||||
|
||||
"""
|
||||
while 1:
|
||||
print "Waiting for new block",
|
||||
sys.stdout.flush()
|
||||
while 1:
|
||||
try:
|
||||
rpc = AuthServiceProxy(rpc_url, timeout=60*5)
|
||||
if (int(rpc.getinfo()["blocks"]) > last_block): break
|
||||
time.sleep(1)
|
||||
rpc.waitforblock()
|
||||
print "Found"
|
||||
break # Block found
|
||||
except socket.timeout: # Timeout
|
||||
print ".",
|
||||
sys.stdout.flush()
|
||||
except Exception, err:
|
||||
print "Exception", err.__class__, err
|
||||
time.sleep(5)
|
||||
|
||||
last_block = int(rpc.getinfo()["blocks"])
|
||||
for block_id in range(config["lastprocessed"]+1, last_block+1):
|
||||
processBlock(block_id)
|
||||
|
||||
config["lastprocessed"] = last_block
|
||||
open(config_path, "w").write(json.dumps(config, indent=2))
|
||||
"""
|
Loading…
Add table
Add a link
Reference in a new issue