kevin 1 anno fa
parent
commit
7dea11d30d
4 ha cambiato i file con 66 aggiunte e 12 eliminazioni
  1. 20 1
      src/mainPalio-async.py
  2. 20 1
      src/mainPalioSA-async.py
  3. 13 5
      src/taskPalio.py
  4. 13 5
      src/taskPalioSA.py

+ 20 - 1
src/mainPalio-async.py

@@ -1,5 +1,6 @@
 import os
 import traceback
+import base64
 
 from PIL import ImageFile
 from celery.result import AsyncResult
@@ -53,12 +54,14 @@ def build_apk():
         try:
             if 'logo' in request.files:
                 logo = request.files['logo'].read()
+                logo = str(base64.b64encode(logo), encoding='ascii')
                 vprint(type(logo))
             elif 'logo' in request.form:
                 logo = request.form['logo']
                 vprint(type(logo))
             if 'logofloat' in request.files:
                 logo_float = request.files['logofloat'].read()
+                logo_float = str(base64.b64encode(logo_float), encoding='ascii')
                 vprint(type(logo_float))
             elif 'logofloat' in request.form:
                 logo_float = request.form['logofloat']
@@ -66,6 +69,7 @@ def build_apk():
 
             if 'app_name' in request.files:
                 app_name = request.files['app_name'].read()
+                app_name = str(base64.b64encode(app_name), encoding='ascii')
                 vprint(app_name)
             elif 'app_name' in request.form:
                 app_name = request.form['app_name']
@@ -73,6 +77,7 @@ def build_apk():
 
             if 'package_id' in request.files:
                 package_id = request.files['package_id'].read()
+                package_id = str(base64.b64encode(package_id), encoding='ascii')
                 vprint(package_id)
             elif 'package_id' in request.form:
                 package_id = request.form['package_id']
@@ -80,6 +85,7 @@ def build_apk():
 
             if 'acc' in request.files:
                 acc = request.files['acc'].read()
+                acc = str(base64.b64encode(acc), encoding='ascii')
                 vprint(acc)
             elif 'acc' in request.form:
                 acc = request.form['acc']
@@ -87,6 +93,7 @@ def build_apk():
 
             if 'url' in request.files:
                 url = request.files['url'].read()
+                url = str(base64.b64encode(url), encoding='ascii')
                 vprint(url)
             elif 'url' in request.form:
                 url = request.form['url']
@@ -94,6 +101,7 @@ def build_apk():
 
             if 'keystore' in request.files:
                 keystore = request.files['keystore'].read()
+                keystore = str(base64.b64encode(keystore), encoding='ascii')
                 key_exists = True
             elif 'keystore' in request.form:
                 keystore = request.form['keystore']
@@ -101,6 +109,7 @@ def build_apk():
 
             if 'huawei_file' in request.files:
                 huawei_file = request.files['huawei_file'].read()
+                huawei_file = str(base64.b64encode(huawei_file), encoding='ascii')
             elif 'huawei_file' in request.form:
                 huawei_file = request.form['huawei_file']
 
@@ -119,7 +128,7 @@ def build_apk():
             if 'key_password' in request.form:
                 if request.form['key_password']:
                     key["key_password"] = request.form['key_password']
-            if keystore:
+            if not keystore:
                 if 'common_name' in request.form:
                     if request.form['common_name']:
                         key["common_name"] = request.form['common_name']
@@ -146,38 +155,47 @@ def build_apk():
                 tabs.append(request.form["tab4"])
             if 'tab1_icon' in request.files:
                 tab_icon[0] = request.files['tab1_icon'].read()
+                tab_icon[0] = str(base64.b64encode(tab_icon[0]), encoding='ascii')
             elif 'tab1_icon' in request.form:
                 tab_icon[0] = request.form['tab1_icon']
             if 'tab2_icon' in request.files:
                 tab_icon[1] = request.files['tab2_icon'].read()
+                tab_icon[1] = str(base64.b64encode(tab_icon[1]), encoding='ascii')
             elif 'tab2_icon' in request.form:
                 tab_icon[1] = request.form['tab2_icon']
             if 'tab3_icon' in request.files:
                 tab_icon[2] = request.files['tab3_icon'].read()
+                tab_icon[2] = str(base64.b64encode(tab_icon[2]), encoding='ascii')
             elif 'tab3_icon' in request.form:
                 tab_icon[2] = request.form['tab3_icon']
             if 'tab4_icon' in request.files:
                 tab_icon[3] = request.files['tab4_icon'].read()
+                tab_icon[3] = str(base64.b64encode(tab_icon[3]), encoding='ascii')
             elif 'tab4_icon' in request.form:
                 tab_icon[3] = request.form['tab4_icon']
             if 'fb1_icon' in request.files:
                 fb_icon[0] = request.files['fb1_icon'].read()
+                fb_icon[0] = str(base64.b64encode(fb_icon[0]), encoding='ascii')
             elif 'fb1_icon' in request.form:
                 fb_icon[0] = request.form['fb1_icon']
             if 'fb2_icon' in request.files:
                 fb_icon[1] = request.files['fb2_icon'].read()
+                fb_icon[1] = str(base64.b64encode(fb_icon[1]), encoding='ascii')
             elif 'fb2_icon' in request.form:
                 fb_icon[1] = request.form['fb2_icon']
             if 'fb3_icon' in request.files:
                 fb_icon[2] = request.files['fb3_icon'].read()
+                fb_icon[2] = str(base64.b64encode(fb_icon[2]), encoding='ascii')
             elif 'fb3_icon' in request.form:
                 fb_icon[2] = request.form['fb3_icon']
             if 'fb4_icon' in request.files:
                 fb_icon[3] = request.files['fb4_icon'].read()
+                fb_icon[3] = str(base64.b64encode(fb_icon[3]), encoding='ascii')
             elif 'fb4_icon' in request.form:
                 fb_icon[3] = request.form['fb4_icon']
             if 'fb5_icon' in request.files:
                 fb_icon[4] = request.files['fb5_icon'].read()
+                fb_icon[4] = str(base64.b64encode(fb_icon[4]), encoding='ascii')
             elif 'fb5_icon' in request.form:
                 fb_icon[4] = request.form['fb5_icon']
             if 'fb_icon' in request.form:
@@ -194,6 +212,7 @@ def build_apk():
                 font = int(request.form['font'])
             if 'background' in request.files:
                 background = request.files['background'].read()
+                background = str(base64.b64encode(background), encoding='ascii')
             elif 'background' in request.form:
                 background = request.form['background']
             if 'version_code' in request.form:

+ 20 - 1
src/mainPalioSA-async.py

@@ -1,5 +1,6 @@
 import os
 import traceback
+import base64
 
 from PIL import ImageFile
 from celery.result import AsyncResult
@@ -53,12 +54,14 @@ def build_apk():
         try:
             if 'logo' in request.files:
                 logo = request.files['logo'].read()
+                logo = str(base64.b64encode(logo), encoding='ascii')
                 vprint(type(logo))
             elif 'logo' in request.form:
                 logo = request.form['logo']
                 vprint(type(logo))
             if 'logofloat' in request.files:
                 logo_float = request.files['logofloat'].read()
+                logo_float = str(base64.b64encode(logo_float), encoding='ascii')
                 vprint(type(logo_float))
             elif 'logofloat' in request.form:
                 logo_float = request.form['logofloat']
@@ -66,6 +69,7 @@ def build_apk():
 
             if 'app_name' in request.files:
                 app_name = request.files['app_name'].read()
+                app_name = str(base64.b64encode(app_name), encoding='ascii')
                 vprint(app_name)
             elif 'app_name' in request.form:
                 app_name = request.form['app_name']
@@ -73,6 +77,7 @@ def build_apk():
 
             if 'package_id' in request.files:
                 package_id = request.files['package_id'].read()
+                package_id = str(base64.b64encode(package_id), encoding='ascii')
                 vprint(package_id)
             elif 'package_id' in request.form:
                 package_id = request.form['package_id']
@@ -80,6 +85,7 @@ def build_apk():
 
             if 'acc' in request.files:
                 acc = request.files['acc'].read()
+                acc = str(base64.b64encode(acc), encoding='ascii')
                 vprint(acc)
             elif 'acc' in request.form:
                 acc = request.form['acc']
@@ -87,6 +93,7 @@ def build_apk():
 
             if 'url' in request.files:
                 url = request.files['url'].read()
+                url = str(base64.b64encode(url), encoding='ascii')
                 vprint(url)
             elif 'url' in request.form:
                 url = request.form['url']
@@ -94,6 +101,7 @@ def build_apk():
 
             if 'keystore' in request.files:
                 keystore = request.files['keystore'].read()
+                keystore = str(base64.b64encode(keystore), encoding='ascii')
                 key_exists = True
             elif 'keystore' in request.form:
                 keystore = request.form['keystore']
@@ -101,6 +109,7 @@ def build_apk():
 
             if 'huawei_file' in request.files:
                 huawei_file = request.files['huawei_file'].read()
+                huawei_file = str(base64.b64encode(huawei_file), encoding='ascii')
             elif 'huawei_file' in request.form:
                 huawei_file = request.form['huawei_file']
 
@@ -119,7 +128,7 @@ def build_apk():
             if 'key_password' in request.form:
                 if request.form['key_password']:
                     key["key_password"] = request.form['key_password']
-            if keystore:
+            if not keystore:
                 if 'common_name' in request.form:
                     if request.form['common_name']:
                         key["common_name"] = request.form['common_name']
@@ -146,38 +155,47 @@ def build_apk():
                 tabs.append(request.form["tab4"])
             if 'tab1_icon' in request.files:
                 tab_icon[0] = request.files['tab1_icon'].read()
+                tab_icon[0] = str(base64.b64encode(tab_icon[0]), encoding='ascii')
             elif 'tab1_icon' in request.form:
                 tab_icon[0] = request.form['tab1_icon']
             if 'tab2_icon' in request.files:
                 tab_icon[1] = request.files['tab2_icon'].read()
+                tab_icon[1] = str(base64.b64encode(tab_icon[1]), encoding='ascii')
             elif 'tab2_icon' in request.form:
                 tab_icon[1] = request.form['tab2_icon']
             if 'tab3_icon' in request.files:
                 tab_icon[2] = request.files['tab3_icon'].read()
+                tab_icon[2] = str(base64.b64encode(tab_icon[2]), encoding='ascii')
             elif 'tab3_icon' in request.form:
                 tab_icon[2] = request.form['tab3_icon']
             if 'tab4_icon' in request.files:
                 tab_icon[3] = request.files['tab4_icon'].read()
+                tab_icon[3] = str(base64.b64encode(tab_icon[3]), encoding='ascii')
             elif 'tab4_icon' in request.form:
                 tab_icon[3] = request.form['tab4_icon']
             if 'fb1_icon' in request.files:
                 fb_icon[0] = request.files['fb1_icon'].read()
+                fb_icon[0] = str(base64.b64encode(fb_icon[0]), encoding='ascii')
             elif 'fb1_icon' in request.form:
                 fb_icon[0] = request.form['fb1_icon']
             if 'fb2_icon' in request.files:
                 fb_icon[1] = request.files['fb2_icon'].read()
+                fb_icon[1] = str(base64.b64encode(fb_icon[1]), encoding='ascii')
             elif 'fb2_icon' in request.form:
                 fb_icon[1] = request.form['fb2_icon']
             if 'fb3_icon' in request.files:
                 fb_icon[2] = request.files['fb3_icon'].read()
+                fb_icon[2] = str(base64.b64encode(fb_icon[2]), encoding='ascii')
             elif 'fb3_icon' in request.form:
                 fb_icon[2] = request.form['fb3_icon']
             if 'fb4_icon' in request.files:
                 fb_icon[3] = request.files['fb4_icon'].read()
+                fb_icon[3] = str(base64.b64encode(fb_icon[3]), encoding='ascii')
             elif 'fb4_icon' in request.form:
                 fb_icon[3] = request.form['fb4_icon']
             if 'fb5_icon' in request.files:
                 fb_icon[4] = request.files['fb5_icon'].read()
+                fb_icon[4] = str(base64.b64encode(fb_icon[4]), encoding='ascii')
             elif 'fb5_icon' in request.form:
                 fb_icon[4] = request.form['fb5_icon']
             if 'fb_icon' in request.form:
@@ -194,6 +212,7 @@ def build_apk():
                 font = int(request.form['font'])
             if 'background' in request.files:
                 background = request.files['background'].read()
+                background = str(base64.b64encode(background), encoding='ascii')
             elif 'background' in request.form:
                 background = request.form['background']
             if 'version_code' in request.form:

+ 13 - 5
src/taskPalio.py

@@ -4,6 +4,7 @@ import shutil
 import subprocess
 import time
 from zipfile import ZipFile
+import base64
 
 import requests
 from werkzeug.datastructures import FileStorage
@@ -22,6 +23,9 @@ celery = Celery(__name__)
 celery.conf.broker_url = os.environ.get("CELERY_BROKER_URL", "redis://localhost:6379")
 celery.conf.result_backend = os.environ.get("CELERY_RESULT_BACKEND", "redis://localhost:6379")
 celery.conf.task_track_started = True
+celery.conf.task_time_limit = 1200
+# celery.conf.task_serializer = 'pickle'
+# celery.conf.result_serializer = 'pickle'
 
 
 def create_folder(package_id):
@@ -506,7 +510,7 @@ def change_certificate(path_dest, key, keyfile, keytool):
             keyfile.save(keyfile_path)
         else:
             with open(keyfile_path, 'wb') as f:
-                f.write(keyfile)
+                f.write(base64.b64decode(bytes(keyfile, 'ascii')))
     else:
         vprint("keytool run")
         os.chdir(path_dest)
@@ -514,7 +518,7 @@ def change_certificate(path_dest, key, keyfile, keytool):
         dname = "CN={}, OU={}, O={}, L={}, S={}, C={}".format(key["common_name"], key["organization_unit"],
                                                               key["organization_name"], key["locality_name"],
                                                               key["state_name"], key["country"])
-        cmd = [keytool, "-genkey", "-v", "-keystore", keyfile_path, "-alias", key["alias"], "-keyalg", "RSA",
+        cmd = [keytool, "-genkey", "-v", "-storetype", "JKS", "-keystore", keyfile_path, "-alias", key["alias"], "-keyalg", "RSA",
                "-keysize", "2048",
                "-validity", "10000", "-dname", dname, "-storepass", key["store_password"], "-keypass",
                key["key_password"]]
@@ -535,7 +539,11 @@ def change_huawei_file(path_dest, huawei_file, package_id):
     huaweifile_name = "agconnect-services.json"
     huaweifile_path = os.path.join(path_dest, "app/{}".format(huaweifile_name))
     if huawei_file:
-        huawei_file.save(huaweifile_path)
+        if isinstance(huawei_file, FileStorage):
+            huawei_file.save(huaweifile_path)
+        else:
+            with open(huaweifile_path, 'wb') as f:
+                f.write(base64.b64decode(bytes(huawei_file, 'ascii')))
         path_package_id = package_id.replace(".", "/")
         code_path = "app/src/main/java/"
         main_code_path = os.path.join(path_dest, code_path, path_package_id, "MAB.java")
@@ -646,7 +654,7 @@ def deliver_apk(path_dest, package_id, key, key_exists):
         shutil.rmtree(project_path)
         return {"status": "0", "name": zip_name}
     except Exception as e:
-        return {"status": "4", "message": "Deliver APK & AAB failed\n{}".format(e)}
+        return {"status": "4", "message": "Deliver APK & AAB failed"}
 
 
 def change_version(path_dest, version_code, version_name):
@@ -690,4 +698,4 @@ def create_task(package_id, enable_sms, app_name, key, keystore, access_model,
     return_code, error = run_build(path_dest)
     if return_code == 0:
         return deliver_apk(path_dest, package_id, key, key_exists)
-    return {"status": "3", "message": "Build failed\n{}".format(str(error))}
+    return {"status": "3", "message": "Build failed"}

+ 13 - 5
src/taskPalioSA.py

@@ -4,6 +4,7 @@ import shutil
 import subprocess
 import time
 from zipfile import ZipFile
+import base64
 
 import requests
 from werkzeug.datastructures import FileStorage
@@ -22,6 +23,9 @@ celery = Celery(__name__)
 celery.conf.broker_url = os.environ.get("CELERY_BROKER_URL", "redis://localhost:6379")
 celery.conf.result_backend = os.environ.get("CELERY_RESULT_BACKEND", "redis://localhost:6379")
 celery.conf.task_track_started = True
+celery.conf.task_time_limit = 1200
+# celery.conf.task_serializer = 'pickle'
+# celery.conf.result_serializer = 'pickle'
 
 
 def create_folder(package_id):
@@ -489,7 +493,7 @@ def change_certificate(path_dest, key, keyfile, keytool):
             keyfile.save(keyfile_path)
         else:
             with open(keyfile_path, 'wb') as f:
-                f.write(keyfile)
+                f.write(base64.b64decode(bytes(keyfile, 'ascii')))
     else:
         vprint("keytool run")
         os.chdir(path_dest)
@@ -497,7 +501,7 @@ def change_certificate(path_dest, key, keyfile, keytool):
         dname = "CN={}, OU={}, O={}, L={}, S={}, C={}".format(key["common_name"], key["organization_unit"],
                                                               key["organization_name"], key["locality_name"],
                                                               key["state_name"], key["country"])
-        cmd = [keytool, "-genkey", "-v", "-keystore", keyfile_path, "-alias", key["alias"], "-keyalg", "RSA",
+        cmd = [keytool, "-genkey", "-v", "-storetype", "JKS", "-keystore", keyfile_path, "-alias", key["alias"], "-keyalg", "RSA",
                "-keysize", "2048",
                "-validity", "10000", "-dname", dname, "-storepass", key["store_password"], "-keypass",
                key["key_password"]]
@@ -518,7 +522,11 @@ def change_huawei_file(path_dest, huawei_file, package_id):
     huaweifile_name = "agconnect-services.json"
     huaweifile_path = os.path.join(path_dest, "app/{}".format(huaweifile_name))
     if huawei_file:
-        huawei_file.save(huaweifile_path)
+        if isinstance(huawei_file, FileStorage):
+            huawei_file.save(huaweifile_path)
+        else:
+            with open(huaweifile_path, 'wb') as f:
+                f.write(base64.b64decode(bytes(huawei_file, 'ascii')))
         path_package_id = package_id.replace(".", "/")
         code_path = "app/src/main/java/"
         main_code_path = os.path.join(path_dest, code_path, path_package_id, "MAB.java")
@@ -629,7 +637,7 @@ def deliver_apk(path_dest, package_id, key, key_exists):
         #        shutil.rmtree(project_path)
         return {"status": "0", "name": zip_name}
     except Exception as e:
-        return {"status": "4", "message": "Deliver APK & AAB failed\n{}".format(e)}
+        return {"status": "4", "message": "Deliver APK & AAB failed"}
 
 
 def change_version(path_dest, version_code, version_name):
@@ -673,4 +681,4 @@ def create_task(package_id, enable_sms, app_name, key, keystore, access_model,
     return_code, error = run_build(path_dest)
     if return_code == 0:
         return deliver_apk(path_dest, package_id, key, key_exists)
-    return {"status": "3", "message": "Build failed\n{}".format(str(error))}
+    return {"status": "3", "message": "Build failed"}