|
|
|
@ -1,4 +1,4 @@
|
|
|
|
|
# import re
|
|
|
|
|
import re
|
|
|
|
|
|
|
|
|
|
import orjson
|
|
|
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
|
|
@ -17,16 +17,16 @@ from core.views import ObjectCreate, ObjectDelete, ObjectList, ObjectUpdate
|
|
|
|
|
log = logs.get_logger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# def extract_price(message):
|
|
|
|
|
# result = re.findall("\d+\.\d+", message) # noqa
|
|
|
|
|
# if len(result) != 1:
|
|
|
|
|
# log.error(f"Could not extract price from message: {message}")
|
|
|
|
|
# return False
|
|
|
|
|
# try:
|
|
|
|
|
# log.debug(f"Extracted {result[0]} from '{message}'")
|
|
|
|
|
# return float(result[0])
|
|
|
|
|
# except ValueError:
|
|
|
|
|
# return False
|
|
|
|
|
def extract_price(message):
|
|
|
|
|
result = re.findall("\d+\.\d+", message) # noqa
|
|
|
|
|
if len(result) != 1:
|
|
|
|
|
log.error(f"Could not extract price from message: {message}")
|
|
|
|
|
return False
|
|
|
|
|
try:
|
|
|
|
|
log.debug(f"Extracted {result[0]} from '{message}'")
|
|
|
|
|
return float(result[0])
|
|
|
|
|
except ValueError:
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class HookAPI(APIView):
|
|
|
|
@ -48,15 +48,20 @@ class HookAPI(APIView):
|
|
|
|
|
log.error(f"HookAPI POST: {e}")
|
|
|
|
|
return HttpResponseBadRequest(e)
|
|
|
|
|
|
|
|
|
|
# price = extract_price(hook_resp.message)
|
|
|
|
|
# if not price:
|
|
|
|
|
# log.debug(f"Could not extract price from message: {hook_resp.message}")
|
|
|
|
|
# return HttpResponseBadRequest("Could not extract price from message")
|
|
|
|
|
try:
|
|
|
|
|
price = float(hook_resp.market.price)
|
|
|
|
|
except ValueError:
|
|
|
|
|
log.debug(f"Could not extract price from message: {hook_resp.market.price}")
|
|
|
|
|
return HttpResponseBadRequest("Could not extract price from message")
|
|
|
|
|
if hasattr(hook_resp, "market.price"):
|
|
|
|
|
try:
|
|
|
|
|
price = float(hook_resp.market.price)
|
|
|
|
|
except ValueError:
|
|
|
|
|
log.debug(
|
|
|
|
|
f"Could not extract price from message: {hook_resp.market.price}"
|
|
|
|
|
)
|
|
|
|
|
return HttpResponseBadRequest("Could not extract price from message")
|
|
|
|
|
else:
|
|
|
|
|
price = extract_price(hook_resp.message)
|
|
|
|
|
if not price:
|
|
|
|
|
log.debug(f"Could not extract price from message: {hook_resp.message}")
|
|
|
|
|
return HttpResponseBadRequest("Could not extract price from message")
|
|
|
|
|
|
|
|
|
|
base = hook_resp.market.item
|
|
|
|
|
quote = hook_resp.market.currency
|
|
|
|
|
symbol = f"{base.upper()}/{quote.upper()}"
|
|
|
|
|