chanjunkai 5 vuotta sitten
vanhempi
commit
2140d22bd1
3 muutettua tiedostoa jossa 54 lisäystä ja 34 poistoa
  1. 9 3
      azoauth/config.py
  2. 44 31
      controller/index.py
  3. 1 0
      model/models.py

+ 9 - 3
azoauth/config.py

@@ -12,6 +12,12 @@
 @Contact: chanjunkai@163.com
 """
 
-# RESP_SERVER_PREFIX = 'rtsp.zositech.xyz'
-RESP_SERVER_DOMAIN = 'rtsp.zositech.xyz'
-# RESP_SERVER_DOMAIN = 'www.zositech.org'
+RESP_SERVER_DOMAIN_DATA = {
+    'cn': 'rtsp.zositech.xyz',
+    'en': 'www.zositech.org'
+}
+SERVER_PREFIX = 'http://www.dvema.com'
+PORT_PREFIX = '8554'
+# PORT_PREFIX = '443'
+# RTSP_PREFIX = 'rtsps'
+RTSP_PREFIX = 'rtsp'

+ 44 - 31
controller/index.py

@@ -26,11 +26,7 @@ from service.CommonService import CommonService
 from object.RedisObject import RedisObject
 from azoauth.config import *
 
-SERVER_PREFIX = 'http://www.dvema.com'
-PORT_PREFIX = '8554'
-# PORT_PREFIX = '443'
-# RTSP_PREFIX = 'rtsps'
-RTSP_PREFIX = 'rtsp'
+
 
 class authView(TemplateView):
     def post(self, request, *args, **kwargs):
@@ -83,7 +79,8 @@ class loginHandleView(TemplateView):
         # 返回code
         print(user)
         print(pwd)
-        auth_request_url = '{SERVER_PREFIX}/oalexa/auth'.format(SERVER_PREFIX=SERVER_PREFIX)
+        auth_request_url = '{SERVER_PREFIX}/oalexa/auth'.\
+            format(SERVER_PREFIX=SERVER_PREFIX)
         print(auth_request_url)
         # auth_request_url = 'http://192.168.136.40:8077/oalexa/auth'
         requests_data = {'userName': user, 'userPwd': pwd}
@@ -97,7 +94,10 @@ class loginHandleView(TemplateView):
             nowTime = int(time.time())
             user_qs = UserModel.objects.filter(userID=userID)
             if not user_qs.exists():
-                UserModel.objects.create(userID=userID, addTime=nowTime, updTime=nowTime)
+                UserModel.objects.create(
+                    userID=userID,
+                    addTime=nowTime,
+                    updTime=nowTime)
                 user_qs = UserModel.objects.filter(userID=userID)
             code = CommonService.encrypt_data(32)
             user_qs.update(code=code)
@@ -165,8 +165,9 @@ def runSendRtspMsg_thread(UID, PWD, MSG):
     command = "./pushtool {UID} {PWD} {MSG} 1".format(UID=UID, PWD=PWD, MSG=MSG)
     print('command=>{command}'.format(command=command))
     try:
-        back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate(
-            timeout=10)
+        back = subprocess. \
+            Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE). \
+            communicate(timeout=10)
     except Exception as e:
         return False
     else:
@@ -210,12 +211,19 @@ class oa2RtspStartView(TemplateView):
         if user_qs.exists():
             print('select by mysql data')
             # userID = user_qs[0].userID
-            ur_qs = UidRtspModel.objects.filter(uid=id).values('uid', 'nick', 'rtsp_url', 'password')
+            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]
             MSG = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:{PORT_PREFIX}/{stream_name}'. \
-                format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=ur_qs[0]['rtsp_url'],PORT_PREFIX=PORT_PREFIX,RTSP_PREFIX=RTSP_PREFIX)
+                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)
@@ -229,22 +237,24 @@ class oa2RtspStartView(TemplateView):
                     return JsonResponse({'msg': 'stop no', 'code': 0})
             # threading.Thread(target=runSendRtspMsg_thread, args=(UID, PWD, MSG)).start()
             send_flag = self.runSendRtspMsg(UID, PWD, MSG)
-            rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'.\
-                format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,stream_name=ur_qs[0]['rtsp_url'],RTSP_PREFIX=RTSP_PREFIX)
+            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)
             res_json = {
                 'endpointId': id,
                 'manufacturerName': 'Axis',
                 'manufacturerId': 'axis-ACCC8E5E7513',
                 'modelName': 'P1425-LE',
-                'friendlyName': 'Camera {nick}'.format(nick=ur_qs[0]['nick']),
-                'description': 'Camera {nick}'.format(nick=ur_qs[0]['nick']),
+                'friendlyName': 'Camera {nick}'.format(nick=nick),
+                'description': 'Camera {nick}'.format(nick=nick),
                 'resolutions': [{'width': 1280, 'height': 720}],
                 'videoCodecs': ['H264'],
                 # 'audioCodecs': ['ACC'],
                 'audioCodecs': ['G711'],
                 'protocols': ['RTSP'],
                 'authorizationTypes': ['NONE'],
-                'uri':rtsp_uri
+                'uri': rtsp_uri
             }
             if send_flag:
                 redisObj.set_data(key=key, val=str(res_json), expire=30)
@@ -256,8 +266,8 @@ class oa2RtspStartView(TemplateView):
         command = "./pushtool {UID} {PWD} {MSG} 1".format(UID=UID, PWD=PWD, MSG=MSG)
         print('command=>{command}'.format(command=command))
         try:
-            back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate(
-                timeout=10)
+            back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).\
+                communicate(timeout=10)
         except Exception as e:
             return False
         else:
@@ -269,8 +279,8 @@ class oa2RtspStartView(TemplateView):
         command = "./pushtool {UID} {PWD} {MSG} 0".format(UID=UID, PWD=PWD, MSG=MSG)
         print('command=>{command}'.format(command=command))
         try:
-            back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate(
-                timeout=10)
+            back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).\
+                communicate(timeout=10)
         except Exception as e:
             return False
         else:
@@ -293,6 +303,7 @@ class oa2DiscoveryDevice(TemplateView):
     def validate(self, request_dict):
         # 增加对code和client_id的校验代码,返回access_token和refresh_token
         access_token = request_dict.get("access_token", None)
+        region = request_dict.get("region", 'cn')
         try:
             user_qs = UserModel.objects.get(access_token=access_token)
         except Exception as e:
@@ -303,8 +314,8 @@ class oa2DiscoveryDevice(TemplateView):
             auth_request_url = '{SERVER_PREFIX}/oalexa/discoveryuid'.format(SERVER_PREFIX=SERVER_PREFIX)
             requests_data = {'sid': 'admin', 'sst': 'admin', 'alexa_user_id': userID}
             res = requests.post(url=auth_request_url, data=requests_data)
-            print(res.json())
             res_json = res.json()
+            print(res_json)
             if res_json['result_code'] == 0:
                 uid_arr = res_json['result']['uid_arr']
                 rtko = tkObject(rank=1)
@@ -318,17 +329,19 @@ class oa2DiscoveryDevice(TemplateView):
                     try:
                         uid_rtsp_qs = UidRtspModel.objects.get(uid=uid)
                     except UidRtspModel.DoesNotExist:
-                        uid_rtsp_qs = UidRtspModel.objects.create(
-                            uid=uid_a['uid'],
-                            password=uid_a['password'],
-                            nick=uid_a['nick'],
-                            addTime=now_time,
-                            updTime=now_time,
-                            rtsp_url=rtsp_url,
-                        )
+                        uid_rtsp_qs = UidRtspModel.objects.create(uid=uid_a['uid'],
+                                                                  password=uid_a['password'],
+                                                                  nick=uid_a['nick'],
+                                                                  addTime=now_time,
+                                                                  updTime=now_time,
+                                                                  rtsp_url=rtsp_url,
+                                                                  region=region)
                     uid_rtsp_id_list.append(uid_rtsp_qs.id)
-                    rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'.\
-                        format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=rtsp_url,RTSP_PREFIX=RTSP_PREFIX)
+                    RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA[region]
+                    rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'. \
+                        format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,
+                               stream_name=rtsp_url,
+                               RTSP_PREFIX=RTSP_PREFIX)
                     ur_data = {
                         'endpointId': uid_a['uid'],
                         'manufacturerName': 'Axis',

+ 1 - 0
model/models.py

@@ -29,6 +29,7 @@ class UidRtspModel(models.Model):
     uid = models.CharField(max_length=20, verbose_name=u'设备UID', default='',unique=True)
     password = models.CharField(max_length=32, verbose_name=u'设备密码', default='')
     rtsp_url = models.CharField(max_length=128, verbose_name='rtsp流地址', default='')
+    region = models.CharField(max_length=8, verbose_name='区域', default='cn')
     addTime = models.IntegerField(verbose_name='添加时间', default=0)
     updTime = models.IntegerField(verbose_name='更新时间', default=0)