File size: 861 Bytes
aec2fdf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from __future__ import annotations

import argparse
import json
import time
from urllib import request


def ping(base_url: str) -> None:
    url = base_url.rstrip("/") + "/v1/healthz"
    with request.urlopen(url, timeout=10) as response:
        print(json.loads(response.read().decode("utf-8")))


def main() -> None:
    parser = argparse.ArgumentParser(description="Free-host keep-warm pinger for Vera bot.")
    parser.add_argument("base_url", help="Public base URL, e.g. https://your-bot.koyeb.app")
    parser.add_argument("--interval", type=int, default=900, help="Seconds between pings. Default: 15 minutes.")
    args = parser.parse_args()

    while True:
        try:
            ping(args.base_url)
        except Exception as exc:
            print(f"ping failed: {exc}")
        time.sleep(args.interval)


if __name__ == "__main__":
    main()