|
@@ -117,15 +117,18 @@ class loginHandleView(TemplateView):
|
|
|
logger.info(request_dict)
|
|
|
if client_id != 'azalexaclient' or response_type != 'code' or scope != 'profile':
|
|
|
return response.json(10, res={'msg': 'error'}, extra={'msg': 'message wrong'})
|
|
|
- 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'
|
|
|
+ auth_request_url = '{SERVER_PREFIX}/oalexa/auth'.format(SERVER_PREFIX=SERVER_PREFIX)
|
|
|
requests_data = {'userName': user, 'userPwd': pwd}
|
|
|
res = requests.post(url=auth_request_url, data=requests_data)
|
|
|
- print(res.json())
|
|
|
- print(res.json()['result_code'])
|
|
|
res_json = res.json()
|
|
|
+
|
|
|
+ # 添加测试服务器测试
|
|
|
+ if res_json['result_code'] == 104:
|
|
|
+ auth_request_url = '{SERVER_PREFIX}/oalexa/auth'.format(SERVER_PREFIX=SERVER_PREFIX_TEST)
|
|
|
+ requests_data = {'userName': user, 'userPwd': pwd}
|
|
|
+ res = requests.post(url=auth_request_url, data=requests_data)
|
|
|
+ res_json = res.json()
|
|
|
+
|
|
|
if res_json['result_code'] == 0:
|
|
|
userID = res_json['result']['userID']
|
|
|
# uid_arr = res_json['result']['uid_arr']
|
|
@@ -332,7 +335,6 @@ class oa2RtspStartView(TemplateView):
|
|
|
try:
|
|
|
logger.info("-----------------开始调用接口")
|
|
|
exec_res = requests.get(url=command_url, timeout=2)
|
|
|
- logger.info('exec_res: {}'.format(exec_res))
|
|
|
res = exec_res.json()
|
|
|
logger.info('------------调用接口执行发送命令---------------')
|
|
|
logger.info('res: {}'.format(res))
|
|
@@ -389,113 +391,113 @@ class oa2DiscoveryDevice(TemplateView):
|
|
|
|
|
|
def validate(self, request_dict):
|
|
|
# 增加对code和client_id的校验代码,返回access_token和refresh_token
|
|
|
- access_token = request_dict.get("access_token", None)
|
|
|
app_name = request_dict.get("app_name", 'zosi smart')
|
|
|
- region = request_dict.get("region", 'cn')
|
|
|
+ access_token = request_dict.get("access_token", None)
|
|
|
+
|
|
|
logger = logging.getLogger('django')
|
|
|
- logger.info('-----access_token')
|
|
|
- logger.info(access_token)
|
|
|
+ logger.info('--------开始搜索设备--------')
|
|
|
logger.info('技能名称: {}'.format(app_name))
|
|
|
- try:
|
|
|
- user_qs = UserModel.objects.get(access_token=access_token)
|
|
|
- except Exception as e:
|
|
|
- return JsonResponse({'res': '11'})
|
|
|
- else:
|
|
|
- response = ResObject()
|
|
|
- userID = user_qs.userID
|
|
|
-
|
|
|
- #更新事件网关接口
|
|
|
- alexAuth = AlexaAuthModel.objects.filter(token=access_token).order_by('-addTime')
|
|
|
- if alexAuth.exists():
|
|
|
- auth_res = alexAuth.values()
|
|
|
- event_access_token = auth_res[0]['access_token']
|
|
|
- event_refresh_token = auth_res[0]['refresh_token']
|
|
|
- event_token = auth_res[0]['token']
|
|
|
- event_expiresTime = auth_res[0]['expiresTime']
|
|
|
- event_addTime = auth_res[0]['addTime']
|
|
|
- event_updTime = auth_res[0]['updTime']
|
|
|
- event_alexa_region = auth_res[0]['alexa_region']
|
|
|
- AlexaAuthModel.objects.filter(userID = userID).delete()
|
|
|
- alexAuth.delete()
|
|
|
- logger.info('update_event_access_token')
|
|
|
- logger.info(event_token)
|
|
|
- AlexaAuthModel.objects.create(
|
|
|
- userID = userID,
|
|
|
- access_token = event_access_token,
|
|
|
- refresh_token = event_refresh_token,
|
|
|
- token = event_token,
|
|
|
- expiresTime = event_expiresTime,
|
|
|
- addTime = event_addTime,
|
|
|
- updTime = event_updTime,
|
|
|
- alexa_region = event_alexa_region,
|
|
|
- )
|
|
|
-
|
|
|
- auth_request_url = '{SERVER_PREFIX}/oalexa/discoveryuid'.format(SERVER_PREFIX=SERVER_PREFIX)
|
|
|
- requests_data = {'sid': 'admin', 'sst': 'admin', 'alexa_user_id': userID}
|
|
|
+
|
|
|
+ user_qs = UserModel.objects.filter(access_token=access_token)
|
|
|
+ if not user_qs.exists():
|
|
|
+ return JsonResponse({'res': '用户数据不存在!'})
|
|
|
+
|
|
|
+ response = ResObject()
|
|
|
+ userID = user_qs.userID
|
|
|
+
|
|
|
+ #更新事件网关接口
|
|
|
+ alexAuth = AlexaAuthModel.objects.filter(token=access_token).order_by('-addTime')
|
|
|
+ if alexAuth.exists():
|
|
|
+ auth_res = alexAuth.values()
|
|
|
+ event_access_token = auth_res[0]['access_token']
|
|
|
+ event_refresh_token = auth_res[0]['refresh_token']
|
|
|
+ event_token = auth_res[0]['token']
|
|
|
+ event_expiresTime = auth_res[0]['expiresTime']
|
|
|
+ event_addTime = auth_res[0]['addTime']
|
|
|
+ event_updTime = auth_res[0]['updTime']
|
|
|
+ event_alexa_region = auth_res[0]['alexa_region']
|
|
|
+ AlexaAuthModel.objects.filter(userID = userID).delete()
|
|
|
+ alexAuth.delete()
|
|
|
+ logger.info('update_event_access_token')
|
|
|
+ logger.info(event_token)
|
|
|
+ AlexaAuthModel.objects.create(
|
|
|
+ userID = userID,
|
|
|
+ access_token = event_access_token,
|
|
|
+ refresh_token = event_refresh_token,
|
|
|
+ token = event_token,
|
|
|
+ expiresTime = event_expiresTime,
|
|
|
+ addTime = event_addTime,
|
|
|
+ updTime = event_updTime,
|
|
|
+ alexa_region = event_alexa_region,
|
|
|
+ )
|
|
|
+
|
|
|
+ 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)
|
|
|
+ res_json = res.json()
|
|
|
+
|
|
|
+ # 添加测试服务器测试
|
|
|
+ if res_json['result_code'] == 104:
|
|
|
+ auth_request_url = '{SERVER_PREFIX}/oalexa/discoveryuid'.format(SERVER_PREFIX=SERVER_PREFIX_TEST)
|
|
|
res = requests.post(url=auth_request_url, data=requests_data)
|
|
|
res_json = res.json()
|
|
|
- print(res_json)
|
|
|
-
|
|
|
|
|
|
- logger.info('开始打印---------------------------')
|
|
|
- logger.info(userID)
|
|
|
- logger.info(res_json)
|
|
|
+ logger.info('请求服务器url: {}'.format(auth_request_url))
|
|
|
+ logger.info(res_json)
|
|
|
|
|
|
- if res_json['result_code'] == 0:
|
|
|
- uid_arr = res_json['result']['uid_arr']
|
|
|
- rtko = tkObject(rank=1)
|
|
|
- now_time = int(time.time())
|
|
|
- user_qs.uid_rtsp.clear()
|
|
|
- res_json = []
|
|
|
- uid_rtsp_id_list = []
|
|
|
- for uid_a in uid_arr:
|
|
|
- uid = uid_a['uid']
|
|
|
- if uid_a['region'] == 'CN':
|
|
|
- region = 'CN'
|
|
|
- else:
|
|
|
- region = 'EN'
|
|
|
- rtsp_url = rtko.encrypt(data=uid)
|
|
|
- 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,
|
|
|
- region=region)
|
|
|
- else:
|
|
|
- # if uid_rtsp_qs.password != uid_a['password']:
|
|
|
- uid_rtsp_qs.password = uid_a['password']
|
|
|
- uid_rtsp_qs.nick = uid_a['nick']
|
|
|
- uid_rtsp_qs.region = region
|
|
|
- uid_rtsp_qs.save()
|
|
|
- uid_rtsp_id_list.append(uid_rtsp_qs.id)
|
|
|
- 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': app_name,
|
|
|
- 'manufacturerId': 'zosi-ACCC8E5E7513',
|
|
|
- 'modelName': 'P1425-LE',
|
|
|
- 'friendlyName': uid_a['nick'],
|
|
|
- 'description': 'Camera connected via {}'.format(app_name),
|
|
|
- 'resolutions': [{'width': 1280, 'height': 720}],
|
|
|
- 'videoCodecs': ['H264'],
|
|
|
- 'audioCodecs': ['ACC'],
|
|
|
- 'protocols': ['RTSP'],
|
|
|
- 'authorizationTypes': ['NONE'],
|
|
|
- 'uri': rtsp_uri
|
|
|
- }
|
|
|
- res_json.append(ur_data)
|
|
|
- print(uid_rtsp_id_list)
|
|
|
- user_qs.uid_rtsp.add(*uid_rtsp_id_list)
|
|
|
- logger.info('________________471')
|
|
|
- logger.info(res_json)
|
|
|
- return JsonResponse(res_json, safe=False)
|
|
|
+ if res_json['result_code'] != 0:
|
|
|
+ return response.json(0, res={'msg': 'error'})
|
|
|
+
|
|
|
+ uid_arr = res_json['result']['uid_arr']
|
|
|
+ rtko = tkObject(rank=1)
|
|
|
+ now_time = int(time.time())
|
|
|
+ user_qs.uid_rtsp.clear()
|
|
|
+ res_json = []
|
|
|
+ uid_rtsp_id_list = []
|
|
|
+ for uid_a in uid_arr:
|
|
|
+ uid = uid_a['uid']
|
|
|
+ if uid_a['region'] == 'CN':
|
|
|
+ region = 'CN'
|
|
|
+ else:
|
|
|
+ region = 'EN'
|
|
|
+ rtsp_url = rtko.encrypt(data=uid)
|
|
|
+ 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,
|
|
|
+ region=region)
|
|
|
else:
|
|
|
- return response.json(0, res={'msg': 'error'})
|
|
|
+ uid_rtsp_qs.password = uid_a['password']
|
|
|
+ uid_rtsp_qs.nick = uid_a['nick']
|
|
|
+ uid_rtsp_qs.region = region
|
|
|
+ uid_rtsp_qs.save()
|
|
|
+ uid_rtsp_id_list.append(uid_rtsp_qs.id)
|
|
|
+ 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': app_name,
|
|
|
+ 'manufacturerId': 'zosi-ACCC8E5E7513',
|
|
|
+ 'modelName': 'P1425-LE',
|
|
|
+ 'friendlyName': uid_a['nick'],
|
|
|
+ 'description': 'Camera connected via {}'.format(app_name),
|
|
|
+ 'resolutions': [{'width': 1280, 'height': 720}],
|
|
|
+ 'videoCodecs': ['H264'],
|
|
|
+ 'audioCodecs': ['ACC'],
|
|
|
+ 'protocols': ['RTSP'],
|
|
|
+ 'authorizationTypes': ['NONE'],
|
|
|
+ 'uri': rtsp_uri
|
|
|
+ }
|
|
|
+ res_json.append(ur_data)
|
|
|
+ user_qs.uid_rtsp.add(*uid_rtsp_id_list)
|
|
|
+ logger.info('________________471')
|
|
|
+ logger.info(res_json)
|
|
|
+ return JsonResponse(res_json, safe=False)
|
|
|
|
|
|
#新增
|
|
|
def testRunSendStop(request):
|