|
@@ -56,10 +56,7 @@ from Service.CommonService import CommonService
|
|
|
from Service.ModelService import ModelService
|
|
|
from Object.m3u8generate import PlaylistGenerator
|
|
|
from Model.models import Device_User, Device_Info, UID_Bucket, UID_Preview, UidSetModel, UidPushModel
|
|
|
-from Ansjer.config import PAYPAL_CRD,SERVER_DOMAIN,SERVER_DOMAIN_SSL,PAYPAL_WEB_HOOK_ID
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+from Ansjer.config import PAYPAL_CRD, SERVER_DOMAIN, SERVER_DOMAIN_SSL, PAYPAL_WEB_HOOK_ID
|
|
|
|
|
|
SERVER_DOMAIN = 'http://test.dvema.com/'
|
|
|
ACCESS_KEY = "AKIA2E67UIMD3CYTIWPA"
|
|
@@ -86,7 +83,7 @@ class testView(View):
|
|
|
request.encoding = 'utf-8'
|
|
|
operation = kwargs.get('operation')
|
|
|
response = ResponseObject()
|
|
|
- return response.json(0,request.body)
|
|
|
+ return response.json(0, request.body)
|
|
|
|
|
|
def validation(self, request_dict, request, operation):
|
|
|
response = ResponseObject()
|
|
@@ -97,7 +94,7 @@ class testView(View):
|
|
|
logger = logging.getLogger('info')
|
|
|
logger.info('测试打印')
|
|
|
res = make_password(123456)
|
|
|
- return JsonResponse(status=200, data=res,safe=False)
|
|
|
+ return JsonResponse(status=200, data=res, safe=False)
|
|
|
elif operation == 'testMiddleWare':
|
|
|
a = int('a')
|
|
|
return JsonResponse(status=200, safe=False)
|
|
@@ -126,13 +123,13 @@ class testView(View):
|
|
|
return self.queryInterface(request_dict, userID, response)
|
|
|
elif operation == 'generateToken':
|
|
|
userID = '158943604783713800138000'
|
|
|
- return self.generate_token(request_dict,userID)
|
|
|
+ return self.generate_token(request_dict, userID)
|
|
|
elif operation == 'test_upload_s3':
|
|
|
userID = '158943604783713800138000'
|
|
|
return self.test_upload_s3(request_dict, response)
|
|
|
elif operation == 'rekognition':
|
|
|
userID = '158943604783713800138000'
|
|
|
- return self.testRekognition(request,request_dict)
|
|
|
+ return self.testRekognition(request, request_dict)
|
|
|
elif operation == 'ip':
|
|
|
return self.ip(response)
|
|
|
elif operation == 'configType':
|
|
@@ -141,10 +138,32 @@ class testView(View):
|
|
|
return self.createData(request_dict, response)
|
|
|
elif operation == 'findPaypalOrder':
|
|
|
return self.findPaypalOrder(request_dict, response)
|
|
|
+ elif operation == 'comb':
|
|
|
+ return self.do_comb(request_dict, response)
|
|
|
+ elif operation == 'count_ts':
|
|
|
+ return self.count_ts(request_dict, response)
|
|
|
else:
|
|
|
return 123
|
|
|
|
|
|
- def findPaypalOrder(self,request_dict, response):
|
|
|
+ def do_comb(self, request_dict, response):
|
|
|
+ import itertools
|
|
|
+ list1 = [1, 2, 3, 4]
|
|
|
+ list2 = []
|
|
|
+ for i in range(1, len(list1) + 1):
|
|
|
+ iter = itertools.combinations(list1, i)
|
|
|
+ list2.append(list(iter))
|
|
|
+ list3 = []
|
|
|
+ for list_ in list2:
|
|
|
+ for val in list_:
|
|
|
+ print('-------------list')
|
|
|
+ print(type(val))
|
|
|
+ comb = [str(i) for i in val]
|
|
|
+ comb_int = int("".join(comb))
|
|
|
+ list3.append(comb_int)
|
|
|
+
|
|
|
+ return HttpResponse(json.dumps(list3))
|
|
|
+
|
|
|
+ def findPaypalOrder(self, request_dict, response):
|
|
|
from paypalrestsdk import Order, ResourceNotFound
|
|
|
PAYPAL_CRD = {
|
|
|
"mode": "sandbox", # sandbox or live
|
|
@@ -178,11 +197,9 @@ class testView(View):
|
|
|
# print(related_resources)
|
|
|
# return HttpResponse(sale)
|
|
|
|
|
|
-
|
|
|
-
|
|
|
def createBucket(self):
|
|
|
|
|
|
- #查看桶列表
|
|
|
+ # 查看桶列表
|
|
|
# url = "https://azvod1.s3-ap-northeast-1.amazonaws.com"
|
|
|
# session = Session(ACCESS_KEY, SECRET_KEY)
|
|
|
# s3_client = session.client('s3', endpoint_url=url)
|
|
@@ -193,10 +210,10 @@ class testView(View):
|
|
|
session = Session(ACCESS_KEY, SECRET_KEY)
|
|
|
s3_client = session.client('s3')
|
|
|
|
|
|
- #上传
|
|
|
+ # 上传
|
|
|
# s3_client.put_object(Bucket="azvod1", Key="file/rule.txt", Body=open(r"E:\download\Shadowsocks-4.1.10.0\user-rule.txt", 'rb').read())
|
|
|
|
|
|
- #下载
|
|
|
+ # 下载
|
|
|
resp = s3_client.get_object(Bucket="azvod1", Key="file/rule.txt")
|
|
|
with open('local.txt', 'wb') as f:
|
|
|
f.write(resp['Body'].read())
|
|
@@ -219,7 +236,7 @@ class testView(View):
|
|
|
if uid:
|
|
|
dvqs = dvqs.filter(UID=uid)
|
|
|
# count = dvqs.count()
|
|
|
- #分页
|
|
|
+ # 分页
|
|
|
dvql = dvqs[(page - 1) * line:page * line].values('id', 'userID', 'NickName', 'UID', 'View_Account',
|
|
|
'View_Password', 'ChannelIndex', 'Type', 'isShare',
|
|
|
'primaryUserID', 'primaryMaster', 'data_joined',
|
|
@@ -273,8 +290,7 @@ class testView(View):
|
|
|
data.append(p)
|
|
|
return response.json(0, data)
|
|
|
|
|
|
-
|
|
|
- #获取播放列表
|
|
|
+ # 获取播放列表
|
|
|
def do_test_query_vod_list(self, userID, ip, request_dict, response):
|
|
|
uid = 'GZL2PEFJPLY7W6BG111A'
|
|
|
channel = 2
|
|
@@ -315,7 +331,7 @@ class testView(View):
|
|
|
'sec': 12})
|
|
|
return response.json(0, vod_play_list)
|
|
|
|
|
|
- #生成m3u8列表
|
|
|
+ # 生成m3u8列表
|
|
|
def do_sign_play_m3u8(self, request_dict, response):
|
|
|
uid = 'GZL2PEFJPLY7W6BG111A'
|
|
|
channel = 2
|
|
@@ -653,9 +669,6 @@ class testView(View):
|
|
|
return HttpResponse(json.dumps(res, ensure_ascii=False),
|
|
|
content_type="application/json,charset=utf-8")
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
def do_pay_by_ali(self, request_dict, userID, response):
|
|
|
uid = request_dict.get('uid', None)
|
|
|
rank = request_dict.get('rank', None)
|
|
@@ -755,24 +768,23 @@ class testView(View):
|
|
|
vod_play_list.append({'name': vod['time'], 'sign_url': vod_play_url, 'thumb': thumb, 'sec': vod['sec']})
|
|
|
return response.json(0, vod_play_list)
|
|
|
|
|
|
- def generate_token(self,request_dict,userID):
|
|
|
+ def generate_token(self, request_dict, userID):
|
|
|
# UserIdToken
|
|
|
tko = TokenObject()
|
|
|
- userID = request_dict.get('userID',None)
|
|
|
- username = request_dict.get('username',None)
|
|
|
+ userID = request_dict.get('userID', None)
|
|
|
+ username = request_dict.get('username', None)
|
|
|
res = tko.generate(
|
|
|
data={'userID': userID, 'lang': 'cn', 'user': username, 'm_code': username})
|
|
|
- #uidToken
|
|
|
+ # uidToken
|
|
|
# utko = UidTokenObject()
|
|
|
# res = utko.generate(data={'uid': '4UZSEDP93MJ3X7YB111A','channel': 1})
|
|
|
|
|
|
# from Object.ETkObject import ETkObject
|
|
|
# etkObj = ETkObject(etk='')
|
|
|
# res = etkObj.encrypt("4UZSEDP93MJ3X7YB111A")
|
|
|
- return JsonResponse(status=200, data=res,safe=False)
|
|
|
-
|
|
|
+ return JsonResponse(status=200, data=res, safe=False)
|
|
|
|
|
|
- def test_upload_s3(self,request_dict , response):
|
|
|
+ def test_upload_s3(self, request_dict, response):
|
|
|
aws_s3_guonei = boto3.client(
|
|
|
's3',
|
|
|
aws_access_key_id=AWS_ACCESS_KEY_ID[0],
|
|
@@ -791,8 +803,7 @@ class testView(View):
|
|
|
)
|
|
|
return response.json(0, {'datas': response_url, 'count': 1})
|
|
|
|
|
|
-
|
|
|
- def testRekognition(self,request,request_dict):
|
|
|
+ def testRekognition(self, request, request_dict):
|
|
|
# ip = CommonService.get_ip_address(request)
|
|
|
# ipInfo = CommonService.getIpIpInfo(ip,"CN")
|
|
|
# # print(type(ipInfo))
|
|
@@ -807,15 +818,15 @@ class testView(View):
|
|
|
# client = boto3.client('s3', aws_access_key_id='AKIA2E67UIMD45Y3HL53',aws_secret_access_key='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',region_name='us-east-1')
|
|
|
# exit(request.FILES)
|
|
|
|
|
|
-
|
|
|
files = request.FILES.get('image')
|
|
|
- labels = int(request_dict.get('labels',5))
|
|
|
- minConfidence = int(request_dict.get('minConfidence',99))
|
|
|
+ labels = int(request_dict.get('labels', 5))
|
|
|
+ minConfidence = int(request_dict.get('minConfidence', 99))
|
|
|
if not files:
|
|
|
return HttpResponse('请上传图片!!!!')
|
|
|
- client = boto3.client('rekognition', aws_access_key_id='AKIA2E67UIMD6JD6TN3J',aws_secret_access_key='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',region_name='us-east-1')
|
|
|
+ client = boto3.client('rekognition', aws_access_key_id='AKIA2E67UIMD6JD6TN3J',
|
|
|
+ aws_secret_access_key='6YaziO3aodyNUeaayaF8pK9BxHp/GvbbtdrOAI83', region_name='us-east-1')
|
|
|
# image = open('E:/photo/a615fa40b8c476bab0f6eeb332e62a5a-1000.jpg', "rb")
|
|
|
- response = client.detect_labels(Image={'Bytes':files.read()},MaxLabels=labels,MinConfidence=minConfidence)
|
|
|
+ response = client.detect_labels(Image={'Bytes': files.read()}, MaxLabels=labels, MinConfidence=minConfidence)
|
|
|
# for obj in response['Labels']:
|
|
|
# exit(obj)
|
|
|
# if obj['Name'] == 'Person':
|
|
@@ -839,3 +850,31 @@ class testView(View):
|
|
|
# qs = DeviceLogModel.objects.filter(add_time__lt=filter_date)
|
|
|
DeviceLogModel.objects.create(uid=uid)
|
|
|
return response.json(0)
|
|
|
+
|
|
|
+ def count_ts(self, request_dict, response):
|
|
|
+ year = request_dict.get('year', None)
|
|
|
+ month = request_dict.get('month', None)
|
|
|
+ if not year:
|
|
|
+ year = CommonService.timestamp_to_str(int(time.time()), '%Y')
|
|
|
+ if not month:
|
|
|
+ month = CommonService.timestamp_to_str(int(time.time()), '%m')
|
|
|
+ year = int(year)
|
|
|
+ month = int(month)
|
|
|
+ startTime = CommonService.str_to_timestamp('{year}-{month}'.format(year=year, month=month), '%Y-%m')
|
|
|
+ endTime = CommonService.str_to_timestamp('{year}-{month}'.format(year=year, month=month + 1), '%Y-%m') - 1
|
|
|
+ qsTs = VodHlsModel.objects.filter(time__gte=startTime, time__lte=endTime).values('fg')
|
|
|
+ if not qsTs.exists():
|
|
|
+ return HttpResponse('查无数据')
|
|
|
+ sumTs = 0 # 总ts个数
|
|
|
+ sumSec = 0 # 总秒数
|
|
|
+ for val in qsTs:
|
|
|
+ fg = int(val['fg'])
|
|
|
+ sumTs += fg & 0xf
|
|
|
+ for i in range(15):
|
|
|
+ shift = (i + 1) * 4
|
|
|
+ sumSec += (fg >> shift) & 0xf
|
|
|
+ size = 0
|
|
|
+ return HttpResponse(
|
|
|
+ "{year}年{month}月 </br>上传的TS总数:{sumTs} </br> 总秒数:{sumSec} </br> 总大小:{size}GB (1秒约等150KB计算)".format(year=year, month=month,
|
|
|
+ sumTs=sumTs, sumSec=sumSec,
|
|
|
+ size=size))
|