import os import requests import json from flask import Flask,request,redirect from flask_cors import CORS app = Flask(__name__,static_folder="static") CORS(app, resources=r'/*') # current_path current_path = os.getcwd() # 1.小程序打包 # def build_mini_program(): # command_str = ( # "git clone https://git.yishihui.com/weapp/longVideoFactory.git;" # "cd longVideoFactory;" # "git pull;" # "git checkout dev;" # "git pull;" # "n 8;" # "cnpm install && npm install ;" # "npm run build && npm run build:other;" # ) # if os.system(command_str) == 0: # print("1.打包成功") # # create_preview() # else: # print("1.打包失败") # # 2.微信编译图片 # def create_preview(): # # 小程序 cli path for mac # wx_cli ="/Applications/wechatwebdevtools.app/Contents/MacOS/cli" # dist_path = os.path.join(current_path,'longVideoFactory/dist/vlog') # code_img_path = os.path.join(current_path,'1.png') # f_read = os.popen(wx_cli+" preview --project "+dist_path+" --qr-output "+code_img_path+" --qr-format image").read() # if "[error]" in f_read: # print(f_read) # else: # print("2.微信小程序编译成功") # # create_preview() # # https://open.feishu.cn/open-apis/bot/v2/hook/a924b6a5-86ef-4c76-a7e4-eb42056f70cc # def upload_img_by_feishu(token): # key = "" # url = "https://open.feishu.cn/open-apis/im/v1/images" # files = { # "image_type":(None,"message"), # "image":('1.png',open(os.path.join(current_path,"1.png"),"rb"),"image/png") # } # headers = { # "Authorization":"Bearer "+token, # } # res = requests.post(url,headers=headers,files=files,verify = False).json() # if res["code"] == 0: # key = res["data"]["image_key"] # else: # print("飞书上传图片失败") # return key # def tenant_access_token_by_feishu(): # token = "" # url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" # params = { # "app_id":"cli_a1ec07458838d00c", # "app_secret":"Ngm0kfaLkZnpM2T2DH7L8cM5hdAqY0hI" # } # res = requests.post(url,data=params,verify = False).json() # if res["code"] == 0: # token = res["tenant_access_token"] # else: # print("获取飞书签名失败") # return token # def send_msg_by_feishu(token,img_key): # # webhook # webhook_url = "https://open.feishu.cn/open-apis/bot/v2/hook/a924b6a5-86ef-4c76-a7e4-eb42056f70cc" # headers = { # "Authorization":"Bearer "+token, # "Content-Type": "application/json;charset=UTF-8" # } # params = { # "msg_type": "post", # "content": { # "post": { # "zh_cn": { # "title": "Vlog小程序预览码", # "content": [ # [ # { # "tag": "img", # "image_key": "img_v2_223c3413-488a-4af6-bd36-6563a9ef185g", # "width": 500, # "height": 500 # } # ]] # } # } # } # } # res = requests.post(webhook_url,headers=headers,data=json.dumps(params),verify = False).json() # if res["StatusCode"] == 0: # print("飞书消息发送成功") # else: # print("飞书消息发送失败") # # ------- 微信打包 ------ # # 1.小程序打包 # # build_mini_program() # # 2.微信编译图片 # # create_preview() # # 3.切换小程序环境 # # -------- 飞书 -------- # # 1.获取签名 # # token = tenant_access_token_by_feishu() # # 2.获取imgKey # # img_key = upload_img_by_feishu(token) # # 3.飞书发送消息 # # send_msg_by_feishu(token,img_key) @app.route('/') def func(): return 'Welcome to auto-mini-program-build-preview server. only can run on MacOS.' # @app.route('/send',methods=['POST']) # def send(): # form_webhook_url = request.form["webrhook_url"] # form_branch = request.form["branch"] # form_name = request.form["name"] # res = {"code":0,"msg":'发送成功'} # res = {"code":1,"msg":''} # return request.form @app.route("/getBranch") def get_branch(): # 查看所有分支 command_str= ( "cd longVideoFactory;" "git branch -a;" ) f_read = os.popen(command_str).read() branch_list = [] for item in f_read.split(): if "->" not in item and "origin/master" not in item and "HEAD" not in item and "*" not in item: branch_list.append(item.replace("remotes/origin/","")) res = {"code":0,"data":branch_list} return res if __name__ == '__main__': app.run(host='0.0.0.0', port=7777, debug=False) # 修改环境文件 def edit_mode_by_file(project,mode): path = os.path.join(current_path,"longVideoFactory/dist/"+project+"/network/volatileConfig.js") file_lines = [] with open(path,"r") as f: for item in f.readlines(): if "export const currentMode" in item: item = "export const currentMode = MODE."+mode+" \n" file_lines.append(item) f.close() with open(path,"w") as f2: f2.writelines(file_lines) f2.close() # edit_mode_by_file("vlog")