主要更新内容: - 优化UI组件(视频播放器、HR访问模态框、岗位信息展示等) - 更新数据文件(简历、岗位、项目案例等) - 添加新的图片资源(面试状态图标等) - 新增AgentPage等页面组件 - 清理旧的备份文件,提升代码库整洁度 - 优化岗位等级和面试状态的数据结构 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
184 lines
5.8 KiB
Python
184 lines
5.8 KiB
Python
#!/usr/bin/env python3
|
||
# -*- coding: utf-8 -*-
|
||
|
||
import re
|
||
from datetime import datetime
|
||
|
||
def create_backup(file_path):
|
||
"""创建备份文件"""
|
||
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||
backup_path = f"{file_path}.backup_{timestamp}"
|
||
with open(file_path, 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
with open(backup_path, 'w', encoding='utf-8') as f:
|
||
f.write(content)
|
||
print(f"已创建备份: {backup_path}")
|
||
return backup_path
|
||
|
||
def find_all_positions_with_modified():
|
||
"""查找所有有modified字段的岗位"""
|
||
file_path = 'src/mocks/resumeInterviewMock.js'
|
||
|
||
with open(file_path, 'r', encoding='utf-8') as f:
|
||
lines = f.readlines()
|
||
|
||
positions_with_modified = []
|
||
for i, line in enumerate(lines):
|
||
if 'modified:' in line and '`' in line:
|
||
# 向上查找最近的position定义
|
||
for j in range(i-1, max(0, i-50), -1):
|
||
if 'position:' in lines[j] and '"' in lines[j]:
|
||
# 提取岗位名称
|
||
match = re.search(r'position:\s*"([^"]+)"', lines[j])
|
||
if match:
|
||
position_name = match.group(1)
|
||
positions_with_modified.append({
|
||
'name': position_name,
|
||
'position_line': j + 1,
|
||
'modified_line': i + 1
|
||
})
|
||
break
|
||
|
||
return positions_with_modified
|
||
|
||
def remove_modified_for_positions():
|
||
"""删除指定岗位的modified字段"""
|
||
file_path = 'src/mocks/resumeInterviewMock.js'
|
||
|
||
# 创建备份
|
||
create_backup(file_path)
|
||
|
||
# 有真实修改版的岗位列表(这些要保留modified)
|
||
real_modified_positions = [
|
||
"会展策划师",
|
||
"会展执行助理",
|
||
"会展讲解员",
|
||
"活动策划师",
|
||
"活动执行",
|
||
"漫展策划师",
|
||
"旅游规划师",
|
||
"旅游计调专员",
|
||
"景区运营专员",
|
||
"文旅运营总监助理"
|
||
]
|
||
|
||
# 读取文件内容
|
||
with open(file_path, 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
|
||
# 查找所有有modified的岗位
|
||
positions = find_all_positions_with_modified()
|
||
|
||
print("\n找到的所有有modified字段的岗位:")
|
||
for pos in positions:
|
||
status = "保留" if pos['name'] in real_modified_positions else "删除"
|
||
print(f" [{status}] {pos['name']} (行 {pos['position_line']} -> {pos['modified_line']})")
|
||
|
||
# 处理每个需要删除modified的岗位
|
||
positions_to_remove = [p for p in positions if p['name'] not in real_modified_positions]
|
||
|
||
# 从后往前处理,避免行号变化影响
|
||
positions_to_remove.sort(key=lambda x: x['modified_line'], reverse=True)
|
||
|
||
lines = content.split('\n')
|
||
|
||
for pos in positions_to_remove:
|
||
print(f"\n处理 {pos['name']}...")
|
||
|
||
# 找到modified字段的起始和结束位置
|
||
modified_line_idx = pos['modified_line'] - 1
|
||
|
||
# 找到modified字段的开始(包括可能的逗号)
|
||
start_idx = modified_line_idx
|
||
# 向前查找逗号
|
||
for i in range(modified_line_idx - 1, max(0, modified_line_idx - 5), -1):
|
||
if ',' in lines[i]:
|
||
start_idx = i
|
||
break
|
||
|
||
# 找到modified字段的结束(找到闭合的反引号)
|
||
end_idx = modified_line_idx
|
||
in_template = False
|
||
for i in range(modified_line_idx, min(len(lines), modified_line_idx + 1000)):
|
||
if '`' in lines[i]:
|
||
if not in_template and 'modified:' in lines[i]:
|
||
in_template = True
|
||
elif in_template:
|
||
end_idx = i
|
||
break
|
||
|
||
# 删除这些行
|
||
print(f" 删除行 {start_idx + 1} 到 {end_idx + 1}")
|
||
del lines[start_idx:end_idx + 1]
|
||
|
||
# 保存文件
|
||
new_content = '\n'.join(lines)
|
||
with open(file_path, 'w', encoding='utf-8') as f:
|
||
f.write(new_content)
|
||
|
||
print(f"\n已删除 {len(positions_to_remove)} 个岗位的modified字段")
|
||
|
||
def verify_final_state():
|
||
"""验证最终状态"""
|
||
positions = find_all_positions_with_modified()
|
||
|
||
print("\n" + "=" * 50)
|
||
print("最终验证结果:")
|
||
print(f"还有modified字段的岗位(共{len(positions)}个):")
|
||
|
||
real_modified_positions = [
|
||
"会展策划师",
|
||
"会展执行助理",
|
||
"会展讲解员",
|
||
"活动策划师",
|
||
"活动执行",
|
||
"漫展策划师",
|
||
"旅游规划师",
|
||
"旅游计调专员",
|
||
"景区运营专员",
|
||
"文旅运营总监助理"
|
||
]
|
||
|
||
# 分类显示
|
||
correct = []
|
||
incorrect = []
|
||
|
||
for pos in positions:
|
||
if pos['name'] in real_modified_positions:
|
||
correct.append(pos['name'])
|
||
else:
|
||
incorrect.append(pos['name'])
|
||
|
||
if correct:
|
||
print("\n✓ 正确保留的岗位:")
|
||
for name in correct:
|
||
print(f" - {name}")
|
||
|
||
if incorrect:
|
||
print("\n✗ 不应该有modified的岗位(需要手动处理):")
|
||
for name in incorrect:
|
||
print(f" - {name}")
|
||
|
||
# 检查是否有遗漏
|
||
missing = []
|
||
for name in real_modified_positions:
|
||
if name not in [p['name'] for p in positions]:
|
||
missing.append(name)
|
||
|
||
if missing:
|
||
print("\n⚠️ 应该有modified但没找到的岗位:")
|
||
for name in missing:
|
||
print(f" - {name}")
|
||
|
||
def main():
|
||
print("开始处理没有真实修改版的岗位...")
|
||
print("=" * 50)
|
||
|
||
# 删除假的修改版
|
||
remove_modified_for_positions()
|
||
|
||
# 验证结果
|
||
verify_final_state()
|
||
|
||
if __name__ == "__main__":
|
||
main() |