Files
azul/run_all.py
T
Athena Funderburg 4b463a3432 init
2026-05-25 07:05:17 +00:00

86 lines
3.0 KiB
Python

from typing import Type
from types import TracebackType
import sys
from core.conn import Conn
from core.auth import AuthService, LoginAuthService
from core.user import UserService
from core.stats import Stats
def main(*, devmode: bool = False) -> None:
sys.excepthook = _excepthook
import asyncio, settings, platform
from core.backend import Backend
from core import http
print(""" █████████ ████
███▒▒▒▒▒███ ▒▒███
▒███ ▒███ █████████ █████ ████ ▒███
▒███████████ ▒█▒▒▒▒███ ▒▒███ ▒███ ▒███
▒███▒▒▒▒▒███ ▒ ███▒ ▒███ ▒███ ▒███
▒███ ▒███ ███▒ █ ▒███ ▒███ ▒███
█████ █████ █████████ ▒▒████████ █████
▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒ ▒▒▒▒▒
""")
print(f"===== AZUL {settings.VERSION} =====")
print(f"""2023 - 2026 the undergr0und
""")
print(f"""Running on Python {sys.version} on {platform.platform()}
""")
if settings.DEBUG:
print(f"""Debug mode on!
""")
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
user_service = UserService(Conn(settings.DB))
auth_service = AuthService()
login_auth_service = LoginAuthService(Conn(settings.DB))
stats_service = Stats(Conn(settings.STATS_DB))
backend = Backend(loop, user_service = user_service, login_auth_service = login_auth_service, auth_service = auth_service, stats_service = stats_service)
http_app = http.register(loop, backend, devmode = devmode)
if settings.ENABLE_FRONT_MSN:
import front.msn
front.msn.register(loop, backend, http_app)
if settings.ENABLE_FRONT_YMSG:
import front.ymsg
front.ymsg.register(loop, backend, http_app, devmode = devmode)
if settings.ENABLE_FRONT_IRC:
import front.irc
front.irc.register(loop, backend, devmode = devmode)
if settings.ENABLE_FRONT_OSCAR:
import front.oscar
front.oscar.register(loop, backend)
if settings.ENABLE_FRONT_MSIM:
import front.msim
front.msim.register(loop, backend, http_app)
if settings.ENABLE_FRONT_API:
import front.api
front.api.register(http_app)
if settings.ENABLE_FRONT_BOT:
import front.bot
front.bot.register(loop, backend)
if settings.ENABLE_INS:
import core.interservice
core.interservice.register(loop, backend)
if devmode:
if settings.ENABLE_FRONT_DEVBOTS:
import front.devbots
front.devbots.register(loop, backend)
import dev.webconsole
dev.webconsole.register(loop, backend, http_app)
backend.run_forever()
def _excepthook(type_: Type[BaseException], value: BaseException, traceback: TracebackType) -> None:
# TODO: Something useful
sys.__excepthook__(type_, value, traceback)
if __name__ == '__main__':
main()