import json,glob,os,re
P=re.compile(r"machin|excavat|digger|bobcat|skid|roller|paver|paving|asphalt|bitumen|tarmac|truck|loader|dumper|telehandler|forklift|kerb machine|line mark|linemark|hydroseed|compact|plant|tipper|posi|track",re.I)
print("=== PLANT / MACHINE sightings across ALL 2636 photos + messages ===")
n=0
for f in sorted(glob.glob("/root/.hermes/wa-bridge/days/2636_*.jsonl")):
    d=os.path.basename(f).split("_")[1][:10]
    for l in open(f,encoding="utf-8"):
        try: r=json.loads(l)
        except: continue
        blob=" ".join(str(r.get(k) or "") for k in ("text","desc","caption"))
        if P.search(blob):
            n+=1
            med="PHOTO" if r.get("media") else "text "
            print("  %s %-6s %s %-10s %s" % (d, r.get("t"), med, str(r.get("who"))[:10], blob.strip()[:110]))
            if r.get("media"): print("        -> %s" % os.path.basename(r["media"]))
print("  TOTAL:",n)
