81 lines
No EOL
2.1 KiB
Python
81 lines
No EOL
2.1 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)
|
|
|
|
"""
|
|
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))
|
|
""" |