rmayormartins commited on
Commit
ef94613
·
1 Parent(s): dcffdde
Files changed (1) hide show
  1. app.py +25 -9
app.py CHANGED
@@ -4,6 +4,27 @@ import subprocess
4
  import time
5
  from collections import deque
6
  import shutil
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
 
8
  def check_and_install_java():
9
  """Verifica se Java está instalado e tenta instalar se necessário"""
@@ -802,11 +823,8 @@ public class BattleMain {{
802
  # Atualizar a cada turno
803
  texto = "".join(list(turnos)) + turno_atual
804
 
805
- # Conversão de cores
806
- formatted_texto = texto.replace("\\033[31m", "<span style='color:red;'>")
807
- formatted_texto = formatted_texto.replace("\\033[34m", "<span style='color:blue;'>")
808
- formatted_texto = formatted_texto.replace("\\033[32m", "<span style='color:green;'>")
809
- formatted_texto = formatted_texto.replace("\\033[0m", "</span>")
810
 
811
  # Script de scroll
812
  scroll_js = """
@@ -841,10 +859,8 @@ public class BattleMain {{
841
 
842
  # Ao final, mostrar resultado destacado
843
  if resultado_final:
844
- formatted_saida = saida_completa.replace("\\033[31m", "<span style='color:red;'>")
845
- formatted_saida = formatted_saida.replace("\\033[34m", "<span style='color:blue;'>")
846
- formatted_saida = formatted_saida.replace("\\033[32m", "<span style='color:green;'>")
847
- formatted_saida = formatted_saida.replace("\\033[0m", "</span>")
848
 
849
  vencedor = "Time 1" if "Time 1 venceu" in resultado_final else "Time 2"
850
  cor = "blue" if vencedor == "Time 1" else "red"
 
4
  import time
5
  from collections import deque
6
  import shutil
7
+ import re
8
+
9
+ def format_colors(text):
10
+ """Converte códigos ANSI para HTML de forma robusta"""
11
+ # Substituições específicas antes da limpeza geral
12
+ text = text.replace("\\u001B[31m", "<span style='color:red;'>")
13
+ text = text.replace("\\u001B[34m", "<span style='color:blue;'>")
14
+ text = text.replace("\\u001B[32m", "<span style='color:green;'>")
15
+ text = text.replace("\\u001B[0m", "</span>")
16
+
17
+ # Substituições para códigos que aparecem sem escape
18
+ text = text.replace("[31m", "<span style='color:red;'>")
19
+ text = text.replace("[34m", "<span style='color:blue;'>")
20
+ text = text.replace("[32m", "<span style='color:green;'>")
21
+ text = text.replace("[0m", "</span>")
22
+
23
+ # Padrão para capturar códigos ANSI restantes e removê-los
24
+ ansi_pattern = r'\x1b\[[0-9;]*m'
25
+ text = re.sub(ansi_pattern, '', text)
26
+
27
+ return text
28
 
29
  def check_and_install_java():
30
  """Verifica se Java está instalado e tenta instalar se necessário"""
 
823
  # Atualizar a cada turno
824
  texto = "".join(list(turnos)) + turno_atual
825
 
826
+ # Conversão de cores usando função robusta
827
+ formatted_texto = format_colors(texto)
 
 
 
828
 
829
  # Script de scroll
830
  scroll_js = """
 
859
 
860
  # Ao final, mostrar resultado destacado
861
  if resultado_final:
862
+ # Usar função robusta para formatar cores
863
+ formatted_saida = format_colors(saida_completa)
 
 
864
 
865
  vencedor = "Time 1" if "Time 1 venceu" in resultado_final else "Time 2"
866
  cor = "blue" if vencedor == "Time 1" else "red"