diff --git a/dragonion_server/modules/server/handlers/managers/connection.py b/dragonion_server/modules/server/handlers/managers/connection.py index 8ccf330..8f65b1d 100644 --- a/dragonion_server/modules/server/handlers/managers/connection.py +++ b/dragonion_server/modules/server/handlers/managers/connection.py @@ -1,6 +1,6 @@ from attrs import define from fastapi import WebSocket -from ..objects.webmessage import ( +from dragonion_core.proto.web import ( webmessages_union, webmessage_error_message_literal, WebErrorMessage, diff --git a/dragonion_server/modules/server/handlers/managers/room.py b/dragonion_server/modules/server/handlers/managers/room.py index 3021153..8e3a7b0 100644 --- a/dragonion_server/modules/server/handlers/managers/room.py +++ b/dragonion_server/modules/server/handlers/managers/room.py @@ -3,7 +3,7 @@ from .connection import Connection from typing import Dict from fastapi import WebSocket -from ..objects.webmessage import ( +from dragonion_core.proto.web import ( webmessages_union, WebMessageMessage, WebNotificationMessage, diff --git a/dragonion_server/modules/server/handlers/managers/service.py b/dragonion_server/modules/server/handlers/managers/service.py index a4ed9fc..3038902 100644 --- a/dragonion_server/modules/server/handlers/managers/service.py +++ b/dragonion_server/modules/server/handlers/managers/service.py @@ -2,7 +2,7 @@ from .connection import Connection from .room import Room from typing import Dict -from ..objects.webmessage import ( +from dragonion_core.proto.web import ( webmessage_error_message_literal ) diff --git a/dragonion_server/modules/server/handlers/objects/__init__.py b/dragonion_server/modules/server/handlers/objects/__init__.py deleted file mode 100644 index 2ae2839..0000000 --- a/dragonion_server/modules/server/handlers/objects/__init__.py +++ /dev/null @@ -1 +0,0 @@ -pass diff --git a/dragonion_server/modules/server/handlers/objects/webmessage.py b/dragonion_server/modules/server/handlers/objects/webmessage.py deleted file mode 100644 index 5da0abf..0000000 --- a/dragonion_server/modules/server/handlers/objects/webmessage.py +++ /dev/null @@ -1,69 +0,0 @@ -from typing import Literal, Final, Union -from dataclasses_json import dataclass_json -from dataclasses import dataclass - - -webmessage_type_literal = Literal[ - "connect", "message", "disconnect", "error", "notification" -] -webmessage_error_message_literal = Literal[ - "unknown", "username_exists", "invalid_webmessage" -] - - -@dataclass_json -@dataclass -class _WebAnyMessage: - username: str | None = None - type: webmessage_type_literal = "message" - message: str | None = None - error_message: webmessage_error_message_literal | None = None - - -@dataclass_json -@dataclass -class WebMessageMessage: - username: str - message: str - type: Final = "message" - - -@dataclass_json -@dataclass -class WebErrorMessage: - error_message: webmessage_error_message_literal - type: Final = "error" - - -@dataclass_json -@dataclass -class WebUserMessage: - type: Literal["connect", "disconnect"] - username: str - - -@dataclass_json -@dataclass -class WebNotificationMessage: - message: str - type: Final = "notification" - - -webmessages_union = Union[ - WebMessageMessage, - WebErrorMessage, - WebUserMessage, - WebNotificationMessage -] - - -class WebMessage: - @staticmethod - def from_json(data) -> webmessages_union: - return { - "connect": WebUserMessage.from_json, - "disconnect": WebUserMessage.from_json, - "message": WebMessageMessage.from_json, - "error": WebErrorMessage.from_json, - "notification": WebNotificationMessage.from_json - }[_WebAnyMessage.from_json(data).type](data) diff --git a/dragonion_server/modules/server/handlers/websocket_server.py b/dragonion_server/modules/server/handlers/websocket_server.py index d73ba22..f8ad9c8 100644 --- a/dragonion_server/modules/server/handlers/websocket_server.py +++ b/dragonion_server/modules/server/handlers/websocket_server.py @@ -1,6 +1,6 @@ from fastapi import WebSocket, WebSocketDisconnect from .managers.service import Service -from .objects.webmessage import ( +from dragonion_core.proto.web import ( webmessages_union, WebMessage ) diff --git a/dragonion_server/modules/server/integration.py b/dragonion_server/modules/server/integration.py index a386892..b373933 100644 --- a/dragonion_server/modules/server/integration.py +++ b/dragonion_server/modules/server/integration.py @@ -1,7 +1,7 @@ import sys from dragonion_server.utils.onion import Onion -from dragonion_server.utils.generated_auth.db import AuthFile +from dragonion_core.proto.file import AuthFile from dragonion_server.utils.config.db import services from rich import print diff --git a/dragonion_server/utils/generated_auth/__init__.py b/dragonion_server/utils/generated_auth/__init__.py deleted file mode 100644 index 2ae2839..0000000 --- a/dragonion_server/utils/generated_auth/__init__.py +++ /dev/null @@ -1 +0,0 @@ -pass diff --git a/dragonion_server/utils/generated_auth/db.py b/dragonion_server/utils/generated_auth/db.py deleted file mode 100644 index 00f201e..0000000 --- a/dragonion_server/utils/generated_auth/db.py +++ /dev/null @@ -1,15 +0,0 @@ -import sqlitedict - - -class AuthFile(sqlitedict.SqliteDict): - """ - Valid AuthFile has fields: - host - .onion url of service - auth - v3 onion auth string in format, that can be written to .auth_private file - """ - def __init__(self, service): - super().__init__( - filename=f'{service}.auth', - tablename='auth', - autocommit=True - ) diff --git a/pyproject.toml b/pyproject.toml index ffb4ce7..120663f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,13 +12,15 @@ psutil = "^5.9.5" pynacl = "^1.5.0" requests = "^2.31.0" sqlitedict = "^2.1.0" -fastapi = "^0.99.0" -uvicorn = "^0.22.0" +fastapi = "^0.100.0" +uvicorn = "^0.23.0" rich = "^13.4.2" click = "^8.1.3" attrs = "^23.1.0" dataclasses-json = "^0.5.9" websockets = "^11.0.3" +dragonion-core = { git = "https://github.com/dragonionx/dragonion-core.git" } + [tool.poetry.scripts] dragonion-server = "dragonion_server:main"