46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
|
# Twisted/Klein imports
|
||
|
from twisted.logger import Logger
|
||
|
|
||
|
# Other library imports
|
||
|
import requests
|
||
|
|
||
|
# Project imports
|
||
|
from settings import settings
|
||
|
|
||
|
|
||
|
class Notify(object):
|
||
|
"""
|
||
|
Class to handle more robust notifications.
|
||
|
"""
|
||
|
|
||
|
def __init__(self):
|
||
|
self.log = Logger("notify")
|
||
|
|
||
|
def set_agora(self, agora):
|
||
|
self.agora = agora
|
||
|
|
||
|
def sendmsg(self, msg, title=None, priority=None, tags=None):
|
||
|
headers = {"Title": "Bot"}
|
||
|
if title:
|
||
|
headers["Title"] = title
|
||
|
if priority:
|
||
|
headers["Priority"] = priority
|
||
|
if tags:
|
||
|
headers["Tags"] = tags
|
||
|
requests.post(
|
||
|
f"{settings.Notify.Host}/{settings.Notify.Topic}",
|
||
|
data=msg,
|
||
|
headers=headers,
|
||
|
)
|
||
|
|
||
|
def notify_new_trade(self, amount, currency):
|
||
|
amount_usd = self.agora.to_usd(amount, currency)
|
||
|
self.sendmsg(f"Total: {amount_usd}", title="New trade", tags="trades")
|
||
|
|
||
|
def notify_complete_trade(self, amount, currency):
|
||
|
amount_usd = self.agora.to_usd(amount, currency)
|
||
|
self.sendmsg(f"Total: {amount_usd}", title="Trade complete", tags="trades,profit")
|
||
|
|
||
|
def notify_withdrawal(self, amount_usd):
|
||
|
self.sendmsg(f"Total: {amount_usd}", title="Withdrawal", tags="profit")
|