import sys TARGET_FILE = r"C:\Users\joao.goncalves\Desktop\zabbix-itguys\templates_gold\windows_active_agent\template_windows_gold_ptbr.yaml" # Tuple of (Broken String, Fixed String) # Using raw strings for safety REPAIRS = [ ( r"""description: "⚠️ A velocidade da interface caiu (Ex: 1Gb -> 100Mb).\n\n📉 Impacto: Lentidão na transferência de dados.\n🛠️ Ação: 1. Verifique a categoria do cabo (Cat5e/Cat6). 2. Verifique configurações de Duplex/Speed no switch e servidor.\"""", r"""description: "⚠️ A velocidade da interface caiu (Ex: 1Gb -> 100Mb).\n\n📉 Impacto: Lentidão na transferência de dados.\n🛠️ Ação: 1. Verifique a categoria do cabo (Cat5e/Cat6). 2. Verifique configurações de Duplex/Speed no switch e servidor."""" ), ( r"""description: "⚠️ Uso de banda elevado.\n\n📉 Impacto: A interface atingiu o limite de tráfego. O acesso ao servidor ficará lento e pacotes podem ser descartados.\n🛠️ Ação: 1. Identifique qual processo/usuário está consumindo banda. 2. Avalie necessidade de upgrade de link.\"""", r"""description: "⚠️ Uso de banda elevado.\n\n📉 Impacto: A interface atingiu o limite de tráfego. O acesso ao servidor ficará lento e pacotes podem ser descartados.\n🛠️ Ação: 1. Identifique qual processo/usuário está consumindo banda. 2. Avalie necessidade de upgrade de link."""" ), ( r"""description: "⚠️ Erros de transmissão detectados.\n\n📉 Impacto: Perda de pacotes, retransmissões e lentidão.\n🛠️ Ação: 1. Substitua o cabo de rede. 2. Teste outra porta no switch.\"""", r"""description: "⚠️ Erros de transmissão detectados.\n\n📉 Impacto: Perda de pacotes, retransmissões e lentidão.\n🛠️ Ação: 1. Substitua o cabo de rede. 2. Teste outra porta no switch."""" ) ] def fix_file(): print(f"Reading {TARGET_FILE}...") try: with open(TARGET_FILE, 'r', encoding='utf-8') as f: content = f.read() except Exception as e: print(f"Error reading: {e}") return fixed_count = 0 for broken, fixed in REPAIRS: # Check if broken version exists # Normalize line endings just in case? Content mostly has \n if broken in content: print("Found broken block. Fixing...") content = content.replace(broken, fixed) fixed_count += 1 else: print("Broken block not found (maybe already fixed or whitespace mismatch).") # print(f"Looking for:\n{broken!r}") if fixed_count > 0: try: with open(TARGET_FILE, 'w', encoding='utf-8') as f: f.write(content) print(f"Saved fixed file. Fixed {fixed_count} blocks.") except Exception as e: print(f"Error writing: {e}") else: print("No repairs needed.") if __name__ == "__main__": fix_file()