File size: 2,259 Bytes
5b464b9
 
 
 
 
 
8049d26
5b464b9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
011c2a0
 
5b464b9
 
 
 
 
 
 
 
 
 
8049d26
5b464b9
 
 
 
 
 
 
93bdeac
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
import os
import json
import httpx
#import subprocess
import asyncio #alternativa a 
#from waitress import serve #alternativa a 
#import socket #para funcionalidad ipv6
import aiohttp

app = FastAPI()

# Configurar CORS
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

# Cargar los c贸digos y configuraci贸n de Telegram desde las variables de entorno
@app.on_event("startup")
async def startup_event():
    global codigos, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID
    codigos_json = os.environ.get("codigos")
    print("codigos recogidos pero no chequeados")
    if codigos_json:
        codigos = json.loads(codigos_json)
        print("C贸digos cargados correctamente")
    else:
        codigos = {}
        print("No se encontraron c贸digos en las variables de entorno")
    
    TELEGRAM_BOT_TOKEN = os.environ.get("T_bot")
    TELEGRAM_CHAT_ID = os.environ.get("nroChat")

    if not TELEGRAM_BOT_TOKEN or not TELEGRAM_CHAT_ID:
        print("Faltan configuraciones de Telegram")
    else:
        print("Claves de telegram cargados correctamente")

async def send_telegram_message(message):
    url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage"
    params = {
        "chat_id": TELEGRAM_CHAT_ID,
        "text": message
    }
    # async with httpx.AsyncClient() as client:
    #     await client.post(url, params=params)

@app.get("/verificar/{codigo}")
async def verificar_codigo(codigo: str):
    if codigo in codigos:
        if codigos[codigo] > 0:

            # Enviar mensaje a Telegram
            mensaje = f"C贸digo utilizado: {codigo}\nConsultas restantes: {codigos[codigo]}"
            print(f"\nmensaje:")
            print(mensaje, end="\n\n")
            asyncio.run(send_telegram_message(mensaje))
            
            return {"mensaje": "c贸digo encontrado", "consultas_restantes": codigos[codigo]}
        else:
            return {"mensaje": "c贸digo caducado"}
    else:
        return {"mensaje": "c贸digo no encontrado"}

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=7860)