Added HTTP server and response

This commit is contained in:
Raelon Masters
2019-10-31 22:14:34 -04:00
parent eb59ac439a
commit ce93050b7f
8 changed files with 133 additions and 16 deletions

View File

@@ -1,6 +1,7 @@
#!/usr/bin/python
import os
import zipfile
from http.server import HTTPServer, BaseHTTPRequestHandler
from config import Config
from lib.library import Catalogue
from lib.storage import Storage
@@ -22,3 +23,49 @@ class InitFiles:
os.mkdir(os.path.split(_pointer)[0])
f = open(_pointer, "w+")
f.close()
class RequestHandler(BaseHTTPRequestHandler):
"""Request Handler"""
def do_GET(self):
self.send_response(200)
self.end_headers()
self.wfile.write(b'Welcome To pyShelf!')
class BookServer:
"""HTTP Frontend"""
def __init__(self):
self.server_address = ('', 8000)
self.handler = RequestHandler
def close_prompt(self):
"""Prompt to close server"""
close = input("Close Server? y/n")
if close == 'y':
self.close()
return True
else:
self.close_prompt()
def run(self):
"""Start HTTP Server"""
self.httpd = HTTPServer(self.server_address, self.handler)
try:
self.httpd.serve_forever()
self.httpd.handle_request()
if self.close_prompt() == True:
pass
except KeyboardInterrupt:
print(KeyboardInterrupt, " Closing Server")
self.close()
return False
def close(self):
"""Stop HTTP Server"""
try:
self.httpd.server_close()
return True
except Exception:
return False