summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpommicket <pommicket@gmail.com>2025-08-31 01:49:39 -0400
committerpommicket <pommicket@gmail.com>2025-08-31 01:49:39 -0400
commit58ed5def77df3595f34d68fb9c59a7ce382bdd92 (patch)
tree11862faeef623f58d01db0883683db4ceccbc03a
parent005db3acbbcab682862581ec902d114e5a24142f (diff)
A bit of cleanup
-rwxr-xr-xsimpleddns.py13
1 files changed, 6 insertions, 7 deletions
diff --git a/simpleddns.py b/simpleddns.py
index dc9742b..0fd5679 100755
--- a/simpleddns.py
+++ b/simpleddns.py
@@ -177,6 +177,7 @@ class LinodeDomain(Domain):
self._had_error = True
warn(message)
def _make_request(self, method: str, url: str, body: Any = None) -> Any:
+ sleep(0.33) # should prevent us from hitting Linode's rate limit
headers = self._headers(has_body = body is not None)
options: dict[Any, Any] = {
'headers': headers,
@@ -207,7 +208,6 @@ class LinodeDomain(Domain):
page_size = 500
for page in range(1, 100):
page_url = f'{url}{"&" if "?" in url else "?"}page={page}&page_size={page_size}'
- sleep(0.33) # should prevent us from hitting Linode's rate limit
response_json = self._make_request('GET', page_url)
if response_json is None:
break
@@ -252,6 +252,9 @@ class LinodeDomain(Domain):
remaining_ips.remove(record['target'])
continue
unused_records[record['type']].append(record['id'])
+ if not remaining_ips and not any(v for v in unused_records.values()):
+ self._info('No updates needed.')
+ return True
could_update = set()
# Update existing records if possible (to save on API calls)
for ip in remaining_ips:
@@ -363,14 +366,10 @@ def main() -> None:
settings.dry_run = args.dry_run
if not domains:
fatal_error('No domains defined. Try running with --setup?')
+ print('simpleddns started.')
while True:
- print('Checking if IP changed... ', end='')
- sys.stdout.flush()
- all_ok = True
for domain in domains:
- all_ok = domain.check_for_update() and all_ok
- if all_ok:
- print('All OK')
+ domain.check_for_update()
sleep(settings.interval)
if __name__ == '__main__':