#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 为视觉设计岗位添加个人修改版简历数据 """ import json import os import re import shutil from datetime import datetime def read_markdown_file(file_path): """读取markdown文件内容""" try: with open(file_path, 'r', encoding='utf-8') as f: return f.read() except Exception as e: print(f"读取文件失败 {file_path}: {e}") return None def add_modified_resume_data(): """为指定岗位添加修改版简历数据""" # 修改版简历文件映射 modified_resume_files = { "UI设计师": "网页未导入数据/视觉设计产业/视觉设计修改版简历/UI设计师.md", "包装设计师": "网页未导入数据/视觉设计产业/视觉设计修改版简历/包装设计师.md", "摄影师": "网页未导入数据/视觉设计产业/视觉设计修改版简历/摄影师.md", "角色原画师": "网页未导入数据/视觉设计产业/视觉设计修改版简历/角色原画师.md", "影视灯光": "网页未导入数据/视觉设计产业/视觉设计修改版简历/影视灯光.md", "摄影美术指导助理": "网页未导入数据/视觉设计产业/视觉设计修改版简历/摄影美术指导助理.md", "品牌视觉内容策划": "网页未导入数据/视觉设计产业/视觉设计修改版简历/品牌视觉内容策划.md", "影视摄像": "网页未导入数据/视觉设计产业/视觉设计修改版简历/影视摄像.md", "AI绘画师": "网页未导入数据/视觉设计产业/视觉设计修改版简历/AI绘画师.md", "CG总监助理": "网页未导入数据/视觉设计产业/视觉设计修改版简历/CG总监助理.md" } file_path = "src/mocks/resumeInterviewMock.js" # 创建备份 timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") backup_path = f"{file_path}.backup_add_modified_{timestamp}" shutil.copy2(file_path, backup_path) print(f"📦 已创建备份: {backup_path}") try: # 读取JS文件 with open(file_path, 'r', encoding='utf-8') as f: js_content = f.read() print(f"📊 开始处理 {len(modified_resume_files)} 个岗位的修改版简历...") processed_count = 0 # 为每个岗位添加content字段 for position_title, md_file_path in modified_resume_files.items(): print(f"🔍 处理岗位: {position_title}") # 读取修改版简历内容 modified_content = read_markdown_file(md_file_path) if not modified_content: print(f"⚠️ 跳过 {position_title}: 无法读取修改版简历") continue # 查找该岗位在JS文件中的位置 position_pattern = rf'"title":\s*"{re.escape(position_title)}"' position_match = re.search(position_pattern, js_content) if not position_match: print(f"⚠️ 跳过 {position_title}: 在JS文件中未找到") continue # 找到该岗位对象的结束位置(下一个}之前) start_pos = position_match.start() # 向前找到这个岗位对象的开始位置(最近的{) obj_start = js_content.rfind('{', 0, start_pos) if obj_start == -1: print(f"⚠️ 跳过 {position_title}: 无法找到对象开始位置") continue # 向后找到这个岗位对象的结束位置 brace_count = 0 obj_end = obj_start for i in range(obj_start, len(js_content)): if js_content[i] == '{': brace_count += 1 elif js_content[i] == '}': brace_count -= 1 if brace_count == 0: obj_end = i break if obj_end == obj_start: print(f"⚠️ 跳过 {position_title}: 无法找到对象结束位置") continue # 提取原始对象内容 original_obj = js_content[obj_start:obj_end+1] # 检查是否已经有content字段 if '"content"' in original_obj: print(f"⚠️ 跳过 {position_title}: 已存在content字段") continue # 构造content字段(假设原始版本来自现有简历数据) # 这里我们需要从岗位简历数据中提取原始版本 original_resume = f"# 对应岗位:{position_title}\\n\\n# 一、项目经历\\n\\n待补充项目经历内容...\\n\\n# 二、专业技能\\n\\n待补充专业技能内容...\\n\\n# 三、个人总结\\n\\n待补充个人总结内容..." # 转义修改版内容中的引号和换行符 escaped_modified = modified_content.replace('\\', '\\\\').replace('"', '\\"').replace('\n', '\\n') escaped_original = original_resume.replace('\\', '\\\\').replace('"', '\\"').replace('\n', '\\n') # 在对象结束前插入content字段 # 找到最后一个字段(通常是requirements)的结束位置 last_field_end = original_obj.rfind(']') if last_field_end == -1: last_field_end = original_obj.rfind('"') if last_field_end == -1: print(f"⚠️ 跳过 {position_title}: 无法找到插入位置") continue # 构造新的对象内容 content_field = f''', "content": {{ "original": "{escaped_original}", "modified": "{escaped_modified}" }}''' # 插入content字段 new_obj = original_obj[:last_field_end+1] + content_field + original_obj[last_field_end+1:-1] + original_obj[-1] # 替换JS文件中的内容 js_content = js_content[:obj_start] + new_obj + js_content[obj_end+1:] processed_count += 1 print(f"✅ 已处理 {position_title}") # 写入更新后的JS文件 with open(file_path, 'w', encoding='utf-8') as f: f.write(js_content) print(f"📊 处理完成:") print(f" - 总岗位数: {len(modified_resume_files)}") print(f" - 成功处理: {processed_count}") print(f"✅ 已更新 {file_path}") # 验证JS语法 import subprocess try: result = subprocess.run(['node', '-c', file_path], capture_output=True, text=True) if result.returncode == 0: print("✅ JavaScript语法验证通过") else: print(f"❌ JavaScript语法验证失败: {result.stderr}") # 恢复备份 shutil.copy2(backup_path, file_path) print("🔄 已恢复原始文件") except Exception as e: print(f"⚠️ 无法验证JavaScript语法: {e}") except Exception as e: print(f"❌ 处理失败: {e}") # 恢复备份 shutil.copy2(backup_path, file_path) print("🔄 已恢复原始文件") if __name__ == "__main__": print("🚀 开始为视觉设计岗位添加修改版简历数据...") add_modified_resume_data() print("🎉 处理完成!")