Telegram: send locks as chunks of 25.

Producing easily readable messages, hopefully always below the message lenght limit
This commit is contained in:
Bernd Zeimetz 2021-04-24 13:28:24 +02:00
parent 4d1613a432
commit 3be7bc509c

View File

@ -20,7 +20,7 @@ from telegram.utils.helpers import escape_markdown
from freqtrade.__init__ import __version__ from freqtrade.__init__ import __version__
from freqtrade.constants import DUST_PER_COIN from freqtrade.constants import DUST_PER_COIN
from freqtrade.exceptions import OperationalException from freqtrade.exceptions import OperationalException
from freqtrade.misc import round_coin_value from freqtrade.misc import chunks, round_coin_value
from freqtrade.rpc import RPC, RPCException, RPCHandler, RPCMessageType from freqtrade.rpc import RPC, RPCException, RPCHandler, RPCMessageType
@ -750,17 +750,18 @@ class Telegram(RPCHandler):
Handler for /locks. Handler for /locks.
Returns the currently active locks Returns the currently active locks
""" """
locks = self._rpc._rpc_locks() rpc_locks = self._rpc._rpc_locks()
message = tabulate([[ for locks in chunks(rpc_locks['locks'], 25):
lock['id'], message = tabulate([[
lock['pair'], lock['id'],
lock['lock_end_time'], lock['pair'],
lock['reason']] for lock in locks['locks']], lock['lock_end_time'],
headers=['ID', 'Pair', 'Until', 'Reason'], lock['reason']] for lock in locks],
tablefmt='simple') headers=['ID', 'Pair', 'Until', 'Reason'],
message = f"<pre>{escape(message)}</pre>" tablefmt='simple')
logger.debug(message) message = f"<pre>{escape(message)}</pre>"
self._send_msg(message, parse_mode=ParseMode.HTML) logger.debug(message)
self._send_msg(message, parse_mode=ParseMode.HTML)
@authorized_only @authorized_only
def _delete_locks(self, update: Update, context: CallbackContext) -> None: def _delete_locks(self, update: Update, context: CallbackContext) -> None: