fix: template manager
This commit is contained in:
@@ -119,19 +119,21 @@ class TemplateManager:
|
||||
|
||||
if progress_callback:
|
||||
progress_callback(f"Found {total_templates} potential templates")
|
||||
|
||||
|
||||
for i, template_dir in enumerate(subdirs):
|
||||
template_path = os.path.join(source_folder, template_dir)
|
||||
|
||||
|
||||
if progress_callback:
|
||||
progress_callback(f"Processing template {i+1}/{total_templates}: {template_dir}")
|
||||
|
||||
|
||||
try:
|
||||
template_info = self._import_single_template(template_path, template_dir)
|
||||
if template_info:
|
||||
result['imported_count'] += 1
|
||||
result['imported_templates'].append(template_info)
|
||||
logger.info(f"Successfully imported template: {template_dir}")
|
||||
if progress_callback:
|
||||
progress_callback(f"✅ Successfully imported: {template_dir}")
|
||||
else:
|
||||
result['failed_count'] += 1
|
||||
result['failed_templates'].append({
|
||||
@@ -139,7 +141,9 @@ class TemplateManager:
|
||||
'error': 'No draft_content.json found or invalid template'
|
||||
})
|
||||
logger.warning(f"Failed to import template: {template_dir}")
|
||||
|
||||
if progress_callback:
|
||||
progress_callback(f"❌ Failed to import: {template_dir} (No draft_content.json found)")
|
||||
|
||||
except Exception as e:
|
||||
result['failed_count'] += 1
|
||||
result['failed_templates'].append({
|
||||
@@ -147,15 +151,17 @@ class TemplateManager:
|
||||
'error': str(e)
|
||||
})
|
||||
logger.error(f"Error importing template {template_dir}: {e}")
|
||||
if progress_callback:
|
||||
progress_callback(f"❌ Error importing: {template_dir} ({str(e)})")
|
||||
|
||||
# Save metadata
|
||||
self._save_metadata()
|
||||
|
||||
|
||||
result['msg'] = f"Import completed. Success: {result['imported_count']}, Failed: {result['failed_count']}"
|
||||
logger.info(result['msg'])
|
||||
|
||||
|
||||
if progress_callback:
|
||||
progress_callback(result['msg'])
|
||||
progress_callback(f"🎉 Import completed! Success: {result['imported_count']}, Failed: {result['failed_count']}")
|
||||
|
||||
except Exception as e:
|
||||
result['status'] = False
|
||||
@@ -381,6 +387,37 @@ def main():
|
||||
return
|
||||
|
||||
def progress_callback(message):
|
||||
# Parse progress information from message
|
||||
if "Processing template" in message:
|
||||
# Extract template info from message like "Processing template 1/3: Template_Name"
|
||||
parts = message.split(":")
|
||||
if len(parts) >= 2:
|
||||
template_name = parts[1].strip()
|
||||
# Extract progress numbers
|
||||
if "/" in parts[0]:
|
||||
progress_part = parts[0].split("Processing template")[1].strip()
|
||||
if "/" in progress_part:
|
||||
current, total = progress_part.split("/")
|
||||
try:
|
||||
current_num = int(current.strip())
|
||||
total_num = int(total.strip())
|
||||
progress_percent = (current_num / total_num) * 100
|
||||
|
||||
progress.report(
|
||||
step="import",
|
||||
progress=progress_percent,
|
||||
message=message,
|
||||
details={
|
||||
"current_template": template_name,
|
||||
"total_templates": total_num,
|
||||
"processed_templates": current_num
|
||||
}
|
||||
)
|
||||
return
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
# Default progress step
|
||||
progress.step("import", message)
|
||||
|
||||
result = manager.batch_import_templates(args.source_folder, progress_callback)
|
||||
|
||||
Reference in New Issue
Block a user