| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import os
- import json
- from http.server import BaseHTTPRequestHandler, HTTPServer
- from qmanager import qManager
- # Port on which server will run.
- PORT = 8080
- class HTTPRequestHandler(BaseHTTPRequestHandler):
- q = qManager()
- def do_GET(self):
- self.send_200()
- out=json.dumps(self.q.task_status())
- #self.wfile.write(bytes()) #fileHandle.read().encode()
- self.wfile.write(bytes(out,"utf-8")) #fileHandle.read().encode()
- def send_400(self):
- self.send_response(400, 'NOT OK')
- self.send_header('Content-type', 'text/json')
- self.end_headers()
- def send_200(self):
- self.send_response(200)
- self.send_header('Content-type', 'text/json')
- self.end_headers()
- def do_POST(self):
- # Check if path is there.
- if self.path:
- length = self.headers['content-length']
- if length is None:
- self.send_400()
- return
- data = self.rfile.read(int(length))
- data = data.decode("utf-8")
- try:
- d=json.loads(data)
- except:
- print("no json")
- self.send_400()
- return
- if not "type" in d or not "book" in d:
- self.send_400()
- return
- if d["type"].upper()=="SEARCH":
- self.q.new_search(d["book"],d["extension"])
- self.send_200()
- return
- if d["type"]=="BOOK":
- self.q.new_dl(d["book"])
- self.send_200()
- return
- if __name__ == '__main__':
- HTTPDeamon = HTTPServer(('', PORT), HTTPRequestHandler)
- print("Listening at port", PORT)
- try:
- HTTPDeamon.serve_forever()
- except KeyboardInterrupt:
- pass
- HTTPDeamon.server_close()
- print("Server stopped")
|