diff options
| author | 2023-06-08 23:18:08 +0200 | |
|---|---|---|
| committer | 2023-06-08 23:18:08 +0200 | |
| commit | 51f276fcc03902bd6f0adaf27df74390b3d03c13 (patch) | |
| tree | 1a8c359ff526eb062afbf214841c5ec0eeeef185 | |
| parent | 4fec4fdfee90aab923022094f9d1baf4fea892c5 (diff) | |
| download | client-51f276fcc03902bd6f0adaf27df74390b3d03c13.tar.gz client-51f276fcc03902bd6f0adaf27df74390b3d03c13.tar.bz2 client-51f276fcc03902bd6f0adaf27df74390b3d03c13.zip | |
Removed printsv2.0.0
| -rw-r--r-- | ttun/client.py | 51 |
1 files changed, 25 insertions, 26 deletions
diff --git a/ttun/client.py b/ttun/client.py index a5c6e10..097ebc5 100644 --- a/ttun/client.py +++ b/ttun/client.py | |||
| @@ -1,7 +1,8 @@ | |||
| 1 | import asyncio | 1 | import asyncio |
| 2 | import json | 2 | import json |
| 3 | import logging | 3 | import logging |
| 4 | from asyncio import create_task, get_running_loop | 4 | from asyncio import create_task |
| 5 | from asyncio import get_running_loop | ||
| 5 | from base64 import b64decode | 6 | from base64 import b64decode |
| 6 | from base64 import b64encode | 7 | from base64 import b64encode |
| 7 | from datetime import datetime | 8 | from datetime import datetime |
| @@ -23,13 +24,14 @@ from aiohttp import DummyCookieJar | |||
| 23 | from websockets import WebSocketClientProtocol | 24 | from websockets import WebSocketClientProtocol |
| 24 | from websockets.exceptions import ConnectionClosed | 25 | from websockets.exceptions import ConnectionClosed |
| 25 | 26 | ||
| 27 | from ttun import __version__ | ||
| 26 | from ttun.pubsub import PubSub | 28 | from ttun.pubsub import PubSub |
| 27 | from ttun.types import Config, Message, MessageType | 29 | from ttun.types import Config |
| 30 | from ttun.types import Message | ||
| 31 | from ttun.types import MessageType | ||
| 28 | from ttun.types import RequestData | 32 | from ttun.types import RequestData |
| 29 | from ttun.types import ResponseData | 33 | from ttun.types import ResponseData |
| 30 | 34 | ||
| 31 | from ttun import __version__ | ||
| 32 | |||
| 33 | 35 | ||
| 34 | class Client: | 36 | class Client: |
| 35 | def __init__( | 37 | def __init__( |
| @@ -53,12 +55,10 @@ class Client: | |||
| 53 | self.headers = [] if headers is None else headers | 55 | self.headers = [] if headers is None else headers |
| 54 | 56 | ||
| 55 | async def send(self, data: dict): | 57 | async def send(self, data: dict): |
| 56 | print('send {}'.format(pformat(data))) | ||
| 57 | await self.connection.send(json.dumps(data)) | 58 | await self.connection.send(json.dumps(data)) |
| 58 | 59 | ||
| 59 | async def receive(self) -> dict: | 60 | async def receive(self) -> dict: |
| 60 | data = json.loads(await self.connection.recv()) | 61 | data = json.loads(await self.connection.recv()) |
| 61 | print('receive {}'.format(pformat(data))) | ||
| 62 | return data | 62 | return data |
| 63 | 63 | ||
| 64 | @staticmethod | 64 | @staticmethod |
| @@ -78,12 +78,8 @@ class Client: | |||
| 78 | 78 | ||
| 79 | async def connect(self) -> WebSocketClientProtocol: | 79 | async def connect(self) -> WebSocketClientProtocol: |
| 80 | self.connection = await websockets.connect(f"{self.server}/tunnel/") | 80 | self.connection = await websockets.connect(f"{self.server}/tunnel/") |
| 81 | print(self.version) | ||
| 82 | 81 | ||
| 83 | await self.send({ | 82 | await self.send({"subdomain": self.subdomain, "version": self.version}) |
| 84 | "subdomain": self.subdomain, | ||
| 85 | "version": self.version | ||
| 86 | }) | ||
| 87 | 83 | ||
| 88 | self.config = await self.receive() | 84 | self.config = await self.receive() |
| 89 | 85 | ||
| @@ -101,12 +97,12 @@ class Client: | |||
| 101 | message: Message = await self.receive() | 97 | message: Message = await self.receive() |
| 102 | 98 | ||
| 103 | try: | 99 | try: |
| 104 | if MessageType(message['type']) != MessageType.request: | 100 | if MessageType(message["type"]) != MessageType.request: |
| 105 | continue | 101 | continue |
| 106 | except ValueError: | 102 | except ValueError: |
| 107 | continue | 103 | continue |
| 108 | 104 | ||
| 109 | request: RequestData = message['payload'] | 105 | request: RequestData = message["payload"] |
| 110 | 106 | ||
| 111 | request["headers"] = [ | 107 | request["headers"] = [ |
| 112 | *request["headers"], | 108 | *request["headers"], |
| @@ -114,20 +110,23 @@ class Client: | |||
| 114 | ] | 110 | ] |
| 115 | 111 | ||
| 116 | async def response_handler( | 112 | async def response_handler( |
| 117 | response: ResponseData, | 113 | response: ResponseData, identifier=message["identifier"] |
| 118 | identifier=message['identifier'] | ||
| 119 | ): | 114 | ): |
| 120 | await self.send(Message( | 115 | await self.send( |
| 121 | type=MessageType.response.value, | 116 | Message( |
| 122 | identifier=identifier, | 117 | type=MessageType.response.value, |
| 123 | payload=response | 118 | identifier=identifier, |
| 124 | )) | 119 | payload=response, |
| 125 | 120 | ) | |
| 126 | loop.create_task(self.proxy_request( | 121 | ) |
| 127 | session=session, | 122 | |
| 128 | request=request, | 123 | loop.create_task( |
| 129 | on_response=response_handler, | 124 | self.proxy_request( |
| 130 | )) | 125 | session=session, |
| 126 | request=request, | ||
| 127 | on_response=response_handler, | ||
| 128 | ) | ||
| 129 | ) | ||
| 131 | except ConnectionClosed: | 130 | except ConnectionClosed: |
| 132 | break | 131 | break |
| 133 | 132 | ||
