#!/usr/bin/env python3
"""Demandes de formulaire NON arrivees par mail (non_envoye / echec_mail), tous sites du VPS (ou du compte OVH courant).
Usage : python3 /root/lead-copy/voir.py [jours=7] [--tout]   (--tout : inclut les demandes envoyees)
"""
import glob, json, sys, datetime, os
days = int(next((a for a in sys.argv[1:] if a.isdigit()), 7))
tout = "--tout" in sys.argv
lim = (datetime.datetime.now(datetime.timezone.utc) - datetime.timedelta(days=days)).isoformat()
rows = []
for f in glob.glob("/var/www/vhosts/*/lead-copies/*.jsonl") + glob.glob(os.path.expanduser("~/lead-copies/*.jsonl")):
    for line in open(f, encoding="utf-8", errors="replace"):
        try:
            j = json.loads(line)
        except Exception:
            continue
        if j.get("t", "") < lim[:19]:
            continue
        if not tout and j.get("statut") == "envoye":
            continue
        rows.append(j)
for j in sorted(rows, key=lambda x: x.get("t", "")):
    c = j.get("champs", {})
    print("%s | %-26s | %-10s | %s | %s" % (j["t"][:16].replace("T", " "), j.get("site", ""), j.get("statut", ""), j.get("detail", ""),
          " ; ".join("%s=%s" % (k, str(v)[:80]) for k, v in c.items())))
print("%d demande(s) sur %d jour(s)%s" % (len(rows), days, "" if tout else " non arrivee(s) par mail"))
