Browse Source

PC获取最新版本

lhq 4 years ago
parent
commit
ce04650ac0
1 changed files with 28 additions and 3 deletions
  1. 28 3
      Controller/PcInfo.py

+ 28 - 3
Controller/PcInfo.py

@@ -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'):
     """