Fix: download, detail, diagram workflows dir resove failed

This commit is contained in:
evan
2025-08-06 12:33:49 +08:00
parent a3be448758
commit 64f9f86f87
4 changed files with 21 additions and 8229 deletions

View File

@@ -204,9 +204,13 @@ async def get_workflow_detail(filename: str):
workflow_meta = workflows[0]
# file_path = Path(__file__).parent / "workflows" / workflow_meta.name / filename
# print(f"当前工作目录: {workflow_meta}")
# Load raw JSON from file
file_path = os.path.join("workflows", filename)
if not os.path.exists(file_path):
workflows_path = Path('workflows')
json_files = list(workflows_path.rglob("*.json"))
file_path = [f for f in json_files if f.name == filename][0]
if not file_path.exists():
print(f"Warning: File {file_path} not found on filesystem but exists in database")
raise HTTPException(status_code=404, detail=f"Workflow file '{filename}' not found on filesystem")
@@ -226,7 +230,9 @@ async def get_workflow_detail(filename: str):
async def download_workflow(filename: str):
"""Download workflow JSON file."""
try:
file_path = os.path.join("workflows", filename)
workflows_path = Path('workflows')
json_files = list(workflows_path.rglob("*.json"))
file_path = [f for f in json_files if f.name == filename][0]
if not os.path.exists(file_path):
print(f"Warning: Download requested for missing file: {file_path}")
raise HTTPException(status_code=404, detail=f"Workflow file '{filename}' not found on filesystem")
@@ -246,8 +252,11 @@ async def download_workflow(filename: str):
async def get_workflow_diagram(filename: str):
"""Get Mermaid diagram code for workflow visualization."""
try:
file_path = os.path.join("workflows", filename)
if not os.path.exists(file_path):
workflows_path = Path('workflows')
json_files = list(workflows_path.rglob("*.json"))
file_path = [f for f in json_files if f.name == filename][0]
print(f'{file_path}')
if not file_path.exists():
print(f"Warning: Diagram requested for missing file: {file_path}")
raise HTTPException(status_code=404, detail=f"Workflow file '{filename}' not found on filesystem")

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,3 @@
[
"Uncategorized"
]

View File

@@ -434,8 +434,9 @@ class WorkflowDatabase:
if not os.path.exists(self.workflows_dir):
print(f"Warning: Workflows directory '{self.workflows_dir}' not found.")
return {'processed': 0, 'skipped': 0, 'errors': 0}
json_files = glob.glob(os.path.join(self.workflows_dir, "*.json"))
workflows_path = Path(self.workflows_dir)
json_files = list(workflows_path.rglob("*.json"))
# json_files = glob.glob(os.path.join(self.workflows_dir, "*.json"), recursive=True)
if not json_files:
print(f"Warning: No JSON files found in '{self.workflows_dir}' directory.")