diff options
author | pommicket <pommicket@gmail.com> | 2025-08-31 01:49:39 -0400 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2025-08-31 01:49:39 -0400 |
commit | 58ed5def77df3595f34d68fb9c59a7ce382bdd92 (patch) | |
tree | 11862faeef623f58d01db0883683db4ceccbc03a | |
parent | 005db3acbbcab682862581ec902d114e5a24142f (diff) |
A bit of cleanup
-rwxr-xr-x | simpleddns.py | 13 |
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__': |