Added created date for new domains

This commit is contained in:
rune 2023-03-28 12:12:04 +02:00
parent d271c44adf
commit ebe9ff1860

28
ddns.py
View File

@ -19,7 +19,7 @@ filepath = homefilepath.joinpath('.config/ddns')
database = filepath.joinpath('ddns.db') database = filepath.joinpath('ddns.db')
logfile = filepath.joinpath('ddns.log') logfile = filepath.joinpath('ddns.log')
logging.basicConfig(filename=logfile,level=logging.INFO) logging.basicConfig(filename=logfile,level=logging.INFO)
app_version = '0.4.1' app_version = '0.4.2'
def get_ip(): def get_ip():
@ -161,7 +161,7 @@ def add_subdomain(domain):
if response != 'Fail': if response != 'Fail':
response_data = response.json() response_data = response.json()
domainid = str(response_data['domain_record']['id']) domainid = str(response_data['domain_record']['id'])
cursor.execute('INSERT INTO subdomains values(?,?,?,?,?,?,?)',(domainid,topdomain_id,sub,ip,None,now,now,)) cursor.execute('INSERT INTO subdomains values(?,?,?,?,?,?,?)',(domainid,topdomain_id,sub,ip,None,now,now,now,))
conn.commit() conn.commit()
print('The domain %s has been added.' % (domain)) print('The domain %s has been added.' % (domain))
logging.info(time.strftime("%Y-%m-%d %H:%M") + ' - Info : subdomain %s added'%(domain)) logging.info(time.strftime("%Y-%m-%d %H:%M") + ' - Info : subdomain %s added'%(domain))
@ -240,7 +240,8 @@ def list_sub_domains(domain):
if count == 0: if count == 0:
print("[red]Error: [/red]No such domain. Check spelling or use ddns -d to show all top domains.") print("[red]Error: [/red]No such domain. Check spelling or use ddns -d to show all top domains.")
else: else:
print('\n\nCurrent sub domains for [b]%s[/b]' % (domain)) print('\n\nCurrent sub domains for [b]%s[/b]\n\n' % (domain))
print('Domain\t\t\t\tCreated\t\t\tUpdated\t\t\tChecked')
print('===============================================================================================') print('===============================================================================================')
cursor.execute('SELECT id FROM domains WHERE name LIKE ?', (domain,)) cursor.execute('SELECT id FROM domains WHERE name LIKE ?', (domain,))
topdomain_id = cursor.fetchone()[0] topdomain_id = cursor.fetchone()[0]
@ -249,12 +250,12 @@ def list_sub_domains(domain):
if count == 0: if count == 0:
print('[red]Error:[/red] No sub domains for [b]%s[/b]' % (domain)) print('[red]Error:[/red] No sub domains for [b]%s[/b]' % (domain))
else: else:
cursor.execute('SELECT name,last_updated,last_checked FROM subdomains WHERE main_id LIKE ?',(topdomain_id,) ) cursor.execute('SELECT name,last_updated,last_checked,created FROM subdomains WHERE main_id LIKE ?',(topdomain_id,) )
subdomains = cursor.fetchall() subdomains = cursor.fetchall()
for i in subdomains: for i in subdomains:
topdomain = i[0]+'.'+domain topdomain = i[0]+'.'+domain
topdomain = "{:<25}".format(topdomain) topdomain = "{:<25}".format(topdomain)
print(topdomain+'\tUpdated : '+i[1]+'\tChecked : '+i[2]) print(topdomain+'\t'+i[3]+'\t'+i[1]+'\t'+i[2])
print('\n') print('\n')
@ -455,21 +456,29 @@ def local_add_subdomain(domain,domainid):
def updatedb(): def updatedb():
# Update DB with new column 20.03.23 # Update DB with new column 20.03.23
# Add last updated field for subdomains # Add last updated field for subdomains
new_table = 'last_updated' new_column = 'last_updated'
info = conn.execute("PRAGMA table_info('subdomains')").fetchall() info = conn.execute("PRAGMA table_info('subdomains')").fetchall()
if not any(new_table in word for word in info): if not any(new_column in word for word in info):
add_column = "ALTER TABLE subdomains ADD COLUMN last_updated text default 'N/A'" add_column = "ALTER TABLE subdomains ADD COLUMN last_updated text default 'N/A'"
conn.execute(add_column) conn.execute(add_column)
conn.commit() conn.commit()
logging.info(time.strftime("%Y-%m-%d %H:%M")+' - Info : Database updated') logging.info(time.strftime("%Y-%m-%d %H:%M")+' - Info : Database updated')
new_table = 'last_checked' new_column = 'last_checked'
info = conn.execute("PRAGMA table_info('subdomains')").fetchall() info = conn.execute("PRAGMA table_info('subdomains')").fetchall()
if not any(new_table in word for word in info): if not any(new_column in word for word in info):
add_column = "ALTER TABLE subdomains ADD COLUMN last_checked text default 'N/A'" add_column = "ALTER TABLE subdomains ADD COLUMN last_checked text default 'N/A'"
conn.execute(add_column) conn.execute(add_column)
conn.commit() conn.commit()
logging.info(time.strftime("%Y-%m-%d %H:%M") + ' - Info : Database updated') logging.info(time.strftime("%Y-%m-%d %H:%M") + ' - Info : Database updated')
new_column = 'created'
info = conn.execute("PRAGMA table_info('subdomains')").fetchall()
if not any(new_column in word for word in info):
add_column = "ALTER TABLE subdomains ADD COLUMN created text default '2023-01-01 00:00'"
conn.execute(add_column)
conn.commit()
logging.info(time.strftime("%Y-%m-%d %H:%M") + ' - Info : Database updated')
@ -548,3 +557,4 @@ elif args['local']:
local_add_subdomain(args['local'][0][0],args['local'][0][1]) local_add_subdomain(args['local'][0][0],args['local'][0][1])
else: else:
updateip(None) updateip(None)