|
|
from fastapi import FastAPI, HTTPException |
|
|
from fastapi.middleware.cors import CORSMiddleware |
|
|
import os |
|
|
import json |
|
|
import httpx |
|
|
|
|
|
import asyncio |
|
|
|
|
|
|
|
|
import aiohttp |
|
|
|
|
|
app = FastAPI() |
|
|
|
|
|
|
|
|
app.add_middleware( |
|
|
CORSMiddleware, |
|
|
allow_origins=["*"], |
|
|
allow_credentials=True, |
|
|
allow_methods=["*"], |
|
|
allow_headers=["*"], |
|
|
) |
|
|
|
|
|
|
|
|
@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 |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@app.get("/verificar/{codigo}") |
|
|
async def verificar_codigo(codigo: str): |
|
|
if codigo in codigos: |
|
|
if codigos[codigo] > 0: |
|
|
|
|
|
|
|
|
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) |
|
|
|