#!/usr/bin/env python3
"""Serve the Telegram mini-app: app/ (static) + app_data.json + world_prices.json.

Port 8788, localhost only. The Cloudflare tunnel exposes it publicly.
"""
import http.server
import os
import socketserver

HERE = os.path.dirname(os.path.abspath(__file__))
PORT = 8788


class Handler(http.server.SimpleHTTPRequestHandler):
    def __init__(self, *a, **kw):
        super().__init__(*a, directory=HERE, **kw)

    def end_headers(self):
        self.send_header("Cache-Control", "no-store")
        self.send_header("Access-Control-Allow-Origin", "*")
        super().end_headers()

    def log_message(self, fmt, *args):
        pass  # keep journal quiet


class Server(socketserver.ThreadingTCPServer):
    allow_reuse_address = True
    daemon_threads = True


if __name__ == "__main__":
    with Server(("127.0.0.1", PORT), Handler) as httpd:
        print(f"serving {HERE} on 127.0.0.1:{PORT}", flush=True)
        httpd.serve_forever()