@@ -1250,8 +1250,8 @@ async def handle_reset_traffic_confirm(query, config_name: str, peer_index: int,
12501250 total_data = format_bytes_human (total_receive + total_sent )
12511251
12521252 # Escapar caracteres para evitar problemas
1253- peer_name_safe = peer_name
1254- config_name_safe = config_name
1253+ peer_name_safe = escape_markdown ( peer_name )
1254+ config_name_safe = escape_markdown ( config_name )
12551255 public_key_short_safe = public_key [:30 ] + "..."
12561256
12571257 message = f"β οΈ *{ t (user_id , 'traffic.confirm' )} *\n \n "
@@ -1333,8 +1333,8 @@ async def handle_reset_traffic_final(query, context: CallbackContext, config_nam
13331333
13341334 if result .get ("status" ):
13351335 # Variables para el mensaje
1336- peer_name_safe = peer_name
1337- config_name_safe = config_name
1336+ peer_name_safe = escape_markdown ( peer_name )
1337+ config_name_safe = escape_markdown ( config_name )
13381338
13391339 await query .edit_message_text (
13401340 t (user_id , "success.data_reset" , peer_name = peer_name_safe , config_name = config_name_safe ),
@@ -1345,7 +1345,7 @@ async def handle_reset_traffic_final(query, context: CallbackContext, config_nam
13451345 parse_mode = "Markdown"
13461346 )
13471347 else :
1348- error_msg = result .get ('message' , 'Error desconocido' )
1348+ error_msg = escape_markdown ( result .get ('message' , 'Error desconocido' ) )
13491349 await query .edit_message_text (
13501350 f"β *{ t (user_id , 'errors.api_error' , message = error_msg )} *\n \n "
13511351 f"*Endpoint usado:* /resetPeerData/{ config_name } \n "
@@ -1978,6 +1978,10 @@ async def handle_delete_peer_confirm(query, config_name: str, peer_index: str):
19781978 peer_key = peer .get ('id' , '' )
19791979 peer_name = peer .get ('name' , 'Sin nombre' )
19801980
1981+ # Escapar nombre para Markdown
1982+ peer_name = escape_markdown (peer_name )
1983+ config_name = escape_markdown (config_name )
1984+
19811985 if not peer_key :
19821986 await query .edit_message_text (
19831987 t (user_id , "errors.no_public_key" ),
@@ -2693,6 +2697,9 @@ async def handle_delete_schedule_job_confirm(query, context: CallbackContext, co
26932697
26942698 peer = peers [idx ]
26952699 peer_name = peer .get ('name' , 'Desconocido' )
2700+ # Escapar caracteres
2701+ peer_name = escape_markdown (peer_name )
2702+ config_name = escape_markdown (config_name )
26962703 jobs = peer .get ('jobs' , [])
26972704
26982705 if not jobs :
@@ -3099,6 +3106,8 @@ async def handle_operators_list(query, context: CallbackContext):
30993106 if match :
31003107 op_num = match .group (1 )
31013108 user_name = t (user_id , "operators.operator_name" , number = op_num )
3109+
3110+ user_name = escape_markdown (user_name )
31023111
31033112 # Obtener peers creados por este operador
31043113 user_peers = operators_db .get_user_peers (uid )
@@ -3125,8 +3134,10 @@ async def handle_operators_list(query, context: CallbackContext):
31253134 except :
31263135 last_created_str = t (user_id , "errors.unknown_date" )
31273136
3128- message_lines .append (f" { t (user_id , 'operators.last_peer' , name = last_peer .get ('peer_name' ), date = last_created_str )} " )
3129- message_lines .append (f" { t (user_id , 'operators.config' , name = last_peer .get ('config_name' ))} " )
3137+ peer_name = escape_markdown (last_peer .get ('peer_name' , '' ))
3138+ config_name = escape_markdown (last_peer .get ('config_name' , '' ))
3139+ message_lines .append (f" { t (user_id , 'operators.last_peer' , name = peer_name , date = last_created_str )} " )
3140+ message_lines .append (f" { t (user_id , 'operators.config' , name = config_name )} " )
31303141
31313142 # Mostrar endpoint si estΓ‘ disponible
31323143 endpoint = last_peer .get ('endpoint' )
@@ -3876,6 +3887,8 @@ async def handle_operators_detailed(query, context: CallbackContext):
38763887 op_num = match .group (1 )
38773888 user_name = t (user_id , "operators.operator_name" , number = op_num )
38783889
3890+ user_name = escape_markdown (user_name )
3891+
38793892 user_peers = operators_db .get_user_peers (uid )
38803893
38813894 message_lines .append (f"\n **{ user_name } ** (ID: `{ uid } `) " )
@@ -3886,8 +3899,8 @@ async def handle_operators_detailed(query, context: CallbackContext):
38863899 user_peers .sort (key = lambda x : x .get ('created_at' , '' ), reverse = True )
38873900
38883901 for i , peer in enumerate (user_peers [:5 ], 1 ): # Mostrar mΓ‘ximo 5 peers por operador
3889- peer_name = peer .get ('peer_name' , 'Sin nombre' )
3890- config_name = peer .get ('config_name' , 'N/A' )
3902+ peer_name = escape_markdown ( peer .get ('peer_name' , 'Sin nombre' ) )
3903+ config_name = escape_markdown ( peer .get ('config_name' , 'N/A' ) )
38913904 created_at = peer .get ('created_at' , '' )
38923905 public_key = peer .get ('public_key' , '' )
38933906 public_key_short = public_key [:20 ] + '...' if public_key else 'N/A'
@@ -3936,6 +3949,7 @@ async def handle_operators_detailed(query, context: CallbackContext):
39363949 except :
39373950 latest_date_str = t (user_id , "errors.unknown_date" )
39383951
3952+ latest_peer_name = escape_markdown (latest_peer_name )
39393953 message_lines .append (t (user_id , "operators.latest_created_by" , peer = latest_peer_name , operator = latest_operator_id , date = latest_date_str ))
39403954
39413955 message = "\n " .join (message_lines )
0 commit comments