refactor: move simple server into standalone file
This commit is contained in:
parent
f6a7c21420
commit
3448edf5d7
@ -2,12 +2,11 @@ import os
|
||||
import sys
|
||||
import logging
|
||||
|
||||
from wsgiref.simple_server import make_server, WSGIRequestHandler
|
||||
|
||||
import ankisyncd
|
||||
import ankisyncd.config
|
||||
from ankisyncd.sync_app import SyncApp
|
||||
from ankisyncd.thread import shutdown
|
||||
from ankisyncd.server import run_server
|
||||
|
||||
logger = logging.getLogger("ankisyncd")
|
||||
|
||||
@ -16,16 +15,6 @@ if __package__ is None and not hasattr(sys, "frozen"):
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(path)))
|
||||
|
||||
|
||||
class RequestHandler(WSGIRequestHandler):
|
||||
logger = logging.getLogger("ankisyncd.http")
|
||||
|
||||
def log_error(self, format, *args):
|
||||
self.logger.error("%s %s", self.address_string(), format % args)
|
||||
|
||||
def log_message(self, format, *args):
|
||||
self.logger.info("%s %s", self.address_string(), format % args)
|
||||
|
||||
|
||||
def main():
|
||||
logging.basicConfig(
|
||||
level=logging.INFO, format="[%(asctime)s]:%(levelname)s:%(name)s:%(message)s"
|
||||
@ -41,17 +30,7 @@ def main():
|
||||
config = ankisyncd.config.load()
|
||||
|
||||
ankiserver = SyncApp(config)
|
||||
httpd = make_server(
|
||||
config["host"], int(config["port"]), ankiserver, handler_class=RequestHandler
|
||||
)
|
||||
|
||||
try:
|
||||
logger.info("Serving HTTP on {} port {}...".format(*httpd.server_address))
|
||||
httpd.serve_forever()
|
||||
except KeyboardInterrupt:
|
||||
logger.info("Exiting...")
|
||||
finally:
|
||||
shutdown()
|
||||
run_server(ankiserver, config["host"], int(config["port"]))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
29
src/ankisyncd/server.py
Normal file
29
src/ankisyncd/server.py
Normal file
@ -0,0 +1,29 @@
|
||||
import logging
|
||||
|
||||
from wsgiref.simple_server import make_server, WSGIRequestHandler
|
||||
|
||||
from ankisyncd.thread import shutdown
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class RequestHandler(WSGIRequestHandler):
|
||||
logger = logging.getLogger("ankisyncd.http")
|
||||
|
||||
def log_error(self, format, *args):
|
||||
self.logger.error("%s %s", self.address_string(), format % args)
|
||||
|
||||
def log_message(self, format, *args):
|
||||
self.logger.info("%s %s", self.address_string(), format % args)
|
||||
|
||||
|
||||
def run_server(app, host: str = None, port: int = None):
|
||||
httpd = make_server(host, port, app, handler_class=RequestHandler)
|
||||
|
||||
try:
|
||||
logger.info("Serving HTTP on {} port {}...".format(*httpd.server_address))
|
||||
httpd.serve_forever()
|
||||
except KeyboardInterrupt:
|
||||
logger.info("Exiting...")
|
||||
finally:
|
||||
shutdown()
|
||||
Loading…
Reference in New Issue
Block a user