import json
import threading
from http.server import BaseHTTPRequestHandler, HTTPServer

import requests

received = []

class WebhookHandler(BaseHTTPRequestHandler):
    def do_POST(self):
        if self.path == "/api/discord_message":
            content_length = int(self.headers['Content-Length'])
            post_data = self.rfile.read(content_length)
            data = json.loads(post_data.decode('utf-8'))
            received.append(data)

            self.send_response(200)
            self.send_header('Content-type', 'application/json')
            self.send_header('Access-Control-Allow-Origin', '*')
            self.end_headers()
            self.wfile.write(b'{"status": "ok"}')
        else:
            self.send_response(404)
            self.end_headers()

    def do_OPTIONS(self):
        self.send_response(200)
        self.send_header('Access-Control-Allow-Origin', '*')
        self.send_header('Access-Control-Allow-Methods', 'POST, OPTIONS')
        self.send_header('Access-Control-Allow-Headers', 'Content-Type')
        self.end_headers()

    def log_message(self, format, *args):
        pass

server = HTTPServer(('127.0.0.1', 8765), WebhookHandler)
t = threading.Thread(target=server.serve_forever, daemon=True)
t.start()

# Test POST
res = requests.post("http://127.0.0.1:8765/api/discord_message", json={"text": "WTS 10 Sekhema Keys 4.2 Div"})
print("Test Response:", res.json())
print("Received data:", received)
server.shutdown()
