Files

42 lines
1.8 KiB
Python

import urllib.request, json, sys
cf_token = "LfObAyuwjRs_X7Emp-kNl4AFjU1FX0XdLqVwgX0p"
cf_account = "e3584bc80d5c6df89d93078172898d73"
pb_key = "pk1_6e51c25cc1f0ded78246f0a4cd4a3cef404c47308dcc2f8b66bf8065ec6350bf"
pb_secret = "sk1_7dc521cdfb1a987285af2b811333e2fed77ba1013559c6671e25f948305d4f29"
domain = "mrhavens.one"
# 1. Create Zone in Cloudflare
cf_req = urllib.request.Request(
'https://api.cloudflare.com/client/v4/zones',
data=json.dumps({"name": domain, "account": {"id": cf_account}, "type": "full"}).encode(),
headers={'Authorization': f'Bearer {cf_token}', 'Content-Type': 'application/json'}
)
try:
cf_resp = json.loads(urllib.request.urlopen(cf_req).read())
nameservers = cf_resp['result']['name_servers']
print("Cloudflare Zone Created. Nameservers:", nameservers)
except urllib.error.HTTPError as e:
err_body = e.read().decode()
if "already exists" in err_body or e.code == 400:
print("Zone already exists. Fetching...")
cf_get = urllib.request.Request(
f'https://api.cloudflare.com/client/v4/zones?name={domain}',
headers={'Authorization': f'Bearer {cf_token}', 'Content-Type': 'application/json'}
)
cf_resp = json.loads(urllib.request.urlopen(cf_get).read())
nameservers = cf_resp['result'][0]['name_servers']
print("Fetched existing zone nameservers:", nameservers)
else:
print("CF Error:", err_body)
sys.exit(1)
# 2. Update Porkbun Nameservers
pb_req = urllib.request.Request(
f'https://api.porkbun.com/api/json/v3/domain/updateNs/{domain}',
data=json.dumps({"apikey": pb_key, "secretapikey": pb_secret, "ns": nameservers}).encode(),
headers={'Content-Type': 'application/json'}
)
pb_resp = json.loads(urllib.request.urlopen(pb_req).read())
print("Porkbun Update Response:", pb_resp)