Skip to content

Commit aee9af2

Browse files
authored
Merge pull request #2760 from Drakkar-Software/dev
dev merge
2 parents 0381f6a + cff8d00 commit aee9af2

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

octobot/community/community_manager.py

+12-10
Original file line numberDiff line numberDiff line change
@@ -58,20 +58,17 @@ def __init__(self, octobot_api):
5858
# these attributes will be set at the last moment to ensure relevance and let time for everything to startup
5959
self.has_real_trader = None
6060
self.has_simulator = None
61-
self.exchange_managers = None
6261

6362
def _init_community_config(self):
6463
self.has_real_trader = trading_api.is_trader_enabled_in_config(self.edited_config.config)
6564
self.has_simulator = trading_api.is_trader_simulator_enabled_in_config(self.edited_config.config)
66-
self.exchange_managers = trading_api.get_exchange_managers_from_exchange_ids(
67-
self.octobot_api.get_exchange_manager_ids())
6865

6966
async def start_community_task(self):
7067
if self.enabled:
7168
try:
7269
# first ensure this session is not just a configuration test: register after a timer
7370
await asyncio.sleep(
74-
common_constants.TIMER_BETWEEN_METRICS_UPTIME_UPDATE
71+
constants.CLOUD_FIRST_METRICS_UPDATE_TIME
7572
if constants.IS_CLOUD_ENV else common_constants.TIMER_BEFORE_METRICS_REGISTRATION_SECONDS
7673
)
7774
self._init_community_config()
@@ -187,14 +184,14 @@ def _get_bot_community(self):
187184
def _get_exchange_types(self):
188185
return [
189186
trading_api.get_exchange_type(exchange_manager).value
190-
for exchange_manager in self.exchange_managers
187+
for exchange_manager in self._get_exchange_managers()
191188
]
192189

193190
def _get_profitability(self):
194191
total_origin_values = 0
195192
total_profitability = 0
196193

197-
for exchange_manager in self.exchange_managers:
194+
for exchange_manager in self._get_exchange_managers():
198195
if trading_api.is_exchange_trading(exchange_manager):
199196
profitability, _, _, _, _ = trading_api.get_profitability_stats(exchange_manager)
200197
total_profitability += float(profitability)
@@ -206,7 +203,7 @@ def _get_traded_volumes(self):
206203
volume_by_currency = {}
207204
if self.has_real_trader:
208205
trades = []
209-
for exchange_manager in self.exchange_managers:
206+
for exchange_manager in self._get_exchange_managers():
210207
trades += trading_api.get_trade_history(exchange_manager, since=self.octobot_api.get_start_time())
211208
for trade in trades:
212209
# cost is in quote currency for a traded pair
@@ -219,7 +216,7 @@ def _get_traded_volumes(self):
219216

220217
def _get_supports(self):
221218
supporting_exchanges = []
222-
for exchange_manager in self.exchange_managers:
219+
for exchange_manager in self._get_exchange_managers():
223220
exchange_name = trading_api.get_exchange_name(exchange_manager)
224221
if self.has_real_trader \
225222
and trading_api.is_sponsoring(exchange_name) \
@@ -235,7 +232,7 @@ def _get_supports(self):
235232
def _get_real_portfolio_value(self):
236233
if self.has_real_trader:
237234
total_value = 0
238-
for exchange_manager in self.exchange_managers:
235+
for exchange_manager in self._get_exchange_managers():
239236
current_value = trading_api.get_current_portfolio_value(exchange_manager)
240237
# current_value might be 0 if no trades have been made / canceled => use origin value
241238
if current_value == 0:
@@ -247,7 +244,7 @@ def _get_real_portfolio_value(self):
247244

248245
def _get_traded_pairs(self):
249246
pairs = set()
250-
for exchange_manager in self.exchange_managers:
247+
for exchange_manager in self._get_exchange_managers():
251248
pairs = pairs.union(trading_api.get_trading_pairs(exchange_manager))
252249
return list(pairs)
253250

@@ -322,3 +319,8 @@ async def _handle_post_error(self, resp, retry_on_error):
322319
self.logger.debug(f"Impossible to send community data : "
323320
f"status code: {resp.status}, "
324321
f"text: {await resp.text()}")
322+
323+
def _get_exchange_managers(self):
324+
return trading_api.get_exchange_managers_from_exchange_ids(
325+
self.octobot_api.get_exchange_manager_ids()
326+
)

octobot/constants.py

+3
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,9 @@
179179
ERRORS_POST_ENDPOINT = f"{ERRORS_URL}errors"
180180
UPLOAD_ERRORS = os_util.parse_boolean_environment_var("UPLOAD_ERRORS", "False")
181181
DEFAULT_METRICS_ID = "UNSET"
182+
CLOUD_FIRST_METRICS_UPDATE_TIME = float(
183+
os.getenv("CLOUD_FIRST_METRICS_UPDATE_TIME", 5)
184+
)
182185

183186
# config types keys
184187
CONFIG_KEY = "config"

0 commit comments

Comments
 (0)