53 lines
2.0 KiB
Python
53 lines
2.0 KiB
Python
#!/usr/bin/env python3
|
||
# Fix UTF-8 double-encoding corruption in sample_selector.py
|
||
|
||
import os
|
||
|
||
file_path = '/mnt/c/ProgramData/Ableton/Live 12 Suite/Resources/MIDI Remote Scripts/AbletonMCP_AI/AbletonMCP_AI/MCP_Server/sample_selector.py'
|
||
|
||
with open(file_path, 'r', encoding='utf-8') as f:
|
||
content = f.read()
|
||
|
||
# Replace corrupted UTF-8 sequences with proper Spanish characters
|
||
# These are double-encoded characters: UTF-8 -> Latin1 -> UTF-8
|
||
corrupted_to_clean = {
|
||
'Selecci': 'Selección',
|
||
'gnero': 'género',
|
||
'Matching armnico': 'Matching armónico',
|
||
'Creaci': 'Creación',
|
||
'batera': 'batería',
|
||
'automtico': 'automático',
|
||
'mltiples': 'múltiples',
|
||
'Validaci': 'Validación',
|
||
'Penalizaci': 'Penalización',
|
||
'Detecci': 'Detección',
|
||
'clculos': 'cálculos',
|
||
'aceleraci': 'aceleración',
|
||
}
|
||
|
||
for corrupted, clean in corrupted_to_clean.items():
|
||
# Find the corrupted pattern and fix it
|
||
# Look for patterns like "SelecciÃÆ'³n" -> "Selección"
|
||
content = content.replace(corrupted + 'ÃÆ'³', clean)
|
||
content = content.replace(corrupted + 'ÃÆ'©', clean.replace('ón', 'én') if 'ón' in clean else clean.replace('ción', 'ción'))
|
||
content = content.replace(corrupted + 'ÃÆ'ÂÂ', clean.replace('ón', 'ín') if 'ón' in clean else clean)
|
||
content = content.replace(corrupted + 'ÃÆ'¡', clean.replace('ón', 'án') if 'ón' in clean else clean)
|
||
content = content.replace(corrupted + 'ÃÆ'º', clean.replace('ón', 'ún') if 'ón' in clean else clean)
|
||
|
||
# Additional direct replacements for common patterns
|
||
direct_replacements = [
|
||
('ÃÆ'³', 'ó'),
|
||
('ÃÆ'©', 'é'),
|
||
('ÃÆ'ÂÂ', 'í'),
|
||
('ÃÆ'¡', 'á'),
|
||
('ÃÆ'º', 'ú'),
|
||
('ÃÆ'ÂÂ', ''),
|
||
]
|
||
|
||
for wrong, right in direct_replacements:
|
||
content = content.replace(wrong, right)
|
||
|
||
with open(file_path, 'w', encoding='utf-8') as f:
|
||
f.write(content)
|
||
|
||
print('UTF-8 corruption fixed successfully') |