هذا الالتزام موجود في:
2026-07-28 08:10:53 +03:00
الأصل 2ff0d279e1
التزام acb4f066f4
8 ملفات معدلة مع 216 إضافات و57 حذوفات

عرض الملف

@@ -48,6 +48,7 @@ CHECK_INTERVAL_SECONDS = 60 # كل دقيقة
DATA_DIR = os.path.dirname(os.path.abspath(__file__))
JSONL_PATH = os.path.join(DATA_DIR, "data.jsonl")
CSV_PATH = os.path.join(DATA_DIR, "data.csv")
JS_PATH = os.path.join(DATA_DIR, "data.js")
CSV_FIELDS = [
"timestamp",
@@ -285,10 +286,31 @@ def save_csv(record: dict):
writer.writerow(row)
def save_js():
"""تحديث data.js تلقائياً لإتاحتها للمتصفح دون الحاجة لـ fetch/upload"""
if not os.path.isfile(JSONL_PATH):
return
try:
records = []
with open(JSONL_PATH, "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
if line:
try:
records.append(json.loads(line))
except Exception:
pass
with open(JS_PATH, "w", encoding="utf-8") as f:
f.write(f"window.MONITOR_DATA = {json.dumps(records, ensure_ascii=False)};\n")
except Exception as e:
print(f"تنبيه: تعذّر تحديث data.js: {e}", flush=True)
def run_once():
record = collect_metrics()
save_jsonl(record)
save_csv(record)
save_js()
status = "UP" if record["http"]["up"] else "DOWN"
print(
f"[{record['timestamp']}] HTTP={status} "