소스 검색

Refactor price data handling in InfoCommands - Updated the retrieval of market data prices to handle None values gracefully, ensuring robust float conversion. This improves the reliability of price calculations and enhances overall data integrity in the bot's operations.

Carles Sentis 4 일 전
부모
커밋
cd95517fcf
1개의 변경된 파일16개의 추가작업 그리고 11개의 파일을 삭제
  1. 16 11
      src/commands/info_commands.py

+ 16 - 11
src/commands/info_commands.py

@@ -292,14 +292,17 @@ class InfoCommands:
         if market_data:
             ticker = market_data.get('ticker', {})
             
-            current_price = float(ticker.get('last', 0))
-            bid_price = float(ticker.get('bid', 0))
-            ask_price = float(ticker.get('ask', 0))
-            volume_24h = float(ticker.get('baseVolume', 0))
-            change_24h = float(ticker.get('change', 0))
-            change_percent = float(ticker.get('percentage', 0))
-            high_24h = float(ticker.get('high', 0))
-            low_24h = float(ticker.get('low', 0))
+            current_price = float(ticker.get('last', 0.0) or 0.0)
+            bid_price = float(ticker.get('bid', 0.0) or 0.0)
+            ask_price = float(ticker.get('ask', 0.0) or 0.0)
+            raw_base_volume = ticker.get('baseVolume')
+            volume_24h = float(raw_base_volume if raw_base_volume is not None else 0.0)
+            raw_change_24h = ticker.get('change')
+            change_24h = float(raw_change_24h if raw_change_24h is not None else 0.0)
+            raw_percentage = ticker.get('percentage')
+            change_percent = float(raw_percentage if raw_percentage is not None else 0.0)
+            high_24h = float(ticker.get('high', 0.0) or 0.0)
+            low_24h = float(ticker.get('low', 0.0) or 0.0)
             
             # Market direction emoji
             trend_emoji = "🟢" if change_24h >= 0 else "🔴"
@@ -344,9 +347,11 @@ class InfoCommands:
         
         if market_data:
             ticker = market_data.get('ticker', {})
-            current_price = float(ticker.get('last', 0))
-            change_24h = float(ticker.get('change', 0))
-            change_percent = float(ticker.get('percentage', 0))
+            current_price = float(ticker.get('last', 0.0) or 0.0)
+            raw_change_24h = ticker.get('change')
+            change_24h = float(raw_change_24h if raw_change_24h is not None else 0.0)
+            raw_percentage = ticker.get('percentage')
+            change_percent = float(raw_percentage if raw_percentage is not None else 0.0)
             
             # Price direction emoji
             trend_emoji = "🟢" if change_24h >= 0 else "🔴"