Browse Source

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 2 days ago
parent
commit
9b89e16adf
2 changed files with 15 additions and 14 deletions
  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 logging
+import html # Added for escaping HTML characters
 from datetime import datetime, timezone, timedelta
 from datetime import datetime, timezone, timedelta
 from typing import Optional, Dict, Any, List
 from typing import Optional, Dict, Any, List
 from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
 from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
@@ -1198,15 +1199,15 @@ class InfoCommands:
             # Check if we have enough data for risk calculations
             # Check if we have enough data for risk calculations
             if basic_stats['completed_trades'] < 2:
             if basic_stats['completed_trades'] < 2:
                 await context.bot.send_message(chat_id=chat_id, text=
                 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",
                     "📈 Use /stats for current performance metrics",
                     parse_mode='HTML'
                     parse_mode='HTML'
                 )
                 )
@@ -1229,7 +1230,7 @@ class InfoCommands:
 • Current Balance: ${current_balance:,.2f}
 • Current Balance: ${current_balance:,.2f}
 • Initial Balance: ${basic_stats['initial_balance']:,.2f}
 • Initial Balance: ${basic_stats['initial_balance']:,.2f}
 • Total P&L: ${basic_stats['total_pnl']:,.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>
 📊 <b>Risk Interpretation:</b>
 """
 """
@@ -1277,9 +1278,9 @@ class InfoCommands:
 • <b>Volatility:</b> Annualized standard deviation of returns
 • <b>Volatility:</b> Annualized standard deviation of returns
 
 
 📈 <b>Data Based On:</b>
 📈 <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
 🔄 Use /stats for trading performance metrics
             """
             """

+ 1 - 1
trading_bot.py

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