Jelajahi Sumber

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 hari lalu
induk
melakukan
cd95517fcf
1 mengubah file dengan 16 tambahan dan 11 penghapusan
  1. 16 11
      src/commands/info_commands.py

+ 16 - 11
src/commands/info_commands.py

@@ -292,14 +292,17 @@ class InfoCommands:
         if market_data:
         if market_data:
             ticker = market_data.get('ticker', {})
             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
             # Market direction emoji
             trend_emoji = "🟢" if change_24h >= 0 else "🔴"
             trend_emoji = "🟢" if change_24h >= 0 else "🔴"
@@ -344,9 +347,11 @@ class InfoCommands:
         
         
         if market_data:
         if market_data:
             ticker = market_data.get('ticker', {})
             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
             # Price direction emoji
             trend_emoji = "🟢" if change_24h >= 0 else "🔴"
             trend_emoji = "🟢" if change_24h >= 0 else "🔴"