ddns client

main
Brett 2024-06-09 12:31:56 -04:00
commit 616a826f84
1 changed files with 53 additions and 0 deletions

53
main.py Normal file
View File

@ -0,0 +1,53 @@
import requests
import argparse
import json
from pathlib import Path
class Env:
def __init__(self, username, api_key):
self.username = username
self.api_key = api_key
class Zone:
def __init__(self, zone_id, env, records):
self.zone_id = zone_id
self.env = env
self.records = records
def parse_arguments():
parser = argparse.ArgumentParser(description="Silly little DDNS client", prog="Brett's DDNS Client")
parser.add_argument("--env", "-e", default="/etc/bddns.env", required=False)
parser.add_argument("--config", "-c", default="/etc/bddns.conf", required=False)
return parser.parse_args()
def get_env(env_path):
with open(env_path, "r") as f:
json_env = json.load(f)
envs = {}
for user in json_env["users"]:
envs[user['username']] = Env(user['username'], user['api_key'])
return envs
def get_conf(conf_path, envs):
with open(conf_path, "r") as f:
json_env = json.load(f)
zones = []
for zone in json_env["zones"]:
sites = []
for site in zone["sites"]:
sites.append(site)
zones.append(Zone(zone["zone_id"], envs[zone["username"]], sites))
return zones
if __name__ == '__main__':
args = parse_arguments()
user_envs = get_env(args.env)