#!/usr/bin/env python3 # -*- coding: utf-8 -*- import json import re def fix_syntax(): """修复resumeInterviewMock.js中的语法问题""" # 读取文件 with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f: content = f.read() # 找到resumeTemplates的部分 templates_match = re.search(r'const resumeTemplates = (\{[\s\S]*?\});', content) if not templates_match: print("错误:无法找到resumeTemplates") return False # 提取JSON字符串 templates_json_str = templates_match.group(1) # 尝试解析并修复JSON try: # 先尝试直接解析 templates_data = json.loads(templates_json_str) except json.JSONDecodeError: # 如果失败,尝试修复多行字符串问题 print("检测到JSON解析错误,尝试修复...") # 使用备份文件重新生成 with open('src/mocks/resumeInterviewMock.js.backup_modified_20250919_103451', 'r', encoding='utf-8') as f: backup_content = f.read() # 从备份中提取templates backup_match = re.search(r'const resumeTemplates = (\{[\s\S]*?\});', backup_content) if backup_match: try: templates_data = json.loads(backup_match.group(1)) # 加载修改版简历 import os modified_folder = '网页未导入数据/大健康产业/大健康修改版简历' modified_resumes = {} for filename in os.listdir(modified_folder): if filename.endswith('.md'): position_name = filename.replace('.md', '') filepath = os.path.join(modified_folder, filename) with open(filepath, 'r', encoding='utf-8') as f: content_text = f.read() # 移除第一行的标题(如果有的话) lines = content_text.split('\n') if lines[0].startswith('# '): content_text = '\n'.join(lines[1:]).strip() modified_resumes[position_name] = content_text # 更新modified字段 for group_name, templates in templates_data.items(): for template in templates: position_name = template['position'] # 检查是否有对应的修改版简历 matching_key = None for key in modified_resumes.keys(): if key == position_name or key.replace('助理', '') == position_name or position_name.startswith(key): matching_key = key break if matching_key: # 更新modified字段 template['content']['modified'] = modified_resumes[matching_key] print(f"✅ 更新: {position_name}") except Exception as e: print(f"解析备份文件失败: {e}") return False # 重新构建文件 # 读取原始文件的其他部分 with open('src/mocks/resumeInterviewMock.js.backup_final', 'r', encoding='utf-8') as f: original_content = f.read() # 找到industries的位置 industries_start = original_content.find('const industries = ') industries_end = original_content.find('];', industries_start) + 2 # 找到resumeTemplates的位置 templates_start = original_content.find('const resumeTemplates = ') templates_end = original_content.find('};', templates_start) + 2 # 构建新文件 new_content = original_content[:templates_start] new_content += f'const resumeTemplates = {json.dumps(templates_data, ensure_ascii=False, indent=2)};' new_content += original_content[templates_end:] # 保存文件 with open('src/mocks/resumeInterviewMock.js', 'w', encoding='utf-8') as f: f.write(new_content) print("✅ 文件修复完成") # 验证语法 import subprocess result = subprocess.run( ['node', '-c', 'src/mocks/resumeInterviewMock.js'], capture_output=True, text=True ) if result.returncode == 0: print("✅ 语法检查通过") return True else: print(f"❌ 仍有语法错误:{result.stderr[:200]}") return False def main(): print("修复语法错误...") fix_syntax() if __name__ == "__main__": main()