56 lines
2.1 KiB
Python
56 lines
2.1 KiB
Python
from server import PromptServer
|
|
from aiohttp import web
|
|
import asyncio
|
|
import json
|
|
import os
|
|
|
|
class ComfyUXServer:
|
|
def __init__(self):
|
|
self.base_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
|
self.nodesearch_files_path = os.path.join(self.base_dir, 'WebExtension', 'userdata', 'nodesearch.json')
|
|
|
|
# 动态添加 GET 和 POST 路由
|
|
# 需要改为comfyux开头,避免冲突
|
|
self.add_route('GET', '/comfyux_get_nodesearch_files', self.get_nodesearch_files)
|
|
# self.add_route('GET', '/open_file', self.open_file)
|
|
# self.add_route('POST', '/store_recent_files', self.store_recent_files)
|
|
print('😊ComfyUXServer setup')
|
|
|
|
def add_route(self, method, path, handler):
|
|
if method == 'GET':
|
|
PromptServer.instance.app.router.add_get(path, handler)
|
|
elif method == 'POST':
|
|
PromptServer.instance.app.router.add_post(path, handler)
|
|
|
|
async def get_nodesearch_files(self, request):
|
|
try:
|
|
with open(self.nodesearch_files_path, 'r') as f:
|
|
data = json.load(f)
|
|
return web.json_response(data)
|
|
except FileNotFoundError:
|
|
return web.json_response([], status=404)
|
|
|
|
# async def open_file(self, request):
|
|
# try:
|
|
# workflow_name = request.rel_url.query.get('workflow_name')
|
|
# if not workflow_name:
|
|
# return web.json_response({'error': 'workflow_name is required'}, status=400)
|
|
|
|
# with open(workflow_name, 'r') as f:
|
|
# data = json.load(f)
|
|
# return web.json_response(data)
|
|
# except FileNotFoundError:
|
|
# return web.json_response({'error': 'File not found'}, status=404)
|
|
|
|
# async def store_recent_files(self, request):
|
|
# try:
|
|
# data = await request.json()
|
|
# with open(self.recent_files_path, 'w') as f:
|
|
# json.dump(data, f, indent=4)
|
|
# return web.json_response({'status': 'success'})
|
|
# except json.JSONDecodeError:
|
|
# return web.json_response({'status': 'error', 'message': 'Invalid JSON data'}, status=400)
|
|
|
|
|
|
|