# coding:utf-8 import json import os import time from fastapi import APIRouter, File, BackgroundTasks import schemas from core.config import settings from utils import * router = APIRouter() # # @router.post("/channel") # async def channel( # data_in: schemas.BaleCreate # ) -> schemas.Msg: # file = os.path.join(settings.ROOT_DIR, 'ApkTool/channel') # with open(file, 'w') as f: # json.dump(data_in.channel, f) # # resp = schemas.Msg( # code=0, # msg='ok', # data=data_in # ) # # return resp @router.post("/keystore") async def keystore( file: bytes = File(...) ) -> schemas.Msg: file_path = os.path.join(settings.ROOT_DIR, 'ApkTool/keystore/legu.keystore') with open(file_path, 'wb') as f: f.write(file) resp = schemas.Msg( code=0, msg='ok', data=file_path ) return resp @router.post("/run") async def run( data_in: schemas.BaleCreate, background_tasks: BackgroundTasks ): r = os.popen('ps -ef|grep MakeTool.py') res = r.readlines() if 'python' in ''.join(res) or bale.status == 'busy': resp = schemas.Msg( code=-1, msg='已存在打包任务,请等待' ) return resp if bale.status == 'upload': resp = schemas.Msg( code=-1, msg='正在上传,请等待' ) return resp file = os.path.join(settings.ROOT_DIR, 'ApkTool/channel') with open(file, 'w') as f: json.dump(data_in.channel, f) background_tasks.add_task(bale.run_bale_apk, f'{data_in.dir}_{int(time.time())}', data_in.id) resp = schemas.Msg( code=0, msg='开始打包任务' ) return resp