59 lines
2.1 KiB
Python
59 lines
2.1 KiB
Python
import os
|
|
import re
|
|
|
|
def deep_clean(content):
|
|
# Padrão quádruplo corrompido (ex: ÃÆ’ƒÂ¡ -> á)
|
|
patterns = {
|
|
r'ÃÆ’ƒÂ¡': 'á',
|
|
r'ÃÆ’ƒÂ£': 'ã',
|
|
r'ÃÆ’ƒÂª': 'ê',
|
|
r'ÃÆ’ƒÂ§': 'ç',
|
|
r'ÃÆ’ƒÂ³': 'ó',
|
|
r'ÃÆ’ƒÂÂÂ': 'í',
|
|
r'ÃÆ’ƒÂº': 'ú',
|
|
r'ÃÆ’ƒÂ©': 'é',
|
|
r'ÃÆ’ƒÂ´': 'ô',
|
|
r'ÃÆ’ƒÂ ': 'à',
|
|
r'ÃÆ’ÂÂ§ÃÆ’£': 'çã',
|
|
r'ÃÆ’§': 'ç',
|
|
r'ÃÆ’£': 'ã',
|
|
r'ÃÆ’¡': 'á',
|
|
r'ÂÂÂ': '', # Lixo residual
|
|
r'Æ’': '', # Lixo residual
|
|
r'ÃÆ’': '', # Lixo residual
|
|
}
|
|
|
|
# Rodar as substituições mais complexas primeiro
|
|
for pattern, replacement in patterns.items():
|
|
content = re.sub(pattern, replacement, content)
|
|
|
|
# Limpeza final de caracteres simples se sobrarem
|
|
simple_fixes = {
|
|
'á': 'á', 'ã': 'ã', 'ê': 'ê', 'ç': 'ç', 'ó': 'ó',
|
|
'Ã': 'í', 'ú': 'ú', 'é': 'é', 'ô': 'ô'
|
|
}
|
|
for old, new in simple_fixes.items():
|
|
content = content.replace(old, new)
|
|
|
|
return content
|
|
|
|
def process_file(path):
|
|
try:
|
|
with open(path, 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
|
|
cleaned = deep_clean(content)
|
|
|
|
if cleaned != content:
|
|
print(f"Limpeza profunda: {path}")
|
|
with open(path, 'w', encoding='utf-8') as f:
|
|
f.write(cleaned)
|
|
except Exception as e:
|
|
print(f"Erro em {path}: {e}")
|
|
|
|
if __name__ == "__main__":
|
|
dir_path = r"C:\dev\saveinmed\frontend\src"
|
|
for root, dirs, files in os.walk(dir_path):
|
|
for f in files:
|
|
if f.endswith(('.tsx', '.ts')):
|
|
process_file(os.path.join(root, f))
|