| import json |
| import os |
| import logging |
|
|
| logging.basicConfig(level=logging.WARNING) |
|
|
| def _load_metadata(): |
| metadata = {} |
| project_root = os.path.join(os.path.dirname(__file__), '..') |
|
|
| |
| primary_path = os.path.join(project_root, 'data', 'metadata.json') |
| |
| legacy_path = os.path.join(project_root, 'app', 'backend', 'data', 'metadata.json') |
|
|
| json_path = primary_path if os.path.isfile(primary_path) else legacy_path |
|
|
| try: |
| with open(json_path, 'r') as jsonfile: |
| metadata_list = json.load(jsonfile) |
| for item in metadata_list: |
| metadata[item['file_name']] = item['prompt'] |
| except FileNotFoundError: |
| logging.warning(f"Metadata file not found at {primary_path} or {legacy_path}") |
| except Exception as e: |
| logging.warning(f"Error loading metadata: {e}") |
| |
| return metadata |
|
|
| def get_custom_metadata(info, audio): |
| metadata = _load_metadata() |
| actual_filename = info.get("filename") or os.path.basename(info["relpath"]) |
| if actual_filename in metadata: |
| prompt = metadata[actual_filename] |
| else: |
| logging.warning( |
| f"Filename {actual_filename} not found in metadata JSON. Using empty prompt.") |
| prompt = "" |
| return {"prompt": prompt} |