import json import os import threading from http.server import BaseHTTPRequestHandler, HTTPServer from urllib.parse import parse_qs, urlparse sys_dir = os.path.dirname(os.path.abspath(__file__)) import sys sys.path.insert(0, sys_dir) import config from voz import anuncio_en_teles, anuncio_simple class Handler(BaseHTTPRequestHandler): def do_GET(self): q = parse_qs(urlparse(self.path).query) texto = (q.get("texto") or q.get("msg") or [""])[0] if not texto: self._resp(400, {"error": "falta parametro texto"}) return simple = (q.get("simple") or ["0"])[0] == "1" fn = anuncio_simple if simple else anuncio_en_teles threading.Thread(target=fn, args=(texto,), daemon=True).start() print(f"[TV-API] Mensaje lanzado ({'simple' if simple else 'alarma'}): {texto[:80]}") self._resp(200, {"ok": True, "mensaje": texto, "modo": "simple" if simple else "alarma"}) def _resp(self, code, obj): body = json.dumps(obj).encode("utf-8") self.send_response(code) self.send_header("Content-Type", "application/json; charset=utf-8") self.send_header("Content-Length", str(len(body))) self.end_headers() self.wfile.write(body) def log_message(self, *a): pass def main(): puerto = int(os.getenv("TV_API_PUERTO", "8600")) print(f"TV API escuchando en :{puerto}") print(f"Uso: http://:{puerto}/tv/mensaje?texto=Mensaje") HTTPServer(("0.0.0.0", puerto), Handler).serve_forever() if __name__ == "__main__": main()