bale_apk/api/endpoints/apk_tools.py
2021-06-02 11:13:02 +08:00

82 lines
1.7 KiB
Python

# 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