#!/usr/bin/env python3 """Ile docelowych URL-i wystepuje w pliku doslownie (a ile jest lamanych przez YAML).""" import collections import json import os import re R = "/var/lib/pagan-sync/recipes" CONV = ("SAFE_HTTPS", "SAFE_HTTPS_UNVERIFIED") d = json.load(open("/tmp/https-audit.json")) occ = [i for c in CONV for i in d.get(c, [])] print(f"docelowych wystapien: {len(occ)}") literal = notfound = ambiguous = 0 per_key = collections.Counter() missing = [] for i in occ: p = os.path.join(R, i["recipe"]) text = open(p, newline="", encoding="utf-8").read() raw = i["raw"] per_key[i["key"]] += 1 n = text.count(raw) if n == 1: literal += 1 elif n == 0: notfound += 1 missing.append((i["recipe"], i["key"], raw)) else: ambiguous += 1 missing.append((i["recipe"], i["key"], raw, f"x{n}")) print(f" doslownie (1 wystapienie): {literal}") print(f" NIE znaleziono doslownie : {notfound}") print(f" wiele wystapien : {ambiguous}") print(" wg klucza:", dict(per_key)) print() for m in missing[:40]: print(" ", m) if len(missing) > 40: print(f" ... i {len(missing)-40} wiecej")