chenjunkai 5 years ago
parent
commit
d8e2cf7d21
3 changed files with 54 additions and 5 deletions
  1. 1 0
      azoauth/urls.py
  2. 49 1
      controller/index.py
  3. 4 4
      object/tkObject.py

+ 1 - 0
azoauth/urls.py

@@ -24,4 +24,5 @@ urlpatterns = [
     path('oa2/login', index.loginHandleView.as_view()),
     path('oa2/token', index.oa2TokenView.as_view()),
     path('oa2/rtspStart', index.oa2RtspStartView.as_view()),
+    path('oa2/discoverydevice', index.oa2DiscoveryDevice.as_view()),
 ]

+ 49 - 1
controller/index.py

@@ -157,7 +157,7 @@ class oa2TokenView(TemplateView):
             print(res_json)
             return JsonResponse(res_json)
         else:
-            res_json={'msg': 'code not exists'}
+            res_json = {'msg': 'code not exists'}
             print(res_json)
             return JsonResponse(res_json)
 
@@ -195,3 +195,51 @@ class oa2RtspStartView(TemplateView):
         print("back0----", back[0].decode())  # 注意需要进行解码操作,默认输出的是字节
         print("back1----", back[1].decode())  # back是一个元祖,可以通过元祖取值的方式获取结果
         return
+
+
+class oa2DiscoveryDevice(TemplateView):
+    def post(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = request.POST
+        return self.validate(request_dict)
+
+    def get(self, request, *args, **kwargs):
+        request.encoding = 'utf-8'
+        request_dict = request.GET
+        return self.validate(request_dict)
+
+    def validate(self, request_dict):
+        # 增加对code和client_id的校验代码,返回access_token和refresh_token
+        access_token = request_dict.get("access_token", None)
+        user_qs = UserModel.objects.filter(access_token=access_token)
+        response = ResObject()
+        if user_qs.exists():
+            tko = tkObject(rank=3)
+            tko.parseUid(tk=access_token)
+            userID = tko.data
+            ur_qs = UidRtspModel.objects.filter(user_id=userID).values('uid', 'nick', 'rtsp_url', 'id')
+            if ur_qs.exists():
+                res_json = []
+                for ur in ur_qs:
+                    ur_data = {
+                        'endpointId': ur['id'],
+                        'manufacturerName': 'Axis',
+                        'manufacturerId': 'axis-ACCC8E5E7513',
+                        'modelName': 'P1425-LE',
+                        'friendlyName': 'Camera {nick}'.format(nick=ur['nick']),
+                        'description': 'Camera {nick}'.format(nick=ur['nick']),
+                        'resolutions': [{'width': 1280, 'height': 720}],
+                        'videoCodecs': ['H264'],
+                        'audioCodecs': ['ACC'],
+                        'protocols': ['RTSP'],
+                        'authorizationTypes': ['NONE'],
+                        'uri': 'rtsp://www.zositech.org:443/{stream_name}'.format(stream_name=ur['rtsp_url'])
+                    }
+                    res_json.append(ur_data)
+                return JsonResponse(res_json,safe=False)
+                # return response.json(0, res_json)
+            else:
+                return response.json(0, 'data is none~')
+        else:
+            return JsonResponse({'res':'11'})
+            return response.json(0, 'error')

+ 4 - 4
object/tkObject.py

@@ -57,13 +57,13 @@ class tkObject(object):
             ss += characterSet[random.randint(0, length)]
         return ss
 
-# tkobj = tkObject(tk='',rank=30)
-# PP = tkobj.encrypt(data='data')
+# tkobj = tkObject(tk='',rank=3)
+# PP = tkobj.encrypt(data='154390905041313800138000')
 # print('encode_data:')
 # print(PP)
 # print('decode_data:')
 #######################################################
-# ttk = 'cnlJNUUyMmRXNUxmNFBIMk54enRtSjBmZWRqUTdiWkdGMFlRPT1leHJ1ZTQ0WG5pd3lXUDBLU1VoanNiUnZLM0kxbjU='
-# tkobj = tkObject(tk=ttk,rank=30)
+# ttk = 'cmV1TVRVME16a3dPVEExTURReE16RXpPREF3TVRNNE1EQXdmcmU='
+# tkobj = tkObject(tk=ttk,rank=3)
 # data = tkobj.data
 # print(data)