diff --git a/label-printer/label-maker.py b/label-printer/label-maker.py index c2ab29ee..2c3cd06b 100755 --- a/label-printer/label-maker.py +++ b/label-printer/label-maker.py @@ -27,3 +27,91 @@ $ ./lf_kinstall.pl --print-label http://192.168.9.1:8082/ """ +import logging +from http import server +from http.server import HTTPServer, BaseHTTPRequestHandler +from ssl import wrap_socket +from urllib.parse import urlparse, parse_qs +import pprint +from pprint import pprint + +class LabelPrinterRequestHandler(BaseHTTPRequestHandler): + def do_HEAD(self): + self.send_response(200); + self.send_header("Content-type", "text/html") + self.end_headers() + + def do_GET(self): + self.send_response(200); + self.send_header("Content-type", "text/html") + self.end_headers() + + def do_POST(self): + hostname = ""; + mac_address = ""; + model = ""; + serial = ""; + + length = int(self.headers['Content-Length']) + field_data = self.rfile.read(length) + print("Field_data: %s\n"%field_data); + fields = parse_qs(field_data) + pprint(fields) + + for name in fields: + print("key %s"%name) + + if "mac" in fields: + mac_address = fields["mac"] + else: + self.send_response(400) + self.send_header("X-Error", "mac address not submitted") + self.end_headers(); + self.wfile.write(b"Bullshit\n"); + return + + if "model" in fields: + model = fields["model"] + else: + self.send_response(400) + self.send_header("X-Error", "missing model name") + self.wfile.write(b"Bullshit\n"); + return + + if (mac_address is None) or ("" == mac_address): + self.send_resonse(400) + self.send_header("X-Error", "mac address empty or unset") + self.end_headers() + self.wfile.write(b"missing mac address") + self.wfile.write(b"Bullshit\n"); + return + + if (model is None) or (model == ""): + self.send_reponse(400) + self.send_header("X-Error", "missing model name") + self.end_headers() + self.wfile.write(b"missing model name") + return + + if fields[hostname] is None: + hostname = "%s-%s"%(model, mac.substr(-5).replace(":", "")) + else: + hostname = fields[hostname] + + print("HOSTNAME "+hostname) + + self.send_response(200); + self.send_header("Content-type", "text/html") + self.end_headers() + print("I'm in POST") + + +def __main__(): + logging.info("Main Method. Creating CGI Handler") + httpd = HTTPServer(('', 8082), LabelPrinterRequestHandler) + print("Starting LabelPrinter service...") + httpd.serve_forever() + +if __name__ == "__main__": + __main__() +