Update data_manager.py
Browse files- data_manager.py +8 -4
data_manager.py
CHANGED
|
@@ -168,6 +168,7 @@ class DataManager:
|
|
| 168 |
return prices
|
| 169 |
|
| 170 |
except Exception as e:
|
|
|
|
| 171 |
return {'bitcoin': None, 'ethereum': None}
|
| 172 |
|
| 173 |
async def _get_prices_from_coingecko(self):
|
|
@@ -176,7 +177,6 @@ class DataManager:
|
|
| 176 |
await asyncio.sleep(0.5)
|
| 177 |
url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd"
|
| 178 |
|
| 179 |
-
# إضافة headers لتجنب rate limiting
|
| 180 |
headers = {
|
| 181 |
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
|
| 182 |
'Accept': 'application/json'
|
|
@@ -201,6 +201,7 @@ class DataManager:
|
|
| 201 |
return {'bitcoin': None, 'ethereum': None}
|
| 202 |
|
| 203 |
except Exception as e:
|
|
|
|
| 204 |
return {'bitcoin': None, 'ethereum': None}
|
| 205 |
|
| 206 |
def _get_minimal_market_context(self):
|
|
@@ -302,6 +303,7 @@ class DataManager:
|
|
| 302 |
return volume_data
|
| 303 |
|
| 304 |
except Exception as e:
|
|
|
|
| 305 |
return []
|
| 306 |
|
| 307 |
async def _get_volume_data_direct_api(self) -> List[Dict[str, Any]]:
|
|
@@ -349,6 +351,7 @@ class DataManager:
|
|
| 349 |
return volume_data
|
| 350 |
|
| 351 |
except Exception as e:
|
|
|
|
| 352 |
return []
|
| 353 |
|
| 354 |
async def _get_volume_data_traditional(self) -> List[Dict[str, Any]]:
|
|
@@ -385,6 +388,7 @@ class DataManager:
|
|
| 385 |
return volume_data
|
| 386 |
|
| 387 |
except Exception as e:
|
|
|
|
| 388 |
return []
|
| 389 |
|
| 390 |
async def _process_single_symbol(self, symbol: str) -> Dict[str, Any]:
|
|
@@ -593,7 +597,7 @@ class DataManager:
|
|
| 593 |
print(f"📊 جلب بيانات OHLCV كاملة لـ {len(symbols)} عملة بشكل متوازي...")
|
| 594 |
|
| 595 |
# تقسيم الرموز إلى دفعات لتجنب rate limits
|
| 596 |
-
batch_size = 15 #
|
| 597 |
batches = [symbols[i:i + batch_size] for i in range(0, len(symbols), batch_size)]
|
| 598 |
|
| 599 |
all_results = []
|
|
@@ -629,7 +633,7 @@ class DataManager:
|
|
| 629 |
|
| 630 |
# انتظار قصير بين الدفعات لتجنب rate limits
|
| 631 |
if batch_num < len(batches) - 1:
|
| 632 |
-
await asyncio.sleep(1) #
|
| 633 |
|
| 634 |
print(f"✅ تم تجميع بيانات OHLCV كاملة لـ {len(all_results)} عملة من أصل {len(symbols)}")
|
| 635 |
return all_results
|
|
@@ -813,4 +817,4 @@ class DataManager:
|
|
| 813 |
'source': 'whale_analysis'
|
| 814 |
}
|
| 815 |
|
| 816 |
-
print("✅ DataManager loaded - Fixed get_latest_price_async
|
|
|
|
| 168 |
return prices
|
| 169 |
|
| 170 |
except Exception as e:
|
| 171 |
+
print(f"⚠️ فشل جلب الأسعار من KuCoin: {e}")
|
| 172 |
return {'bitcoin': None, 'ethereum': None}
|
| 173 |
|
| 174 |
async def _get_prices_from_coingecko(self):
|
|
|
|
| 177 |
await asyncio.sleep(0.5)
|
| 178 |
url = "https://api.coingecko.com/api/v3/simple/price?ids=bitcoin,ethereum&vs_currencies=usd"
|
| 179 |
|
|
|
|
| 180 |
headers = {
|
| 181 |
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
|
| 182 |
'Accept': 'application/json'
|
|
|
|
| 201 |
return {'bitcoin': None, 'ethereum': None}
|
| 202 |
|
| 203 |
except Exception as e:
|
| 204 |
+
print(f"⚠️ فشل جلب الأسعار من CoinGecko: {e}")
|
| 205 |
return {'bitcoin': None, 'ethereum': None}
|
| 206 |
|
| 207 |
def _get_minimal_market_context(self):
|
|
|
|
| 303 |
return volume_data
|
| 304 |
|
| 305 |
except Exception as e:
|
| 306 |
+
print(f"❌ خطأ في جلب بيانات الحجم المثلى: {e}")
|
| 307 |
return []
|
| 308 |
|
| 309 |
async def _get_volume_data_direct_api(self) -> List[Dict[str, Any]]:
|
|
|
|
| 351 |
return volume_data
|
| 352 |
|
| 353 |
except Exception as e:
|
| 354 |
+
print(f"❌ خطأ في جلب بيانات الحجم المباشر: {e}")
|
| 355 |
return []
|
| 356 |
|
| 357 |
async def _get_volume_data_traditional(self) -> List[Dict[str, Any]]:
|
|
|
|
| 388 |
return volume_data
|
| 389 |
|
| 390 |
except Exception as e:
|
| 391 |
+
print(f"❌ خطأ في جلب بيانات الحجم التقليدية: {e}")
|
| 392 |
return []
|
| 393 |
|
| 394 |
async def _process_single_symbol(self, symbol: str) -> Dict[str, Any]:
|
|
|
|
| 597 |
print(f"📊 جلب بيانات OHLCV كاملة لـ {len(symbols)} عملة بشكل متوازي...")
|
| 598 |
|
| 599 |
# تقسيم الرموز إلى دفعات لتجنب rate limits
|
| 600 |
+
batch_size = 15 # تقليل حجم الدفعة لتحسين الاستقرار
|
| 601 |
batches = [symbols[i:i + batch_size] for i in range(0, len(symbols), batch_size)]
|
| 602 |
|
| 603 |
all_results = []
|
|
|
|
| 633 |
|
| 634 |
# انتظار قصير بين الدفعات لتجنب rate limits
|
| 635 |
if batch_num < len(batches) - 1:
|
| 636 |
+
await asyncio.sleep(1) # زيادة وقت الانتظار
|
| 637 |
|
| 638 |
print(f"✅ تم تجميع بيانات OHLCV كاملة لـ {len(all_results)} عملة من أصل {len(symbols)}")
|
| 639 |
return all_results
|
|
|
|
| 817 |
'source': 'whale_analysis'
|
| 818 |
}
|
| 819 |
|
| 820 |
+
print("✅ DataManager loaded - Fixed get_latest_price_async Function")
|