diff --git a/inwx_domains_owner.py b/inwx_domains_owner.py index c96667d..0bbe2bd 100644 --- a/inwx_domains_owner.py +++ b/inwx_domains_owner.py @@ -9,6 +9,7 @@ am Ende separat aufgeführt. import os import subprocess import sys +from collections import Counter from inwx_common import get_client, call_api @@ -112,6 +113,21 @@ def get_group(domain): return None +def tld_of(domain): + """Liefert die Top-Level-Domain (Teil hinter dem letzten Punkt).""" + return domain.rsplit('.', 1)[-1].lower() if '.' in domain else domain.lower() + + +def print_group_sums(recs, ziffer): + """Gibt für eine Gruppe die Anzahl Domains pro Top-Level-Domain aus. + + Eine Zeile je TLD im Format , z.B. '10 de 1'. + """ + counts = Counter(tld_of(r['name']) for r in recs) + for tld, anzahl in sorted(counts.items()): + print(f" {ziffer} {tld} {anzahl}") + + def format_domain_line(rec): """Einzeilige Darstellung einer Domain (eingerückt unter der Gruppe).""" if rec['ns'] is None: @@ -158,6 +174,7 @@ def main(): if matching: for rec in matching: print(format_domain_line(rec)) + print_group_sums(matching, ziffer) # Summe direkt unter den Domains else: print(" (keine Domains)") print() # Leerzeile zwischen den Gruppen @@ -170,6 +187,7 @@ def main(): ziffer = rec['ziffer'] hinweis = "" if ziffer is None else f" [citeq:{ziffer} unbekannt]" print(format_domain_line(rec) + hinweis) + print_group_sums(rest, "-") # Summe direkt unter den Domains print() print(f"Gesamt: {len(records)} Domain(s)")