This commit is contained in:
rune 2023-04-15 17:11:35 +02:00
parent 15a6540372
commit 024211f0f3

40
ddns.py
View File

@ -129,8 +129,12 @@ def add_subdomain(domain):
print('[red]Error:[/red] Give the domain name in simple form e.g. [b]test.domain.com[/b]') print('[red]Error:[/red] Give the domain name in simple form e.g. [b]test.domain.com[/b]')
else: else:
parts = domain.split('.') parts = domain.split('.')
sub = parts[0] if len(parts) > 3:
top = parts[1] + '.' + parts[2] top = parts[1] + '.' + parts[2] + '.' + parts[3]
sub = parts[0]
else:
sub = parts[0]
top = parts[1] + '.' + parts[2]
apikey = get_api() apikey = get_api()
if apikey == None: if apikey == None:
print("[red]Error:[/red] Missing APIkey. Please add one!") print("[red]Error:[/red] Missing APIkey. Please add one!")
@ -145,9 +149,10 @@ def add_subdomain(domain):
if count == 0: if count == 0:
print('[red]Error:[/red] Top domain [bold]%s[/bold] does not exist in the DB. Please add it with [i]ddns -t %s[/i].' % (top,top)) print('[red]Error:[/red] Top domain [bold]%s[/bold] does not exist in the DB. Please add it with [i]ddns -t %s[/i].' % (top,top))
else: else:
cursor.execute('SELECT id FROM domains WHERE name LIKE ?',(top,)) cursor.execute('SELECT id,name FROM domains WHERE name LIKE ?',(top,))
topdomain_id = cursor.fetchone() topdomain = cursor.fetchone()
topdomain_id = topdomain_id[0] topdomain_id = topdomain[0]
topdomain_name = topdomain[1]
cursor.execute('SELECT count(*) FROM subdomains WHERE main_id LIKE ? AND name like ?',(topdomain_id,sub,)) cursor.execute('SELECT count(*) FROM subdomains WHERE main_id LIKE ? AND name like ?',(topdomain_id,sub,))
count = cursor.fetchone()[0] count = cursor.fetchone()[0]
if count != 0: if count != 0:
@ -174,8 +179,13 @@ def remove_subdomain(domain):
print('[red]Error:[/red] Give the domain name in simple form e.g. [b]test.domain.com[/b]') print('[red]Error:[/red] Give the domain name in simple form e.g. [b]test.domain.com[/b]')
else: else:
parts = domain.split('.') parts = domain.split('.')
sub = parts[0] if len(parts) > 3:
top = parts[1] + '.' + parts[2] top = parts[1] + '.' + parts[2] + '.' + parts[3]
sub = parts[0]
else:
sub = parts[0]
top = parts[1] + '.' + parts[2]
cursor = conn.cursor() cursor = conn.cursor()
cursor.execute('SELECT COUNT(*) FROM domains WHERE name like ?',(top,)) cursor.execute('SELECT COUNT(*) FROM domains WHERE name like ?',(top,))
count = cursor.fetchone()[0] count = cursor.fetchone()[0]
@ -209,8 +219,12 @@ def edit_subdomain(domain):
print('[red]Error:[/red] Give the domain name in simple form e.g. [b]test.domain.com[/b]') print('[red]Error:[/red] Give the domain name in simple form e.g. [b]test.domain.com[/b]')
else: else:
parts = domain.split('.') parts = domain.split('.')
sub = parts[0] if len(parts) > 3:
top = parts[1] + '.' + parts[2] top = parts[1] + '.' + parts[2] + '.' + parts[3]
sub = parts[0]
else:
sub = parts[0]
top = parts[1] + '.' + parts[2]
cursor = conn.cursor() cursor = conn.cursor()
cursor.execute('SELECT COUNT(*) FROM domains WHERE name like ?',(top,)) cursor.execute('SELECT COUNT(*) FROM domains WHERE name like ?',(top,))
count = cursor.fetchone()[0] count = cursor.fetchone()[0]
@ -471,8 +485,12 @@ def local_add_subdomain(domain,domainid):
print('[red]Error:[/red] Give the domain name in simple form e.g. [b]test.domain.com[/b]') print('[red]Error:[/red] Give the domain name in simple form e.g. [b]test.domain.com[/b]')
else: else:
parts = domain.split('.') parts = domain.split('.')
sub = parts[0] if len(parts) > 3:
top = parts[1] + '.' + parts[2] top = parts[1] + '.' + parts[2] + '.' + parts[3]
sub = parts[0]
else:
sub = parts[0]
top = parts[1] + '.' + parts[2]
apikey = get_api() apikey = get_api()
if apikey == None: if apikey == None:
print("[red]Error:[/red] Missing APIkey. Please add one!") print("[red]Error:[/red] Missing APIkey. Please add one!")