#!/usr/bin/env python3
import http.server
import base64
import urllib.parse
from datetime import datetime, timezone

PORT = 8888

class Handler(http.server.BaseHTTPRequestHandler):
    print(f"Listening on port {PORT}")
    def log_message(self, *args):
        pass  # Disable default HTTP server noise

    def do_GET(self):
        now = datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S UTC")
        ip = self.client_address[0]
        path = self.path

        query = urllib.parse.urlparse(path).query

        decoded = ""
        if query:
            try:
                decoded = base64.urlsafe_b64decode(query + "===").decode("utf-8", "replace")
            except:
                decoded = "<decode error>"

        print(f"Incoming GET request from {ip} at {now}")
        print(f"  Path: {path}")
        print("  Decoded base64 data:")
        for line in decoded.splitlines():
            print(f"    {line}")
        print("")  # blank line between requests

        self.send_response(200)
        self.end_headers()
        self.wfile.write(b"OK\n")

http.server.HTTPServer(("", PORT), Handler).serve_forever()
