-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathserver.py
36 lines (26 loc) · 948 Bytes
/
server.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import http.server
import base64
import json
from urllib.parse import urlparse
class AuthServerHandler(http.server.BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type', 'application/json')
self.end_headers()
base_path = urlparse(self.path).path
if base_path == '/':
message = self.server.on_get()
else:
message = "Done"
self.wfile.write(bytes(message, 'utf-8'))
class AuthServer(http.server.HTTPServer):
auth_key = ''
on_get = lambda: None
def __init__(self, address, logger):
super().__init__(address, AuthServerHandler)
self.logger = logger
def set_on_get(self, on_get):
self.on_get = on_get
def serve_forever(self, poll_interval=0.5):
self.logger.info(f'Starting server on {self.server_port}')
super().serve_forever(poll_interval=poll_interval)