54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
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)
|