X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=plomlib.py;fp=plomlib.py;h=92bfb8535d7604bc1e47f0595cc68fd28e433283;hb=436e0f40b45319ef4452ce6ced1a3c3df813119b;hp=9dac71284a5c990514c0e2c89bbd6f8a16e8a55d;hpb=5f3b9e7eb997cacea086decc3dcd04d6619b9121;p=misc diff --git a/plomlib.py b/plomlib.py index 9dac712..92bfb85 100644 --- a/plomlib.py +++ b/plomlib.py @@ -9,10 +9,10 @@ class PlomException(Exception): class PlomDB: def __init__(self, db_name): - self.db_file = db_name + ".json" - self.lock_file = db_name+ ".lock" + self.db_file = db_name + self.lock_file = db_name+ '.lock' if os.path.exists(self.db_file): - with open(self.db_file, "r") as f: + with open(self.db_file, 'r') as f: self.read_db_file(f) def lock(self): @@ -78,27 +78,24 @@ class PlomDB: class PlomServer(BaseHTTPRequestHandler): - header = '' - footer = '' - - def run(self, port): - from http.server import HTTPServer - webServer = HTTPServer(('localhost', port), type(self)) - print(f"Server started http://localhost:{port}") - try: - webServer.serve_forever() - except KeyboardInterrupt: - pass - webServer.server_close() - print("Server stopped.") + + def __init__(self, *args, **kwargs): + self.html_head = ['\n\n'] + self.html_foot = ['\n'] + self.pre_init() + super().__init__(*args, **kwargs) + + def pre_init(self): + pass def fail_400(self, e): - page = f'{self.header}ERROR: {e}{self.footer}' - self.send_HTML(page, 400) + self.send_HTML(f'ERROR: {e}', 400) def send_HTML(self, html, code=200): self.send_code_and_headers(code, [('Content-type', 'text/html')]) - self.wfile.write(bytes(html, "utf-8")) + header = '\n'.join(self.html_head) + footer = '\n'.join(self.html_foot) + self.wfile.write(bytes(f'{header}\n{html}\n{footer}', 'utf-8')) def send_code_and_headers(self, code, headers=[]): self.send_response(code) @@ -106,6 +103,10 @@ class PlomServer(BaseHTTPRequestHandler): self.send_header(fieldname, content) self.end_headers() + def redirect(self, url='/'): + self.send_code_and_headers(302, [('Location', url)]) + + def run_server(port, server_class): from http.server import HTTPServer