123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- import os
- import traceback
- import base64
- from PIL import ImageFile
- from celery.result import AsyncResult
- from flask import Flask, request
- import project_config_SA
- from taskPalioSA import create_task
- ImageFile.SAFEBLOCK = 2048 * 2048
- app = Flask(__name__)
- app.base_project_name = os.path.basename(project_config_SA.base_project)
- def vprint(*data):
- if project_config_SA.verbose:
- print(*data)
- @app.route('/', methods=["GET", "POST"])
- def build_apk():
- vprint('==============================================================')
- if request.method == 'POST':
- logo = None
- logo_float = None
- app_name = "NexilisLite"
- package_id = "com.app.nexilis"
- acc = None
- url = None
- keystore = None
- huawei_file = None
- fms_enable = 1
- use_adblock = 0
- key_exists = False
- # tabs = ["1", "2", "3", "4"]
- fb_order = "1,2,3,4,5"
- tabs = []
- tab3_mode = "0"
- tab_amount = 6
- tab_icon = [None, None, None, None, None, None]
- fb_icon = [None, None, None, None, None]
- background = None
- version_code = "1"
- version_name = "1.0.0"
- font = 0
- enable_sms = 0
- enable_location = 0
- key = {"alias": "nexilislite", "store_password": "allyourbase", "key_password": "allyourbase",
- "common_name": "all", "organization_unit": "your",
- "organization_name": "base", "locality_name": "are", "state_name": "belong", "country": "to"}
- 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']
- vprint(type(logo_float))
- 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']
- vprint(app_name)
- 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']
- vprint(package_id)
- 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']
- vprint(acc)
- 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']
- vprint(url)
- 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']
- key_exists = True
- 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']
- if 'fms_enable' in request.form:
- fms_enable = int(request.form['fms_enable'])
- if 'use_adblock' in request.form:
- use_adblock = int(request.form['use_adblock'])
- if 'alias' in request.form:
- if request.form['alias']:
- key["alias"] = request.form['alias']
- if 'store_password' in request.form:
- if request.form['store_password']:
- key["store_password"] = request.form['store_password']
- if 'key_password' in request.form:
- if request.form['key_password']:
- key["key_password"] = request.form['key_password']
- if not keystore:
- if 'common_name' in request.form:
- if request.form['common_name']:
- key["common_name"] = request.form['common_name']
- if 'organization_unit' in request.form:
- if request.form['organization_unit']:
- key["organization_unit"] = request.form['organization_unit']
- if 'organization_name' in request.form:
- if request.form['organization_name']:
- key["organization_name"] = request.form['organization_name']
- if 'locality_name' in request.form:
- if request.form['locality_name']:
- key["locality_name"] = request.form['locality_name']
- if 'state_name' in request.form:
- if request.form['state_name']:
- key["state_name"] = request.form['state_name']
- if 'country' in request.form:
- if request.form['country']:
- key["country"] = request.form['country']
- tabs.append(request.form["tab1"])
- tabs.append(request.form["tab2"])
- if request.form['tab3']:
- tabs.append(request.form["tab3"])
- if request.form['tab4']:
- 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:
- fb_icon = request.form['fb_icon'].split(",")
- if 'fb_order' in request.form:
- fb_order = request.form['fb_order']
- vprint("fb_icon: {}".format(fb_icon))
- access_model = int(request.form['access_model'])
- if 'tab3_mode' in request.form:
- tab3_mode = request.form['tab3_mode']
- if 'tab_amount' in request.form:
- tab_amount = int(request.form['tab_amount'])
- if 'font' in request.form:
- 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:
- version_code = request.form['version_code']
- if 'version_name' in request.form:
- version_name = request.form['version_name']
- else:
- version_name = "1.0.{}".format(version_code)
- if 'enable_sms' in request.form:
- enable_sms = int(request.form['enable_sms'])
- if 'enable_location' in request.form:
- enable_location = int(request.form['enable_location'])
- except BaseException as e:
- vprint(traceback.format_exc())
- return {"status": "1", "message": "Parameter mismatch\n{}\n".format(str(e))}, 400
- try:
- vprint("package_id: ", type(package_id))
- vprint("enable_sms: ", type(enable_sms))
- vprint("app_name: ", type(app_name))
- vprint("key: ", type(key))
- vprint("keystore: ", type(keystore))
- vprint("access_model: ", type(access_model))
- vprint("version_code: ", type(version_code))
- vprint("version_name: ", type(version_name))
- vprint("enable_location: ", type(enable_location))
- vprint("font: ", type(font))
- vprint("fb_order: ", type(fb_order))
- vprint("tabs: ", type(tabs))
- vprint("tab_icon: ", type(tab_icon))
- vprint("fb_icon: ", type(fb_icon))
- vprint("tab3_mode: ", type(tab3_mode))
- vprint("tab_amount: ", type(tab_amount))
- vprint("huawei_file: ", type(huawei_file))
- vprint("fms_enable: ", type(fms_enable))
- vprint("use_adblock: ", type(use_adblock))
- vprint("key_exists: ", type(key_exists))
- vprint("acc: ", type(acc))
- vprint("logo: ", type(logo))
- vprint("logo_float: ", type(logo_float))
- vprint("background: ", type(background))
- vprint("url: ", type(url))
- task = create_task.delay(package_id, enable_sms, app_name, key, keystore, access_model,
- version_code, version_name, enable_location, font, fb_order, fb_icon, tabs,
- tab_icon, tab3_mode,
- tab_amount, huawei_file, fms_enable, use_adblock, key_exists,
- acc=acc, logo=logo, logo_float=logo_float, background=background, url=url)
- return {"status": "0", "task_id": f"{task.id}"}, 200
- except BaseException as e:
- vprint(traceback.format_exc())
- return {"status": "2", "message": "Process failure\n{}\n".format(str(e))}, 200
- else:
- if 'e' in request.args:
- return request.args['e']
- return "Hello World!"
- @app.route('/task/<task_id>', methods=['GET'])
- def get_task(task_id):
- task_result = AsyncResult(task_id)
- if task_result.state == 'SUCCESS':
- if task_result.result is None:
- return {"status": "2", "message": "Process failure"}, 200
- elif task_result.result['status'] == '0':
- return task_result.result, 200
- else:
- return task_result.result, 200
- elif task_result.state == 'FAILURE':
- return {"status": "2", "message": "Process failure"}, 200
- else:
- return {"status": "5", "message": f"Process is in {task_result.state} state."}, 200
- if __name__ == '__main__':
- app.run(host='0.0.0.0', port=8013, debug=project_config_SA.verbose, ssl_context=project_config_SA.ssl)
|