Przeglądaj źródła

Añado funcionalidad para enviar mensaje a Telegram cuando se publica

Tino 3 miesięcy temu
rodzic
commit
dab9c73c4d
1 zmienionych plików z 17 dodań i 0 usunięć
  1. 17 0
      src/eventos/views.py

+ 17 - 0
src/eventos/views.py

@@ -10,6 +10,8 @@ from django.utils import timezone
 from datetime import date
 
 import logging
+import requests
+import os
 
 from django.core.mail import send_mass_mail
 from django.core.mail import BadHeaderError
@@ -31,6 +33,8 @@ User = get_user_model()
 
 logger = logging.getLogger(__name__)
 
+BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN",  "8604655521:AAEREJsenslfLyZ4vpNs475BTI6rboJ9UY0")
+CHAT_ID = os.getenv("TELEGRAM_CHAT_ID", "-1003558251921")  # chat_id del canal JugarAlPadel
 
 # helper for sending reservation emails
 
@@ -259,6 +263,7 @@ def publicar_evento(request, evento_id):
     if not evento.publicado:
         evento.publicado = True
         evento.save()
+        send_message('El evento %s ha sido publicado' % evento.nombre)
         messages.success(request, 'El evento %s ha sido publicado' % evento.nombre)
     else:
         messages.info(request, 'El evento %s ya está publicado' % evento.nombre)
@@ -651,3 +656,15 @@ def cancelar_reserva_admin(request, reserva_id):
     if request.method == "POST":
         reserva.delete()
     return redirect("eventos:eventos_por_usuario", usuario_id)
+
+
+# Función para enviar mensaje a canal
+
+def send_message(text):
+    url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
+    params = {
+        "chat_id": CHAT_ID,
+        "text": text,
+    }
+    response = requests.get(url, params=params)
+    return response.json()