Explorar el Código

Increment BOT_VERSION to 2.2.136 and enhance InfoCommands with HTML character escaping.

- Updated BOT_VERSION for the upcoming release.
- Added HTML escaping for risk analysis messages to ensure proper formatting and prevent rendering issues.
- Improved message clarity by escaping numerical values in risk analysis outputs.
Carles Sentis hace 2 días
padre
commit
9b89e16adf
Se han modificado 2 ficheros con 15 adiciones y 14 borrados
  1. 14 13
      src/commands/info_commands.py
  2. 1 1
      trading_bot.py

+ 14 - 13
src/commands/info_commands.py

@@ -4,6 +4,7 @@ Info Commands - Handles information-related Telegram commands.
 """
 
 import logging
+import html # Added for escaping HTML characters
 from datetime import datetime, timezone, timedelta
 from typing import Optional, Dict, Any, List
 from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
@@ -1198,15 +1199,15 @@ class InfoCommands:
             # Check if we have enough data for risk calculations
             if basic_stats['completed_trades'] < 2:
                 await context.bot.send_message(chat_id=chat_id, text=
-                    "📊 <b>Risk Analysis</b>\n\n"
-                    "📭 <b>Insufficient Data</b>\n\n"
-                    f"• Current completed trades: {basic_stats['completed_trades']}\n"
-                    f"• Required for risk analysis: 2+ trades\n"
-                    f"• Daily balance snapshots: {stats.get_daily_balance_record_count()}\n\n"
-                    "💡 <b>To enable risk analysis:</b>\n"
-                    "• Complete more trades to generate returns data\n"
-                    "• Bot automatically records daily balance snapshots\n"
-                    "• Risk metrics will be available after sufficient trading history\n\n"
+                    "📊 <b>Risk Analysis</b>\\n\\n"
+                    "📭 <b>Insufficient Data</b>\\n\\n"
+                    f"• Current completed trades: {html.escape(str(basic_stats['completed_trades']))}\\n"
+                    f"• Required for risk analysis: 2+ trades\\n"
+                    f"• Daily balance snapshots: {html.escape(str(stats.get_daily_balance_record_count()))}\\n\\n"
+                    "💡 <b>To enable risk analysis:</b>\\n"
+                    "• Complete more trades to generate returns data\\n"
+                    "• Bot automatically records daily balance snapshots\\n"
+                    "• Risk metrics will be available after sufficient trading history\\n\\n"
                     "📈 Use /stats for current performance metrics",
                     parse_mode='HTML'
                 )
@@ -1229,7 +1230,7 @@ class InfoCommands:
 • Current Balance: ${current_balance:,.2f}
 • Initial Balance: ${basic_stats['initial_balance']:,.2f}
 • Total P&L: ${basic_stats['total_pnl']:,.2f}
-• Days Active: {basic_stats['days_active']}
+• Days Active: {html.escape(str(basic_stats['days_active']))}
 
 📊 <b>Risk Interpretation:</b>
 """
@@ -1277,9 +1278,9 @@ class InfoCommands:
 • <b>Volatility:</b> Annualized standard deviation of returns
 
 📈 <b>Data Based On:</b>
-• Completed Trades: {basic_stats['completed_trades']}
-• Daily Balance Records: {stats.get_daily_balance_record_count()}
-• Trading Period: {basic_stats['days_active']} days
+• Completed Trades: {html.escape(str(basic_stats['completed_trades']))}
+• Daily Balance Records: {html.escape(str(stats.get_daily_balance_record_count()))}
+• Trading Period: {html.escape(str(basic_stats['days_active']))} days
 
 🔄 Use /stats for trading performance metrics
             """

+ 1 - 1
trading_bot.py

@@ -14,7 +14,7 @@ from datetime import datetime
 from pathlib import Path
 
 # Bot version
-BOT_VERSION = "2.2.135"
+BOT_VERSION = "2.2.136"
 
 # Add src directory to Python path
 sys.path.insert(0, str(Path(__file__).parent / "src"))