Merge pull request #57 from omeganot/master

Config option for purge/delete of "stale" records
This commit is contained in:
Timothy Miller 2021-10-29 21:54:53 -04:00 committed by GitHub
commit def75e282d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 8 deletions

View File

@ -33,6 +33,7 @@ def getIPs():
aaaa = None
global ipv4_enabled
global ipv6_enabled
global purgeUnknownRecords
if ipv4_enabled:
try:
a = requests.get("https://1.1.1.1/cdn-cgi/trace").text.split("\n")
@ -43,6 +44,7 @@ def getIPs():
if not shown_ipv4_warning:
shown_ipv4_warning = True
print("🧩 IPv4 not detected")
if purgeUnknownRecords:
deleteEntries("A")
if ipv6_enabled:
try:
@ -54,6 +56,7 @@ def getIPs():
if not shown_ipv6_warning:
shown_ipv6_warning = True
print("🧩 IPv6 not detected")
if purgeUnknownRecords:
deleteEntries("AAAA")
ips = {}
if(a is not None):
@ -118,6 +121,7 @@ def commitRecord(ip):
print(" Adding new record " + str(record))
response = cf_api(
"zones/" + option['zone_id'] + "/dns_records", "POST", option, {}, record)
if purgeUnknownRecords:
for identifier in duplicate_ids:
identifier = str(identifier)
print("🗑️ Deleting stale record " + identifier)
@ -165,6 +169,7 @@ if __name__ == '__main__':
shown_ipv6_warning = False
ipv4_enabled = True
ipv6_enabled = True
purgeUnknownRecords = False
if(version < 3.5):
raise Exception("🐍 This script requires Python 3.5+")
@ -185,6 +190,11 @@ if __name__ == '__main__':
ipv4_enabled = True
ipv6_enabled = True
print("⚙️ Individually disable IPv4 or IPv6 with new config.json options. Read more about it here: https://github.com/timothymiller/cloudflare-ddns/blob/master/README.md")
try:
purgeUnknownRecords = config["purgeUnknownRecords"]
except:
purgeUnknownRecords = False
print("⚙️ No config detected for 'purgeUnknownRecords' - defaulting to False")
if(len(sys.argv) > 1):
if(sys.argv[1] == "--repeat"):
delay = 5*60

View File

@ -1,4 +1,5 @@
{
"purgeUnknownRecords": false,
"cloudflare": [
{
"authentication": {