提交暂存

This commit is contained in:
super
2026-03-27 22:00:01 +08:00
5 changed files with 47 additions and 27 deletions

View File

@@ -0,0 +1,18 @@
from queue import Empty
from flask import Blueprint, jsonify
from config import JSON_TASK_QUEUE
communication_bp = Blueprint('communication', __name__)
@communication_bp.route('/api/amazon/del_brand', methods=['GET', 'POST'])
def del_brand():
"""返回队列中的一个元素;队列为空时返回空提示。"""
try:
item = JSON_TASK_QUEUE.get_nowait()
return jsonify({'success': True, 'data': item})
except Empty:
return jsonify({'success': False, 'message': '队列为空', 'data': None})

View File

@@ -5,6 +5,7 @@ STITCH_WORKFLOW_ID = "7608813873483300907"
import os
from dotenv import load_dotenv
from queue import Queue
load_dotenv()
_base_url = os.getenv("base_url","http://159.75.121.33:15124")
@@ -38,11 +39,21 @@ os.environ['OSS_ACCESS_KEY_SECRET'] = accessKeySecret
os.environ['SECRET_KEY'] = "ddffc7c1d02121d9554d7b080b2511b6"
debug = False
version = "1.0.17"
debug = True
version = "1.0.13"
APP_UPDATE_URL = f"{_base_url}/api/version/latest" # 检测更新接口地址,返回 { "file_url": "...", "version": "x.x.x" }
os.environ['APP_VERSION'] = version
os.environ['APP_UPDATE_URL'] = APP_UPDATE_URL
# 队列
JSON_TASK_QUEUE = Queue()

View File

@@ -1,7 +1,7 @@
"""
基于 pywebview 实现的跨平台 UI需先登录方可使用
"""
from config import cache_path,debug,version,JAVA_API_BASE
from config import cache_path,debug,version,JAVA_API_BASE,JSON_TASK_QUEUE
import datetime
import json
import sys
@@ -234,6 +234,19 @@ class WindowAPI:
except Exception as e:
return {'success': False, 'error': str(e)}
def enqueue_json(self, data):
"""保存任务到队列"""
try:
payload = data
if isinstance(data, str):
payload = json.loads(data)
if not isinstance(payload, (dict, list)):
return {'success': False, 'error': '仅支持 JSON 对象或数组'}
JSON_TASK_QUEUE.put(payload)
return {'success': True, 'queue_size': JSON_TASK_QUEUE.qsize()}
except Exception as e:
return {'success': False, 'error': str(e)}
def _select_folder_win32():
"""Windows: 用 ctypes 调用系统文件夹选择对话框,打包成 exe 后也能正常弹窗(不依赖 tkinter"""
try:
@@ -279,24 +292,6 @@ def _select_folder_win32():
return ''
# def _select_folder_tk():
# """使用 tkinter 选择文件夹(在非 Windows 或作为后备)"""
# try:
#
# root = tkinter.Tk()
# root.withdraw()
# root.attributes('-topmost', True)
# path = filedialog.askdirectory(title='选择保存图片的文件夹')
# try:
# root.destroy()
# except Exception:
# pass
# return path if path else ''
# except Exception as e:
# print("tkinter 选择文件夹失败:", e)
# return ''
def _select_folder_tk():
import tkinter as tk
from tkinter import filedialog
@@ -323,10 +318,6 @@ def _select_folder_tk():
def select_folder():
"""弹窗选择文件夹返回路径空字符串表示取消。Windows 打包 exe 时优先用系统 API 避免 tkinter 不弹窗。"""
# if sys.platform == 'win32':
# path = _select_folder_win32()
# if path:
# return path
return _select_folder_tk()
@@ -356,9 +347,9 @@ def main():
)
api = WindowAPI(window)
window.expose(api.close, api.minimize, api.maximize, api.toggle_maximize, generate_images, api.save_image, api.save_image_to_folder, api.select_folder, api.select_brand_xlsx_files, api.select_brand_folder,
api.save_file_from_url, api.save_template_xlsx,api.save_template_zip,api.upload_file_to_java)
api.save_file_from_url, api.save_template_xlsx,api.save_template_zip,api.upload_file_to_java,api.enqueue_json)
webview.start(
debug=False,
debug=True,
storage_path=cache_path,
private_mode=False
)