better exception handling and minor changes
This commit is contained in:
parent
775c2a1a9a
commit
763e05ff14
9
main.py
9
main.py
@ -6,6 +6,8 @@ import threading
|
|||||||
import time
|
import time
|
||||||
import traceback
|
import traceback
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from json import JSONDecodeError
|
||||||
|
from requests import ConnectionError
|
||||||
|
|
||||||
from wrapt import synchronized
|
from wrapt import synchronized
|
||||||
|
|
||||||
@ -22,7 +24,7 @@ from utils import get_conf
|
|||||||
__author__ = "gcarq"
|
__author__ = "gcarq"
|
||||||
__copyright__ = "gcarq 2017"
|
__copyright__ = "gcarq 2017"
|
||||||
__license__ = "GPLv3"
|
__license__ = "GPLv3"
|
||||||
__version__ = "0.6.0"
|
__version__ = "0.6.1"
|
||||||
|
|
||||||
|
|
||||||
conf = get_conf()
|
conf = get_conf()
|
||||||
@ -61,8 +63,9 @@ class TradeThread(threading.Thread):
|
|||||||
while not _should_stop:
|
while not _should_stop:
|
||||||
try:
|
try:
|
||||||
self._process()
|
self._process()
|
||||||
except ValueError:
|
except (ConnectionError, JSONDecodeError, ValueError) as e:
|
||||||
logger.exception('ValueError')
|
msg = 'Got {} during _process()'.format(e.__class__.__name__)
|
||||||
|
logger.exception(msg)
|
||||||
finally:
|
finally:
|
||||||
Session.flush()
|
Session.flush()
|
||||||
time.sleep(25)
|
time.sleep(25)
|
||||||
|
@ -2,7 +2,7 @@ import logging
|
|||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
|
|
||||||
import arrow
|
import arrow
|
||||||
from telegram.error import NetworkError
|
from telegram.error import NetworkError, BadRequest
|
||||||
from telegram.ext import CommandHandler, Updater
|
from telegram.ext import CommandHandler, Updater
|
||||||
from telegram import ParseMode, Bot, Update
|
from telegram import ParseMode, Bot, Update
|
||||||
from wrapt import synchronized
|
from wrapt import synchronized
|
||||||
@ -111,10 +111,10 @@ class TelegramHandler(object):
|
|||||||
durations_hours = [(t.close_date - t.open_date).total_seconds() / 3600.0 for t in trades]
|
durations_hours = [(t.close_date - t.open_date).total_seconds() / 3600.0 for t in trades]
|
||||||
avg_duration = sum(durations_hours) / float(len(durations_hours))
|
avg_duration = sum(durations_hours) / float(len(durations_hours))
|
||||||
markdown_msg = """
|
markdown_msg = """
|
||||||
*Total Profit:* `{profit_btc} BTC ({profit}%)`
|
*ROI:* `{profit_btc} BTC ({profit}%)`
|
||||||
*Trade Count:* `{trade_count}`
|
*Trade Count:* `{trade_count}`
|
||||||
*First Action:* `{first_trade_date}`
|
*First Trade completed:* `{first_trade_date}`
|
||||||
*Latest Action:* `{latest_trade_date}`
|
*Latest Trade completed:* `{latest_trade_date}`
|
||||||
*Avg. Stake Amount:* `{avg_open_amount} BTC`
|
*Avg. Stake Amount:* `{avg_open_amount} BTC`
|
||||||
*Avg. Duration:* `{avg_duration}`
|
*Avg. Duration:* `{avg_duration}`
|
||||||
""".format(
|
""".format(
|
||||||
@ -228,19 +228,20 @@ class TelegramHandler(object):
|
|||||||
.format([h.command for h in handles]))
|
.format([h.command for h in handles]))
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def send_msg(msg, bot=None):
|
def send_msg(msg, bot=None, parse_mode=ParseMode.MARKDOWN):
|
||||||
"""
|
"""
|
||||||
Send given markdown message
|
Send given markdown message
|
||||||
:param msg: message
|
:param msg: message
|
||||||
:param bot: alternative bot
|
:param bot: alternative bot
|
||||||
|
:param parse_mode: telegram parse mode
|
||||||
:return: None
|
:return: None
|
||||||
"""
|
"""
|
||||||
if conf['telegram'].get('enabled', False):
|
if conf['telegram'].get('enabled', False):
|
||||||
bot = bot or TelegramHandler.get_updater(conf).bot
|
bot = bot or TelegramHandler.get_updater(conf).bot
|
||||||
try:
|
try:
|
||||||
bot.send_message(conf['telegram']['chat_id'], msg, parse_mode=ParseMode.MARKDOWN)
|
bot.send_message(conf['telegram']['chat_id'], msg, parse_mode=parse_mode)
|
||||||
except NetworkError as e:
|
except NetworkError as e:
|
||||||
logger.warning('Got Telegram NetworkError: {}! trying one more time'.format(e.message))
|
logger.warning('Got Telegram NetworkError: {}! trying one more time'.format(e.message))
|
||||||
bot.send_message(conf['telegram']['chat_id'], msg, parse_mode=ParseMode.MARKDOWN)
|
bot.send_message(conf['telegram']['chat_id'], msg, parse_mode=parse_mode)
|
||||||
except Exception:
|
except Exception:
|
||||||
logger.exception('Exception occurred within Telegram API')
|
logger.exception('Exception occurred within Telegram API')
|
||||||
|
Loading…
Reference in New Issue
Block a user