Преглед изворни кода

国内发送推流指令更换服务器,修改oa2RtspStartView函数

locky пре 4 година
родитељ
комит
a83ce8a46b
1 измењених фајлова са 65 додато и 132 уклоњено
  1. 65 132
      controller/index.py

+ 65 - 132
controller/index.py

@@ -223,7 +223,6 @@ class oa2RtspStartView(TemplateView):
     def post(self, request, *args, **kwargs):
         request.encoding = 'utf-8'
         request_dict = request.POST
-        # request_dict = json.loads(request.body.decode('utf-8'))
         return self.validate(request_dict)
 
     def get(self, request, *args, **kwargs):
@@ -232,141 +231,74 @@ class oa2RtspStartView(TemplateView):
         return self.validate(request_dict)
 
     def validate(self, request_dict):
-        '''
-        VVDHCVBYDKFMJRWA111A
-        '''
+        st = request_dict.get("st", 0)
+        uid = request_dict.get("id", '')
         access_token = request_dict.get("access_token", '')
         app_name = request_dict.get("app_name", 'zosi smart')
-        st = request_dict.get("st", 0)
-        id = request_dict.get("id", '')
-
-        # redisObj = RedisObject(db=9)
-        # key = '{UID}_rtsp_key'.format(UID=id)
-        # redis_data = redisObj.get_data(key=key)
-        # #redis_data = redisObj.del_data(key=key)
-        # print(st)
-        # if redis_data and st == 0:
-        # #if redis_data:
-        #     print('select by redis data')
-        #     # time.sleep(3)
-        #     res_json = eval(redis_data)
-        #     return JsonResponse(res_json, safe=False)
-
-        # user_qs = UserModel.objects.filter(access_token=access_token)
-        user_qs = UserModel.objects.filter(access_token=access_token)
 
-        if user_qs.exists():
-            print('select by mysql data')
-            ur_qs = UidRtspModel.objects.filter(uid=id).values('uid', 'nick', 'rtsp_url', 'password', 'region')
-            # ur_qs = UidRtspModel.objects.filter(usermodel__userID=userID,uid=)
-            UID = ur_qs[0]['uid']
-            region = ur_qs[0]['region']
-            PWD = ur_qs[0]['password']
-            stream_name = ur_qs[0]['rtsp_url']
-            nick = ur_qs[0]['nick']
-            #RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA[region]
-            # RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA['CN']
-            RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA['EN']
-            #如果是美国,则进行负载均衡
-            # if RESP_SERVER_DOMAIN == RESP_SERVER_DOMAIN_DATA['EN']:
-            #     redisObj1 = RedisObject(db=1)
-            #     key1 = RESP_SERVER_DOMAIN_DATA['EN']
-            #     key2 = RESP_SERVER_DOMAIN_DATA['EN1']
-            #     redis_data1 = redisObj1.get_data(key1)
-            #     redis_data2 = redisObj1.get_data(key2)
-            #     mm=min(redis_data1,redis_data2)
-            #     if redis_data1 == mm and redis_data1 != -1:
-            #         RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA['EN']
-            #     elif redis_data2 == mm and redis_data2 != -1:
-            #         RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA['EN1']
-            MSG = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:{PORT_PREFIX}/{stream_name}'. \
-                format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,
-                       stream_name=stream_name,
-                       PORT_PREFIX=PORT_PREFIX,
-                       RTSP_PREFIX=RTSP_PREFIX)
-            #zlm
-            # MSG = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:{PORT_PREFIX}/live/{stream_name}'. \
-            #     format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,
-            #            stream_name=stream_name,
-            #            PORT_PREFIX=PORT_PREFIX,
-            #            RTSP_PREFIX=RTSP_PREFIX)
-            # po = Pool(10)
-            # po.apply_async(self.runSendRtspMsg, (UID, PWD, MSG))
-            print(UID)
-            print(PWD)
-            print(MSG)
-
-
-            logger = logging.getLogger('django')
-            # logger.info('开始打印---------------------------')
-            # logger.info(MSG)
-            # logger.info(st)
-            # send_flag = self.runSendStop(UID, PWD, MSG)
-            # logger.info(send_flag)
-            # if send_flag:
-            #     return JsonResponse({'msg': 'stop yes', 'code': 0})
-
-            # 此处后续应该用异步去发送指令
-            if int(st) == 1:
-                send_flag = self.runSendStop(UID, PWD, MSG)
-                logger.info('----------send_flag---st=1-----------------')
-                if send_flag:
-                    return JsonResponse({'msg': 'stop yes', 'code': 0})
-                else:
-                    return JsonResponse({'msg': 'stop no', 'code': 0})
-            # threading.Thread(target=runSendRtspMsg_thread, args=(UID, PWD, MSG)).start()
-            # send_flag = self.runReqRtspMsg(UID, PWD, MSG)
-            send_flag = self.runSendRtspMsg(UID, PWD, MSG)
-            logger.info('开始打印----------send_flag3.0-----------------')
-            logger.info(send_flag)
-            #E
-            #拉流地址
-            rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'. \
-                format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,
-                       stream_name=stream_name,
-                       RTSP_PREFIX=RTSP_PREFIX)
-            #zlm443
-            # rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/live/{stream_name}'. \
-            #     format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,
-            #            stream_name=stream_name,
-            #            RTSP_PREFIX=RTSP_PREFIX)
-            #----------新增关闭流的线程
-            # stream_name = threading.Thread(target=self.runSendStop,args=(UID, PWD, MSG))
-            # stream_name.start()
-            #----------/新增关闭流的线程
-            stop_time = int(time.time()) + 2*60
-            expirationTime = time.strftime('%Y-%m-%dT%H:%MZ',time.localtime(stop_time))
-            logger.info('app_name:', app_name)
-            res_json = {
-                'endpointId': id,
-                'manufacturerName': app_name,
-                'manufacturerId': 'zosi-ACCC8E5E7513',
-                'modelName': 'P1425-LE',
-                'friendlyName': nick,
-                'description': 'Camera connected via {}'.format(app_name),
-                "expirationTime": expirationTime,
-                "idleTimeoutSeconds": 5,
-                #'resolutions': [{'width': 1280, 'height': 720}],
-                'resolutions': {'width': 640, 'height': 360},
-                'videoCodecs': 'H264',
-                'audioCodecs': 'ACC',
-                # 'audioCodecs': ['G711'],
-                'protocols': ['RTSP'],
-                'authorizationTypes': ['NONE'],
-                'uri': rtsp_uri,
-                # 'msg': send_flag,
-                'uid':UID,
-                'pwd':PWD,
-                'msg':MSG
-            }
-            logger.info('开始打印------------返回控制摄像头的结果2.0---------------')
-            logger.info(res_json)
+        user_qs = UserModel.objects.filter(access_token=access_token)
 
-            # redisObj.set_data(key=key, val=str(res_json), expire=15)
-            return JsonResponse(res_json, safe=False)
-        else:
+        if not user_qs.exists():
             return JsonResponse({'msg': 'wrong'})
 
+        ur_qs = UidRtspModel.objects.filter(uid=uid).values('uid', 'nick', 'rtsp_url', 'password', 'region')
+        UID = ur_qs[0]['uid']
+        nick = ur_qs[0]['nick']
+        PWD = ur_qs[0]['password']
+        region = ur_qs[0]['region']
+        stream_name = ur_qs[0]['rtsp_url']
+
+        RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA['EN']
+        MSG = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:{PORT_PREFIX}/{stream_name}'. \
+                format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=stream_name, PORT_PREFIX=PORT_PREFIX,RTSP_PREFIX=RTSP_PREFIX)
+
+        logger = logging.getLogger('django')
+        logger.info('技能名称: {}'.format(app_name))
+        # 此处后续应该用异步去发送指令
+        if int(st) == 1:
+            send_flag = self.runSendStop(UID, PWD, MSG)
+            logger.info('----------send_flag---st=1-----------------')
+            if send_flag:
+                return JsonResponse({'msg': 'stop yes', 'code': 0})
+            else:
+                return JsonResponse({'msg': 'stop no', 'code': 0})
+        # threading.Thread(target=runSendRtspMsg_thread, args=(UID, PWD, MSG)).start()
+        # send_flag = self.runReqRtspMsg(UID, PWD, MSG)
+        send_flag = self.runSendRtspMsg(UID, PWD, MSG)
+        logger.info('开始打印----------send_flag3.0-----------------')
+        logger.info(send_flag)
+        #拉流地址
+        rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'. \
+            format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=stream_name, RTSP_PREFIX=RTSP_PREFIX)
+        stop_time = int(time.time()) + 2*60
+        expirationTime = time.strftime('%Y-%m-%dT%H:%MZ',time.localtime(stop_time))
+
+        res_json = {
+            'endpointId': uid,
+            'manufacturerName': app_name,
+            'manufacturerId': 'zosi-ACCC8E5E7513',
+            'modelName': 'P1425-LE',
+            'friendlyName': nick,
+            'description': 'Camera connected via {}'.format(app_name),
+            "expirationTime": expirationTime,
+            "idleTimeoutSeconds": 5,
+            #'resolutions': [{'width': 1280, 'height': 720}],
+            'resolutions': {'width': 640, 'height': 360},
+            'videoCodecs': 'H264',
+            'audioCodecs': 'ACC',
+            # 'audioCodecs': ['G711'],
+            'protocols': ['RTSP'],
+            'authorizationTypes': ['NONE'],
+            'uri': rtsp_uri,
+            # 'msg': send_flag,
+            'uid': UID,
+            'pwd': PWD,
+            'msg': MSG
+        }
+        logger.info('开始打印------------返回控制摄像头的结果2.0---------------')
+        logger.info(res_json)
+        return JsonResponse(res_json, safe=False)
+
     def runReqRtspMsg(self, UID, PWD, MSG):
         request_url = 'http://localhost:5000/?UID={UID}&MSG={MSG}&CMD=1&PWD={PWD}'. \
             format(UID=UID, PWD=PWD, MSG=MSG)
@@ -385,7 +317,8 @@ class oa2RtspStartView(TemplateView):
 
         if region == 'CN':
             logger.info('------------国内发送推流指令---------------')
-            command_url = "http://47.115.134.251/index.php?command={command}".format(command=command)
+            # command_url = "http://47.115.134.251/index.php?command={command}".format(command=command)
+            command_url = "http://52.83.252.41:7880/alexa/command?command={command}".format(command=command)
             logger.info("-----------command_url={command_url}".format(command_url=command_url))
             try:
                 logger.info("-----------------开始调用接口")
@@ -452,7 +385,7 @@ class oa2DiscoveryDevice(TemplateView):
         logger = logging.getLogger('django')
         logger.info('-----access_token')
         logger.info(access_token)
-        logger.info('app_name:', app_name)
+        logger.info('技能名称: {}'.format(app_name))
         try:
             user_qs = UserModel.objects.get(access_token=access_token)
         except Exception as e: