mirror of
https://github.com/RoboSats/robosats.git
synced 2024-12-13 19:06:26 +00:00
63 lines
2.2 KiB
Python
63 lines
2.2 KiB
Python
from decouple import config
|
|
from secrets import token_urlsafe
|
|
from api.models import Order
|
|
import requests
|
|
|
|
class Telegram():
|
|
''' Simple telegram messages by requesting to API'''
|
|
|
|
def get_context(user):
|
|
"""returns context needed to enable TG notifications"""
|
|
context = {}
|
|
if user.profile.telegram_enabled :
|
|
context['tg_enabled'] = True
|
|
else:
|
|
context['tg_enabled'] = False
|
|
|
|
if user.profile.telegram_token == None:
|
|
user.profile.telegram_token = token_urlsafe(15)
|
|
user.profile.save()
|
|
|
|
context['tg_token'] = user.profile.telegram_token
|
|
context['tg_bot_name'] = config("TELEGRAM_BOT_NAME")
|
|
|
|
return context
|
|
|
|
def send_message(user, text):
|
|
""" sends a message to a user with telegram notifications enabled"""
|
|
|
|
bot_token=config('TELEGRAM_TOKEN')
|
|
|
|
chat_id = user.profile.telegram_chat_id
|
|
message_url = f'https://api.telegram.org/bot{bot_token}/sendMessage?chat_id={chat_id}&text={text}'
|
|
|
|
response = requests.get(message_url).json()
|
|
print(response)
|
|
|
|
return
|
|
|
|
@classmethod
|
|
def welcome(cls, user):
|
|
lang = user.profile.telegram_lang_code
|
|
order = Order.objects.get(maker=user)
|
|
print(str(order.id))
|
|
if lang == 'es':
|
|
text = f'Hola ⚡{user.username}⚡, Te enviaré un mensaje cuando tu orden con ID {str(order.id)} haya sido tomada.'
|
|
else:
|
|
text = f"Hey ⚡{user.username}⚡, I will send you a message when someone takes your order with ID {str(order.id)}."
|
|
cls.send_message(user, text)
|
|
return
|
|
|
|
@classmethod
|
|
def order_taken(cls, order):
|
|
user = order.maker
|
|
lang = user.profile.telegram_lang_code
|
|
taker_nick = order.taker.username
|
|
site = config('HOST_NAME')
|
|
if lang == 'es':
|
|
text = f'Tu orden con ID {order.id} ha sido tomada por {taker_nick}!🥳 Visita http://{site}/order/{order.id} para continuar.'
|
|
else:
|
|
text = f'Your order with ID {order.id} was taken by {taker_nick}!🥳 Visit http://{site}/order/{order.id} to proceed with the trade.'
|
|
|
|
cls.send_message(user, text)
|
|
return |