Files
jiaowu-test/fix_brackets.py
KQL 1b964b3886 chore: 更新数据文件和组件优化
主要更新内容:
- 优化UI组件(视频播放器、HR访问模态框、岗位信息展示等)
- 更新数据文件(简历、岗位、项目案例等)
- 添加新的图片资源(面试状态图标等)
- 新增AgentPage等页面组件
- 清理旧的备份文件,提升代码库整洁度
- 优化岗位等级和面试状态的数据结构

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 15:55:25 +08:00

138 lines
5.0 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import re
print("开始系统性修复括号匹配问题...")
# 读取文件
with open('src/mocks/resumeInterviewMock.js', 'r', encoding='utf-8') as f:
content = f.read()
# 备份
with open('src/mocks/resumeInterviewMock.js.backup_brackets', 'w', encoding='utf-8') as f:
f.write(content)
print("✅ 已创建备份: resumeInterviewMock.js.backup_brackets")
lines = content.split('\n')
# 分析括号匹配
def check_brackets(start_line, end_line):
"""检查指定范围内的括号匹配"""
bracket_stack = []
for i in range(start_line, min(end_line, len(lines))):
line = lines[i]
# 忽略字符串中的括号
# 简单处理,移除字符串内容
cleaned = re.sub(r'"[^"]*"', '""', line)
cleaned = re.sub(r"'[^']*'", "''", cleaned)
cleaned = re.sub(r'`[^`]*`', '``', cleaned)
for char in cleaned:
if char in '{[(':
bracket_stack.append((char, i))
elif char in '}])':
if not bracket_stack:
print(f"{i+1}行: 多余的关闭括号 '{char}'")
return False
open_bracket, open_line = bracket_stack.pop()
expected = {'(': ')', '[': ']', '{': '}'}
if expected[open_bracket] != char:
print(f"{i+1}行: 括号不匹配 '{open_bracket}'(第{open_line+1}行) vs '{char}'")
return False
if bracket_stack:
for bracket, line_num in bracket_stack:
print(f"{line_num+1}行: 未关闭的括号 '{bracket}'")
return False
return True
# 查找关键位置
print("\n查找关键结构位置...")
industries_start = None
industries_end = None
resumeTemplates_start = None
resumeTemplates_end = None
myResume_start = None
for i, line in enumerate(lines):
if 'const industries = [' in line:
industries_start = i
print(f"industries开始: 第{i+1}")
elif industries_start and not industries_end and line.strip() == '];':
industries_end = i
print(f"industries结束: 第{i+1}")
elif 'const resumeTemplates = {' in line:
resumeTemplates_start = i
print(f"resumeTemplates开始: 第{i+1}")
elif 'const myResume = {' in line:
myResume_start = i
print(f"myResume开始: 第{i+1}")
# resumeTemplates应该在myResume之前结束
if resumeTemplates_start and not resumeTemplates_end:
# 找到resumeTemplates的结束位置
for j in range(myResume_start-1, resumeTemplates_start, -1):
if lines[j].strip() == '};':
resumeTemplates_end = j
print(f"resumeTemplates结束: 第{j+1}")
break
# 检查各部分的括号匹配
print("\n检查industries数组括号匹配:")
if industries_start and industries_end:
if check_brackets(industries_start, industries_end + 1):
print(" ✅ industries数组括号匹配正确")
print("\n检查resumeTemplates对象括号匹配:")
if resumeTemplates_start and resumeTemplates_end:
if not check_brackets(resumeTemplates_start, resumeTemplates_end + 1):
print(" ❌ resumeTemplates对象括号不匹配")
# 尝试修复
print("\n尝试自动修复...")
# 检查第6514-6516行附近的问题
for i in range(6513, min(6517, len(lines))):
print(f"{i+1}行: {lines[i][:60]}")
# 如果第6516行是 "};"这应该是resumeTemplates的结束
if len(lines) > 6515 and lines[6515].strip() == '};':
print(" 找到resumeTemplates结束标记在第6516行")
resumeTemplates_end = 6515
print("\n检查myResume对象括号匹配:")
if myResume_start:
# 找到myResume的结束
myResume_end = None
for i in range(myResume_start + 1, min(myResume_start + 50, len(lines))):
if lines[i].strip() == '};':
myResume_end = i
print(f"myResume结束: 第{i+1}")
break
if myResume_end and check_brackets(myResume_start, myResume_end + 1):
print(" ✅ myResume对象括号匹配正确")
# 验证语法
print("\n验证修复后的语法...")
import subprocess
result = subprocess.run(['node', '-c', 'src/mocks/resumeInterviewMock.js'],
capture_output=True, text=True)
if result.returncode == 0:
print("✅ 语法验证通过!")
else:
print(f"❌ 仍有语法错误:")
# 只显示错误的第一行
error_lines = result.stderr.split('\n')
for line in error_lines[:5]:
print(f" {line}")
# 提取错误行号
match = re.search(r':(\d+)', result.stderr)
if match:
error_line = int(match.group(1))
print(f"\n错误发生在第 {error_line} 行附近:")
for i in range(max(0, error_line-3), min(len(lines), error_line+3)):
prefix = ">>> " if i == error_line-1 else " "
print(f"{prefix}{i+1}: {lines[i][:80]}")