GNServer 0.0.0.0.57__py3-none-any.whl → 0.0.0.0.58__py3-none-any.whl

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.
GNServer/_app.py CHANGED
@@ -42,7 +42,7 @@ logger.setLevel(logging.DEBUG)
42
42
 
43
43
  console = logging.StreamHandler(sys.stdout)
44
44
  console.setLevel(logging.DEBUG)
45
- console.setFormatter(logging.Formatter("[GNServer] %(name)s: %(levelname)s: %(message)s"))
45
+ console.setFormatter(logging.Formatter("[%(name)s] %(levelname)s: %(message)s"))
46
46
  logger.addHandler(console)
47
47
 
48
48
 
@@ -227,8 +227,11 @@ class App:
227
227
  for qn, qvals in request.url.params.items():
228
228
  if qn in kw:
229
229
  continue
230
- raw = qvals if len(qvals) > 1 else qvals[0]
231
- kw[qn] = _convert_value(raw, _ann(qn), str)
230
+ if isinstance(qvals, int):
231
+ kw[qn] = qvals
232
+ else:
233
+ raw = qvals if len(qvals) > 1 else qvals[0]
234
+ kw[qn] = _convert_value(raw, _ann(qn), str)
232
235
 
233
236
 
234
237
  params = set(sig.parameters.keys())
@@ -349,13 +352,15 @@ class App:
349
352
  request.client._data['domain'] = domain
350
353
  except:
351
354
  asyncio.create_task(self.sendRawResponse(stream_id, AllGNFastCommands.KDCDecryptRequestFailed().serialize(mode=mode)))
355
+ self._buffer.pop(event.stream_id, None)
356
+ return
352
357
 
353
358
  else:
354
359
  raise Exception('Не удалось расшифровать от KDC')
355
360
 
356
361
  request.stream_id = stream_id # type: ignore
362
+ logger.debug(f'Request: {request.method} {request.url}')
357
363
  asyncio.create_task(self._handle_request(request, mode))
358
- logger.debug(f'Отправлена задача разрешения пакета {request} route -> {request.route}')
359
364
 
360
365
  self._buffer.pop(event.stream_id, None)
361
366
  return
@@ -397,7 +402,6 @@ class App:
397
402
  queue.put_nowait(None)
398
403
  self._buffer.pop(event.stream_id)
399
404
  self._streams.pop(event.stream_id)
400
- logger.debug(f'Закрываем стрим [{event.stream_id}]')
401
405
  return
402
406
 
403
407
  queue.put_nowait(request)
@@ -439,12 +443,11 @@ class App:
439
443
  return
440
444
 
441
445
  await self.sendResponse(request, response, mode)
442
- logger.debug(f'Отправлен на сервер ответ -> {response.command} {response.payload if response.payload and len(str(response.payload)) < 200 else ''}')
443
446
  except Exception as e:
444
447
  if isinstance(e, (GNRequest, GNFastCommand)):
445
448
  await self.sendResponse(request, e, mode)
446
449
  else:
447
- logger.error('GNServer: error\n' + traceback.format_exc())
450
+ logger.error('InternalServerError:\n' + traceback.format_exc())
448
451
 
449
452
  await self.sendResponse(request, AllGNFastCommands.InternalServerError(), mode)
450
453
 
@@ -452,6 +455,9 @@ class App:
452
455
 
453
456
  async def sendResponse(self, request: GNRequest, response: GNResponse, mode: int, end_stream: bool = True):
454
457
  await response.assembly()
458
+
459
+
460
+ logger.debug(f'Response: {request.method} {request.url} -> {response.command} {response.payload if len(str(response.payload)) < 256 else ''}')
455
461
 
456
462
  blob = response.serialize(mode)
457
463
 
@@ -508,7 +514,7 @@ class App:
508
514
  if run is not None:
509
515
  await run()
510
516
 
511
-
517
+ logger.debug('Server startup completed')
512
518
  if wait:
513
519
  await asyncio.Event().wait()
514
520
 
GNServer/_client.py CHANGED
@@ -1,4 +1,5 @@
1
1
  import os
2
+ import sys
2
3
  import time
3
4
  import httpx
4
5
  import asyncio
@@ -87,6 +88,21 @@ from ._crt import crt_client
87
88
  from .models import KDCObject
88
89
 
89
90
 
91
+
92
+
93
+ import logging
94
+
95
+ logger = logging.getLogger("GNAsyncClient")
96
+ logger.setLevel(logging.DEBUG)
97
+
98
+ console = logging.StreamHandler(sys.stdout)
99
+ console.setLevel(logging.DEBUG)
100
+ console.setFormatter(logging.Formatter("[%(name)s] %(levelname)s: %(message)s"))
101
+ logger.addHandler(console)
102
+
103
+
104
+
105
+
90
106
  _log_levels: dict[str, int] = {
91
107
  "NOTSET": 0,
92
108
  "DEBUG": 10,
@@ -263,8 +279,9 @@ class AsyncClient:
263
279
 
264
280
  for f in self.__request_callbacks.values():
265
281
  asyncio.create_task(f(request))
266
-
282
+ logger.debug(f'Request: {request.method} {request.url}')
267
283
  r = await c.asyncRequest(request)
284
+ logger.debug(f'Response: {request.method} {request.url} -> {r.command} {r.payload if len(str(r.payload)) < 256 else ''}')
268
285
 
269
286
  for f in self.__response_callbacks.values():
270
287
  asyncio.create_task(f(r))
@@ -574,7 +591,6 @@ class RawQuicClient(QuicConnectionProtocol):
574
591
  if q is None:
575
592
  break
576
593
  sid, blob, end_stream = q.popleft()
577
- print(f'Отправка стрима {sid}')
578
594
  self._quic.send_stream_data(sid, blob, end_stream=end_stream)
579
595
  self.transmit()
580
596
  self._activity()
GNServer/models.py CHANGED
@@ -39,6 +39,8 @@ class KDCObject:
39
39
  for i in self._requested_domains:
40
40
  if i in servers_keys:
41
41
  self._requested_domains.remove(i)
42
+ else:
43
+ servers_keys = {}
42
44
 
43
45
  if len(self._requested_domains) > 0:
44
46
  payload = self._requested_domains
@@ -48,11 +50,12 @@ class KDCObject:
48
50
  print(f'ERROR: {r.command} {r.payload}')
49
51
  raise r
50
52
 
51
- servers_keys = r.payload
52
-
53
53
  if servers_keys is None:
54
54
  print(f'ERROR: {r.command} {r.payload}')
55
55
  raise r
56
+
57
+ servers_keys.update(r.payload)
58
+
56
59
 
57
60
  self._servers_keys.update(servers_keys)
58
61
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: GNServer
3
- Version: 0.0.0.0.57
3
+ Version: 0.0.0.0.58
4
4
  Summary: GNServer
5
5
  Home-page: https://github.com/KeyisB/libs/tree/main/GNServer
6
6
  Author: KeyisB
@@ -1,14 +1,14 @@
1
1
  GNServer/__init__.py,sha256=6CMCZlkBO74PW8i8DAri5xz2fYM9EyPH8vdsLYBMmOo,1560
2
- GNServer/_app.py,sha256=fXPrxk-YiprBvjYQckAj3oSHLdWlAENPZ6WkqC8bFZ8,19242
3
- GNServer/_client.py,sha256=IEzben2zZfgpU9DhcnjB9uQLCInllZhdoLTZyM72ldA,32610
2
+ GNServer/_app.py,sha256=bf5sXwimwgsSq51bK3YVq0e46p-0Hr9NY5wME2Okh54,19328
3
+ GNServer/_client.py,sha256=ER5_UdzCIqRuQtIHlqFN-ecExsCPHMf2eumBQx0FquU,33063
4
4
  GNServer/_cors_resolver.py,sha256=aDxk4ItaEK-6vlDbkno8FJZEjczGEe8vkOui6_kz5-Y,5950
5
5
  GNServer/_crt.py,sha256=SOmyX7zBiCY9EhVSekksQtBHgTIZVvdqNZ8Ni-E5Zow,1390
6
6
  GNServer/_func_params_validation.py,sha256=pDXRzPVTdPnDHFMMmKd014SConBjFOuaLeJTY0vldlM,11412
7
7
  GNServer/_routes.py,sha256=bJnmQ8uEhPVQgy2tTqE5TEIM8aFXV-lVI7c2nG0rQwk,3384
8
8
  GNServer/_template_resolver.py,sha256=vdJYb_7PjIeTWq-Clr7jyj7QIvPBxplU7EqeOuMJ64c,1409
9
- GNServer/models.py,sha256=Te9Fyw-EsMnEZt0TPE9H0Zc_atjq2X94VsLSQH_k1Kk,3145
10
- gnserver-0.0.0.0.57.dist-info/licenses/LICENSE,sha256=_rN-sb3LemR3cKsEqjJRdXkdt7mME1mkW1BwWEn-zAw,1309
11
- gnserver-0.0.0.0.57.dist-info/METADATA,sha256=0-K5kQ60Cyj5nwSYGxHYCa5FvGDJZxU6-PQwaTaE4ks,830
12
- gnserver-0.0.0.0.57.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
13
- gnserver-0.0.0.0.57.dist-info/top_level.txt,sha256=-UOUBuD4u7Qkb1o5PdcwyA3kx8xCH2lwy0tJHi26Wb4,9
14
- gnserver-0.0.0.0.57.dist-info/RECORD,,
9
+ GNServer/models.py,sha256=CXBJR_g3clIKKaMJ_zsUFLEG0EBa3g_Ik10te7whd30,3211
10
+ gnserver-0.0.0.0.58.dist-info/licenses/LICENSE,sha256=_rN-sb3LemR3cKsEqjJRdXkdt7mME1mkW1BwWEn-zAw,1309
11
+ gnserver-0.0.0.0.58.dist-info/METADATA,sha256=JEfPPBj80TXU7D3ZtM8qpIYOJrbiba_VsAMImMsEl1Q,830
12
+ gnserver-0.0.0.0.58.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
13
+ gnserver-0.0.0.0.58.dist-info/top_level.txt,sha256=-UOUBuD4u7Qkb1o5PdcwyA3kx8xCH2lwy0tJHi26Wb4,9
14
+ gnserver-0.0.0.0.58.dist-info/RECORD,,