From 4af0b18af16ce6cabffe0ec0261907fab8d45b02 Mon Sep 17 00:00:00 2001 From: kryofly Date: Fri, 26 Jan 2018 11:18:36 +0100 Subject: [PATCH] rpc refactor 6/ --- freqtrade/rpc/__init__.py | 23 ++++++++++++++++++++++- freqtrade/rpc/telegram.py | 20 +++++++++----------- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/freqtrade/rpc/__init__.py b/freqtrade/rpc/__init__.py index 8d56d6150..62cf11873 100644 --- a/freqtrade/rpc/__init__.py +++ b/freqtrade/rpc/__init__.py @@ -7,7 +7,7 @@ from pandas import DataFrame import sqlalchemy as sql from freqtrade.persistence import Trade -from freqtrade.misc import State, get_state +from freqtrade.misc import State, get_state, update_state from freqtrade import exchange from freqtrade.fiat_convert import CryptoToFiatConverter from . import telegram @@ -334,3 +334,24 @@ def rpc_balance(fiat_display_currency): symbol = fiat_display_currency value = fiat.convert_amount(total, 'BTC', symbol) return (False, (output, total, symbol, value)) + + +def rpc_start(): + """ + Handler for start. + """ + if get_state() == State.RUNNING: + return (True, '*Status:* `already running`') + else: + update_state(State.RUNNING) + + +def rpc_stop(): + """ + Handler for stop. + """ + if get_state() == State.RUNNING: + update_state(State.STOPPED) + return (False, '`Stopping trader ...`') + else: + return (True, '*Status:* `already stopped`') diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index e8a1e9b21..123d01d33 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -11,13 +11,15 @@ from freqtrade.rpc.__init__ import (rpc_status_table, rpc_trade_status, rpc_daily_profit, rpc_trade_statistics, - rpc_balance + rpc_balance, + rpc_start, + rpc_stop ) from freqtrade import __version__, exchange from freqtrade.fiat_convert import CryptoToFiatConverter -from freqtrade.misc import State, get_state, update_state from freqtrade.persistence import Trade +from freqtrade.misc import State, get_state # Remove noisy log messages @@ -276,10 +278,9 @@ def _start(bot: Bot, update: Update) -> None: :param update: message update :return: None """ - if get_state() == State.RUNNING: - send_msg('*Status:* `already running`', bot=bot) - else: - update_state(State.RUNNING) + (error, msg) = rpc_start() + if error: + send_msg(msg, bot=bot) @authorized_only @@ -291,11 +292,8 @@ def _stop(bot: Bot, update: Update) -> None: :param update: message update :return: None """ - if get_state() == State.RUNNING: - send_msg('`Stopping trader ...`', bot=bot) - update_state(State.STOPPED) - else: - send_msg('*Status:* `already stopped`', bot=bot) + (error, msg) = rpc_stop() + send_msg(msg, bot=bot) @authorized_only