From b487c13bd33f892b9140123e3e9ea2d125c05a57 Mon Sep 17 00:00:00 2001 From: SantaSpeen Date: Sat, 1 Jul 2023 23:06:27 +0300 Subject: [PATCH] "Core" move to dir --- .gitignore | 1 + src/__version__.py | 11 ------ src/core/__init__.py | 54 +++++++++++++++++++++++++ src/{ => core}/config_provider.py | 18 ++++++--- src/core/core.py | 21 ++++++++++ src/core/errors.py | 3 ++ src/{ => core}/utils.py | 7 ++++ src/errors.py | 4 -- src/main.py | 65 +++++++------------------------ 9 files changed, 112 insertions(+), 72 deletions(-) delete mode 100644 src/__version__.py create mode 100644 src/core/__init__.py rename src/{ => core}/config_provider.py (68%) create mode 100644 src/core/core.py create mode 100644 src/core/errors.py rename src/{ => core}/utils.py (84%) delete mode 100644 src/errors.py diff --git a/.gitignore b/.gitignore index 0487b55..6e05da4 100644 --- a/.gitignore +++ b/.gitignore @@ -129,3 +129,4 @@ dmypy.json .pyre/ .idea/ /src/kuitoi.yml +.cmdhistory diff --git a/src/__version__.py b/src/__version__.py deleted file mode 100644 index 51b8981..0000000 --- a/src/__version__.py +++ /dev/null @@ -1,11 +0,0 @@ -# -*- coding: utf-8 -*- - -__title__ = 'KuiToi-Server' -__description__ = 'BeamingDrive Multiplayer server compatible with BeamMP clients.' -__url__ = 'https://github.com/kuitoi/kuitoi-Server' -__version__ = '0.1.0' -__build__ = 36 -__author__ = 'SantaSpeen' -__author_email__ = 'SantaSpeen@gmail.com' -__license__ = "FPA" -__copyright__ = 'Copyright 2022 © SantaSpeen (Maxim Khomutov)' diff --git a/src/core/__init__.py b/src/core/__init__.py new file mode 100644 index 0000000..25a76d9 --- /dev/null +++ b/src/core/__init__.py @@ -0,0 +1,54 @@ +# Developed by KuiToi Dev +# File core.__init__.py +# Written by: SantaSpeen +# Version 0.1.0 +# Licence: FPA +# (c) kuitoi.su 2023 + +__title__ = 'KuiToi-Server' +__description__ = 'BeamingDrive Multiplayer server compatible with BeamMP clients.' +__url__ = 'https://github.com/kuitoi/kuitoi-Server' +__version__ = '0.1.0' +__build__ = 36 +__author__ = 'SantaSpeen' +__author_email__ = 'admin@kuitoi.su' +__license__ = "FPA" +__copyright__ = 'Copyright 2023 © SantaSpeen (Maxim Khomutov)' + +import asyncio + +from core import utils +from core.config_provider import ConfigProvider +from main import parser +from modules import Console +from core.core import start +from core.core import stop + +loop = asyncio.get_event_loop() + +console = Console(prompt_out=":") +log = utils.get_logger("init") + +log.info("Hello from KuiToi-Server!") +args = parser.parse_args() +if args.version: + print(f"KuiToi-Server:\n\tVersion: {__version__}\n\tBuild: {__build__}") + exit(0) + +config_path = "kuitoi.yml" +if args.config: + config_path = args.config +log.info(f"Use {config_path} for config.") + +config_provider = ConfigProvider(config_path) +config = config_provider.open_config() +if config.Server['debug'] is True: + utils.set_debug_status() + log.info("Getting new loggen with DEBUG level!") + log = utils.get_logger("main") + log.debug("Debug mode enabled!") + log.debug(f"Server config: {config}") +console.builtins_hook() +console.logger_hook() + +log.info("Initializing ready.") diff --git a/src/config_provider.py b/src/core/config_provider.py similarity index 68% rename from src/config_provider.py rename to src/core/config_provider.py index c0a7a8b..8618aca 100644 --- a/src/config_provider.py +++ b/src/core/config_provider.py @@ -1,17 +1,23 @@ +# -*- coding: utf-8 -*- + +# Developed by KuiToi Dev +# File core.config_provider.py +# Written by: SantaSpeen +# Version 1.0 +# Licence: FPA +# (c) kuitoi.su 2023 import os import yaml -import errors - class Config: def __init__(self, auth=None, game=None, server=None): self.Auth = auth or {"key": None, "private": True} self.Game = game or {"map": "gridmap_v2", "players": 8, "max_cars": 1} self.Server = server or {"name": "KuiToi-Server", - "description": "The best description", - "port": 30814, "custom_ip": None, "debug": False} + "description": "This server uses KuiToi!", + "port": 30814, "server_ip": "0.0.0.0", "debug": False} def __repr__(self): return "%s(Auth=%r, Game=%r, Server=%r)" % (self.__class__.__name__, self.Auth, self.Game, self.Server) @@ -31,6 +37,8 @@ class ConfigProvider: with open(self.config_patch, "r", encoding="utf-8") as f: self.config = yaml.load(f.read(), yaml.Loader) except yaml.YAMLError: - raise errors.BadConfigError("Your config file can't open as YAML.") + print("You have errors in the YAML syntax.") + print("Stopping server.") + exit(1) return self.config diff --git a/src/core/core.py b/src/core/core.py new file mode 100644 index 0000000..114712e --- /dev/null +++ b/src/core/core.py @@ -0,0 +1,21 @@ +# Developed by KuiToi Dev +# File core.core.py +# Written by: SantaSpeen +# Version 0.1.0 +# Licence: FPA +# (c) kuitoi.su 2023 +import asyncio + +from core import utils + +log = utils.get_logger("core") + +loop = asyncio.get_event_loop() + + +def start(): + log.info("Start!") + + +def stop(): + log.info("Goodbye!") diff --git a/src/core/errors.py b/src/core/errors.py new file mode 100644 index 0000000..2019330 --- /dev/null +++ b/src/core/errors.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +class BadConfigError(Exception): ... diff --git a/src/utils.py b/src/core/utils.py similarity index 84% rename from src/utils.py rename to src/core/utils.py index bfdeaef..b0b2d16 100644 --- a/src/utils.py +++ b/src/core/utils.py @@ -1,3 +1,10 @@ +# Developed by KuiToi Dev +# File core.utils.py +# Written by: SantaSpeen +# Version 0.1.0 +# Licence: FPA +# (c) kuitoi.su 2023 + import logging import os diff --git a/src/errors.py b/src/errors.py deleted file mode 100644 index ea350f1..0000000 --- a/src/errors.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- - -class BadConfigError(Exception): - ... diff --git a/src/main.py b/src/main.py index e581d2b..ce957f2 100644 --- a/src/main.py +++ b/src/main.py @@ -1,17 +1,16 @@ #!/usr/bin/python3 +# -*- coding: utf-8 -*- + +# Developed by KuiToi Dev +# File main.py +# Written by: SantaSpeen +# Version 0.1.0 +# Licence: FPA +# (c) kuitoi.su 2023 import argparse import asyncio -try: - from modules.console.src.console import Console, ConsoleIO -except ImportError: - Console, ConsoleIO = None, None - print("Clone with submodules!") - exit(1) - -import __version__ -import config_provider -import utils +from core import utils parser = argparse.ArgumentParser(description='KuiToi-Server - BeamingDrive server compatible with BeamMP clients!') parser.add_argument('-v', '--version', action="store_true", help='Print version and exit.', default=False) @@ -19,50 +18,12 @@ parser.add_argument('--config', help='Patch to config file.', nargs='?', default log = utils.get_logger("main") loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) -console = Console(prompt_out=":", async_loop=loop) - - -def init(): - global log - log.info("Hello from KuiToi-Server!") - args = parser.parse_args() - if args.version: - print(f"KuiToi-Server:\n\tVersion: {__version__.__version__}\n\tBuild: {__version__.__build__}") - exit(0) - - config_patch = "kuitoi.yml" - if args.config: - config_patch = args.config - log.info(f"Use {config_patch} for config.") - - cp = config_provider.ConfigProvider(config_patch) - config = cp.open_config() - if config.Server['debug'] is True: - utils.set_debug_status() - log.info("Getting new loggen with DEBUG level!") - log = utils.get_logger("main") - log.debug("Debug mode enabled!") - log.debug(f"Server config: {config}") - console.builtins_hook() - console.logger_hook() - - -def start(): - tasks = [ - loop.create_task(console.async_run()), - ] - - loop.run_until_complete(asyncio.wait(tasks)) - - -def end(): - log.info("Goodbye!") - if __name__ == '__main__': - init() + import core + try: - start() + core.start() except KeyboardInterrupt: print("Exiting..") - end() + core.stop()