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 sys
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
from wsgiref.simple_server import make_server, WSGIRequestHandler
|
|
||||||
|
|
||||||
import ankisyncd
|
import ankisyncd
|
||||||
import ankisyncd.config
|
import ankisyncd.config
|
||||||
from ankisyncd.sync_app import SyncApp
|
from ankisyncd.sync_app import SyncApp
|
||||||
from ankisyncd.thread import shutdown
|
from ankisyncd.server import run_server
|
||||||
|
|
||||||
logger = logging.getLogger("ankisyncd")
|
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)))
|
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():
|
def main():
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
level=logging.INFO, format="[%(asctime)s]:%(levelname)s:%(name)s:%(message)s"
|
level=logging.INFO, format="[%(asctime)s]:%(levelname)s:%(name)s:%(message)s"
|
||||||
@ -41,17 +30,7 @@ def main():
|
|||||||
config = ankisyncd.config.load()
|
config = ankisyncd.config.load()
|
||||||
|
|
||||||
ankiserver = SyncApp(config)
|
ankiserver = SyncApp(config)
|
||||||
httpd = make_server(
|
run_server(ankiserver, config["host"], int(config["port"]))
|
||||||
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()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
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