mirror of
https://github.com/BigBodyCobain/Shadowbroker.git
synced 2026-04-23 19:16:06 +02:00
668ce16dc7
Gate messages now propagate via the Infonet hashchain as encrypted blobs — every node syncs them through normal chain sync while only Gate members with MLS keys can decrypt. Added mesh reputation system, peer push workers, voluntary Wormhole opt-in for node participation, fork recovery, killwormhole scripts, obfuscated terminology, and hardened the self-updater to protect encryption keys and chain state during updates. New features: Shodan search, train tracking, Sentinel Hub imagery, 8 new intelligence layers, CCTV expansion to 11,000+ cameras across 6 countries, Mesh Terminal CLI, prediction markets, desktop-shell scaffold, and comprehensive mesh test suite (215 frontend + backend tests passing). Community contributors: @wa1id, @AlborzNazari, @adust09, @Xpirix, @imqdcr, @csysp, @suranyami, @chr0n1x, @johan-martensson, @singularfailure, @smithbh, @OrfeoTerkuci, @deuza, @tm-const, @Elhard1, @ttulttul
46 lines
1.4 KiB
Python
46 lines
1.4 KiB
Python
from datetime import datetime
|
|
from services.data_fetcher import get_latest_data
|
|
from services.fetchers._store import source_timestamps, active_layers, source_freshness
|
|
from services.fetch_health import get_health_snapshot
|
|
|
|
|
|
def _fmt_ts(ts: str | None) -> str:
|
|
if not ts:
|
|
return "-"
|
|
try:
|
|
return datetime.fromisoformat(ts).strftime("%Y-%m-%d %H:%M:%S")
|
|
except Exception:
|
|
return ts
|
|
|
|
|
|
def main():
|
|
data = get_latest_data()
|
|
print("=== Diagnostics ===")
|
|
print(f"Last updated: {_fmt_ts(data.get('last_updated'))}")
|
|
print(
|
|
f"Active layers: {sum(1 for v in active_layers.values() if v)} enabled / {len(active_layers)} total"
|
|
)
|
|
|
|
print("\n--- Source Timestamps ---")
|
|
for k, v in sorted(source_timestamps.items()):
|
|
print(f"{k:20} {_fmt_ts(v)}")
|
|
|
|
print("\n--- Source Freshness ---")
|
|
for k, v in sorted(source_freshness.items()):
|
|
last_ok = _fmt_ts(v.get("last_ok"))
|
|
last_err = _fmt_ts(v.get("last_error"))
|
|
print(f"{k:20} ok={last_ok} err={last_err}")
|
|
|
|
print("\n--- Fetch Health ---")
|
|
health = get_health_snapshot()
|
|
for k, v in sorted(health.items()):
|
|
print(
|
|
f"{k:20} ok={v.get('ok_count', 0)} err={v.get('error_count', 0)} "
|
|
f"last_ok={_fmt_ts(v.get('last_ok'))} last_err={_fmt_ts(v.get('last_error'))} "
|
|
f"avg_ms={v.get('avg_duration_ms')}"
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|