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()