valar 0.0.11__tar.gz → 0.0.12__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.

Potentially problematic release.


This version of valar might be problematic. Click here for more details.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: valar
3
- Version: 0.0.11
3
+ Version: 0.0.12
4
4
  Summary: valar for morghulis
5
5
  Author: LYP
6
6
  Author-email: liuyinpeng@buaa.edu.cn
@@ -10,7 +10,7 @@ requires = ['channels==3.0.3']
10
10
 
11
11
  setup(
12
12
  name="valar", # 包名
13
- version="0.0.11", # 版本号
13
+ version="0.0.12", # 版本号
14
14
  author="LYP", # 作者
15
15
  author_email="liuyinpeng@buaa.edu.cn", # 邮箱
16
16
  description="valar for morghulis", # 简短描述
@@ -11,11 +11,15 @@ class ValarResponse(JsonResponse):
11
11
  class Middleware(MiddlewareMixin):
12
12
  @staticmethod
13
13
  def process_response(request: HttpRequest, response: ValarResponse):
14
- message, code = response.message, response.code
15
- user_id = request.session.get('USER_ID')
16
14
  headers = response.headers
17
- headers['valar_message'] = message
18
- headers['valar_code'] = code
19
- if user_id:
20
- headers['user_id'] = user_id
15
+ if type(response)==ValarResponse:
16
+ message, code = response.message, response.code
17
+ headers['valar_message'] = message
18
+ headers['valar_code'] = code
19
+ auth = request.headers.get('AUTH')
20
+ if auth:
21
+ headers['auth'] = auth
22
+ uid = request.session.get('UID')
23
+ if uid:
24
+ headers['uid'] = uid
21
25
  return response
@@ -1,8 +1,9 @@
1
1
  from datetime import datetime
2
2
 
3
+ from asgiref.sync import async_to_sync
3
4
  from channels.layers import get_channel_layer
4
5
 
5
- from channels.generic.websocket import AsyncJsonWebsocketConsumer
6
+ from channels.generic.websocket import AsyncJsonWebsocketConsumer, JsonWebsocketConsumer
6
7
  from django.conf import settings
7
8
 
8
9
  try:
@@ -30,22 +31,22 @@ class ValarSocketSender:
30
31
  }
31
32
 
32
33
 
33
- async def to_users(self, data, *users):
34
+ def to_users(self, data, *users):
34
35
  body = self.__convert_body('user.emit', data, users=users)
35
- await self.send(GROUP, body)
36
+ async_to_sync(self.send)(GROUP, body)
36
37
 
37
- async def to_clients(self,data, *clients):
38
+ def to_clients(self,data, *clients):
38
39
  body = self.__convert_body('client.emit', data, clients=clients)
39
- await self.send(GROUP, body)
40
+ async_to_sync(self.send)(GROUP, body)
40
41
 
41
- async def broadcast(self, data):
42
+
43
+ def broadcast(self, data):
42
44
  body = self.__convert_body('broadcast.emit', data)
43
- await self.send(GROUP, body)
45
+ async_to_sync(self.send)(GROUP, body)
44
46
 
45
- async def register(self):
47
+ def register(self):
46
48
  body = self.__convert_body('register.emit', None,[self.client], [self.uid])
47
- await self.send(GROUP, body)
48
-
49
+ async_to_sync(self.send)(GROUP, body)
49
50
 
50
51
  class ValarConsumer(AsyncJsonWebsocketConsumer):
51
52
 
@@ -92,10 +93,3 @@ class ValarConsumer(AsyncJsonWebsocketConsumer):
92
93
 
93
94
 
94
95
 
95
-
96
-
97
-
98
-
99
-
100
-
101
-
@@ -8,20 +8,23 @@ from .. import ValarResponse
8
8
  from ..channels import ValarSocketSender
9
9
 
10
10
 
11
-
12
-
13
-
14
11
  async def handel_channel(request, handler):
15
12
  client = request.headers.get('CLIENT')
13
+ auth = request.headers.get('AUTH')
16
14
  uid = request.session.get('UID')
15
+ if auth and not uid:
16
+ return ValarResponse(False)
17
17
  data = json.loads(request.body)
18
- method = get_valar_channel_handler(handler)
18
+ try:
19
+ method = get_valar_channel_handler(handler)
20
+ except ImproperlyConfigured:
21
+ return ValarResponse(False, message="Invalid channel handler %r" % handler, code='error')
19
22
  sender = ValarSocketSender(handler, client, uid)
20
23
  if uid and client:
21
24
  await sender.register()
22
- loop = asyncio.get_event_loop()
23
- loop.create_task(method(data, sender))
24
- return ValarResponse({'status':'OK'})
25
+ thread = asyncio.to_thread(method,data, sender)
26
+ asyncio.create_task(thread)
27
+ return ValarResponse(True)
25
28
 
26
29
 
27
30
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: valar
3
- Version: 0.0.11
3
+ Version: 0.0.12
4
4
  Summary: valar for morghulis
5
5
  Author: LYP
6
6
  Author-email: liuyinpeng@buaa.edu.cn
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes