satori-python 0.17.1__tar.gz → 0.17.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {satori_python-0.17.1 → satori_python-0.17.2}/PKG-INFO +1 -1
- {satori_python-0.17.1 → satori_python-0.17.2}/pyproject.toml +1 -1
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/__init__.py +1 -1
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/account.py +4 -3
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/account.pyi +4 -3
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/server/__init__.py +13 -3
- {satori_python-0.17.1 → satori_python-0.17.2}/LICENSE +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/README.md +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/__init__.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/config.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/network/__init__.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/network/base.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/network/util.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/network/webhook.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/network/websocket.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/client/protocol.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/const.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/element.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/event.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/exception.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/model.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/parser.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/server/adapter.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/server/connection.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/server/formdata.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/server/model.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/server/route.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/server/utils.py +0 -0
- {satori_python-0.17.1 → satori_python-0.17.2}/src/satori/utils.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
|
-
from dataclasses import dataclass
|
|
4
|
+
from dataclasses import dataclass, field
|
|
5
5
|
from typing_extensions import Generic, TypeVar # noqa: UP035
|
|
6
6
|
|
|
7
7
|
from yarl import URL
|
|
@@ -10,8 +10,8 @@ from satori.model import Login
|
|
|
10
10
|
|
|
11
11
|
from .protocol import ApiProtocol
|
|
12
12
|
|
|
13
|
-
TP = TypeVar("TP", bound="ApiProtocol", default=ApiProtocol)
|
|
14
|
-
TP1 = TypeVar("TP1", bound="ApiProtocol", default=ApiProtocol)
|
|
13
|
+
TP = TypeVar("TP", bound="ApiProtocol", default=ApiProtocol, covariant=True)
|
|
14
|
+
TP1 = TypeVar("TP1", bound="ApiProtocol", default=ApiProtocol, covariant=True)
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
@dataclass
|
|
@@ -21,6 +21,7 @@ class ApiInfo:
|
|
|
21
21
|
path: str = ""
|
|
22
22
|
token: str | None = None
|
|
23
23
|
timeout: float | None = None
|
|
24
|
+
api_base: URL = field(init=False)
|
|
24
25
|
|
|
25
26
|
def __post_init__(self):
|
|
26
27
|
if self.path and not self.path.startswith("/"):
|
|
@@ -26,8 +26,8 @@ from satori.model import (
|
|
|
26
26
|
|
|
27
27
|
from .protocol import ApiProtocol
|
|
28
28
|
|
|
29
|
-
TP = TypeVar("TP", bound="ApiProtocol", default=ApiProtocol)
|
|
30
|
-
TP1 = TypeVar("TP1", bound="ApiProtocol", default=ApiProtocol)
|
|
29
|
+
TP = TypeVar("TP", bound="ApiProtocol", default=ApiProtocol, covariant=True)
|
|
30
|
+
TP1 = TypeVar("TP1", bound="ApiProtocol", default=ApiProtocol, covariant=True)
|
|
31
31
|
|
|
32
32
|
class Api(Protocol):
|
|
33
33
|
token: str | None = None
|
|
@@ -42,7 +42,8 @@ class ApiInfo(Api):
|
|
|
42
42
|
path: str = "",
|
|
43
43
|
token: str | None = None,
|
|
44
44
|
timeout: float | None = None,
|
|
45
|
-
):
|
|
45
|
+
):
|
|
46
|
+
self.api_base: URL = ...
|
|
46
47
|
|
|
47
48
|
class Account(Generic[TP]):
|
|
48
49
|
adapter: str
|
|
@@ -60,6 +60,16 @@ _T_ws_endpoint = TypeVar("_T_ws_endpoint", bound=Callable[[WebSocket], Awaitable
|
|
|
60
60
|
StarletteResponse = Response
|
|
61
61
|
|
|
62
62
|
|
|
63
|
+
async def _json(self: StarletteRequest) -> Any:
|
|
64
|
+
if not hasattr(self, "_json"):
|
|
65
|
+
body = await self.body()
|
|
66
|
+
self._json = decode(body)
|
|
67
|
+
return self._json
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
StarletteRequest.json = _json
|
|
71
|
+
|
|
72
|
+
|
|
63
73
|
async def _request_handler(action: str, request: StarletteRequest, func: RouteCall, platform: str, self_id: str):
|
|
64
74
|
if action == Api.UPLOAD_CREATE.value:
|
|
65
75
|
async with request.form() as form:
|
|
@@ -78,7 +88,7 @@ async def _request_handler(action: str, request: StarletteRequest, func: RouteCa
|
|
|
78
88
|
Request(
|
|
79
89
|
request,
|
|
80
90
|
action,
|
|
81
|
-
|
|
91
|
+
await request.json(),
|
|
82
92
|
platform=platform,
|
|
83
93
|
self_id=self_id,
|
|
84
94
|
)
|
|
@@ -407,7 +417,7 @@ class Server(Service, RouterMixin):
|
|
|
407
417
|
return JSONResponse(content=Meta(logins, proxy_urls).dump())
|
|
408
418
|
|
|
409
419
|
async def webhook_create_handler(self, request: StarletteRequest):
|
|
410
|
-
body =
|
|
420
|
+
body = await request.json()
|
|
411
421
|
url = body["url"]
|
|
412
422
|
token = body.get("token")
|
|
413
423
|
self.webhooks.append(WebhookEndpoint(url, token))
|
|
@@ -427,7 +437,7 @@ class Server(Service, RouterMixin):
|
|
|
427
437
|
return Response()
|
|
428
438
|
|
|
429
439
|
async def webhook_delete_handler(self, request: StarletteRequest):
|
|
430
|
-
body =
|
|
440
|
+
body = await request.json()
|
|
431
441
|
url = body["url"]
|
|
432
442
|
for endpoint in self.webhooks:
|
|
433
443
|
if endpoint.url == url:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|