|
@@ -20,6 +20,7 @@ import botocore
|
|
|
from botocore import client
|
|
|
from wsgiref.util import FileWrapper
|
|
|
from zlib import crc32
|
|
|
+from typing import Union
|
|
|
|
|
|
|
|
|
class PcInfo(View):
|
|
@@ -63,7 +64,7 @@ class PcInfo(View):
|
|
|
else:
|
|
|
return response.json(414)
|
|
|
|
|
|
- def getnewversion(self, request_dict, response, ):
|
|
|
+ def getnewversion(self, request_dict, response):
|
|
|
pc_name = request_dict.get('pc_name', None)
|
|
|
bundle_version = request_dict.get('bundle_version', None)
|
|
|
pc_version = request_dict.get('pc_version', None)
|
|
@@ -76,11 +77,15 @@ class PcInfo(View):
|
|
|
if not file:
|
|
|
return response.json(173)
|
|
|
app_list = Pc_Info.objects.filter(pc_name=pc_name, bundle_version=bundle_version, pc_test=pc_test)
|
|
|
- new_version = app_list.order_by('-add_time')[0].pc_version
|
|
|
+ all_version = app_list.values('pc_version')
|
|
|
+ v = []
|
|
|
+ for i in all_version:
|
|
|
+ v.append(i['pc_version'])
|
|
|
+ new_version = max(v)
|
|
|
if pc_version == new_version:
|
|
|
return response.json(10045)
|
|
|
else:
|
|
|
- path = app_list.order_by('-add_time')[0].download_link
|
|
|
+ path = app_list.filter(pc_version=new_version).values('download_link')[0]['download_link']
|
|
|
print('path', path)
|
|
|
aws_s3_guonei = boto3.client(
|
|
|
's3',
|
|
@@ -450,6 +455,26 @@ class PcInfo(View):
|
|
|
else:
|
|
|
return response.json(0)
|
|
|
|
|
|
+def compareVersion(s1: str, s2: str) -> Union[str, int]:
|
|
|
+ i, j = 0, 0
|
|
|
+ while i < len(s1) or j < len(s2):
|
|
|
+ k1 = i
|
|
|
+ while k1 < len(s1) and s1[k1] != '.':
|
|
|
+ k1 += 1
|
|
|
+ k2 = j
|
|
|
+ while k2 < len(s2) and s2[k2] != '.':
|
|
|
+ k2 += 1
|
|
|
+
|
|
|
+ a = int(s1[i:k1]) if i != k1 else 0
|
|
|
+ b = int(s2[j:k2]) if j != k2 else 0
|
|
|
+ if a > b:
|
|
|
+ return s1
|
|
|
+ if a < b:
|
|
|
+ return s2
|
|
|
+ i = k1 + 1
|
|
|
+ j = k2 + 1
|
|
|
+ return 0
|
|
|
+
|
|
|
def getMD5orSHA265(fileName, encryptionType='MD5'):
|
|
|
"""
|
|
|
|