from http.server import HTTPServer, BaseHTTPRequestHandler
from sys import argv
import json
import http.server
import os

#BIND_HOST = 'localhost'
BIND_HOST = '192.168.40.104'
PORT = 8000

class SimpleHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self): 
#        self.send_response(200)
#        self.send_header('Content-Type', 'application/json')
#        self.end_headers
#        os.system("ls")
        super().do_GET()

    def do_POST(self):
        content_length = int(self.headers.get('content-length', 0))
        body = self.rfile.read(content_length)

        self.write_response(body)

        b = body.decode('utf-8').split("\"")
#        print(b)
        l = ["{", "feature_vector", "name",":", ",", ":", "id"]
#        l = ["{", "feature_vector", "name", ":"]
        for s in l: 
#            print(s)
            b.remove(s)
        if "," in b:
            b.remove(",")
        elif "}" in b:
            b.remove("}")

        with open('put.txt', 'w') as f:
            if b[0][0] == ":":
                if "-" in b[1]:
                    f.write(b[1])
                    f.write("\n")
                    f.write(b[2])
                    f.write("\n")
                    f.write(b[0][1:-1])
                elif "-" in b[2]:
                    f.write(b[2])
                    f.write("\n")
                    f.write(b[1])
                    f.write("\n")
                    f.write(b[0][1:-1])
            elif b[1][0] == ":":
                if "-" in b[0]:
                    f.write(b[0])
                    f.write("\n")
                    f.write(b[2])
                    f.write("\n")
                    f.write(b[1][1:-1])
                elif "-" in b[2]:
                    f.write(b[2])
                    f.write("\n")
                    f.write(b[0])
                    f.write("\n")
                    f.write(b[1][1:-1])
            else:
                if "-" in b[1]:
                    f.write(b[1])
                    f.write("\n")
                    f.write(b[0])
                    f.write("\n")
                    f.write(b[2][1:-1])
                elif "-" in b[0]:
                    f.write(b[0])
                    f.write("\n")
                    f.write(b[1])
                    f.write("\n")
                    f.write(b[2][1:-1])

    def write_response(self, content):
        self.send_response(200)
        self.end_headers()
        self.wfile.write(content)

        print(self.headers)
#        print(content.decode('utf-8'))


if len(argv) > 1:
    arg = argv[1].split(':')
    BIND_HOST = arg[0]
    PORT = int(arg[1])

print(f'Listening on http://{BIND_HOST}:{PORT}\n')

httpd = HTTPServer((BIND_HOST, PORT), SimpleHTTPRequestHandler)
httpd.serve_forever()
