Spaces:
Running
Running
Splashmixai accesible
Browse files- .gitignore +2 -0
- autenticacion.py +2 -0
- config_creator.py +4 -8
- fireWhale.py +26 -3
- herramientas.py +7 -2
.gitignore
CHANGED
|
@@ -5,3 +5,5 @@ bridges.py
|
|
| 5 |
config.json
|
| 6 |
config_dev.json
|
| 7 |
config_prod.json
|
|
|
|
|
|
|
|
|
| 5 |
config.json
|
| 6 |
config_dev.json
|
| 7 |
config_prod.json
|
| 8 |
+
splashmix-ai.json
|
| 9 |
+
.env
|
autenticacion.py
CHANGED
|
@@ -26,6 +26,7 @@ def defineAmbiente(env):
|
|
| 26 |
llave = os.getenv("STRIPE_KEY_PROD") #Acceso a HF
|
| 27 |
webhook = os.getenv("STRIPE_WEBHOOK_SECRET_PROD")
|
| 28 |
config_creator.creaConfigFirestore('configuracion_prod') #La secret var de HF respecto a prod.
|
|
|
|
| 29 |
ga4Key = os.getenv("GA4_SECRET_PROD")
|
| 30 |
ga4ID = os.getenv("GA4_ID_PROD")
|
| 31 |
else: #if dev
|
|
@@ -33,6 +34,7 @@ def defineAmbiente(env):
|
|
| 33 |
llave = os.getenv("STRIPE_KEY_SANDBOX") #Acceso a HF
|
| 34 |
webhook = os.getenv("STRIPE_WEBHOOK_SECRET_SANDBOX")
|
| 35 |
config_creator.creaConfigFirestore('configuracion_dev') #La secret var de HF respecto a dev.
|
|
|
|
| 36 |
ga4Key = os.getenv("GA4_SECRET_DEV")
|
| 37 |
ga4ID = os.getenv("GA4_ID_DEV")
|
| 38 |
|
|
|
|
| 26 |
llave = os.getenv("STRIPE_KEY_PROD") #Acceso a HF
|
| 27 |
webhook = os.getenv("STRIPE_WEBHOOK_SECRET_PROD")
|
| 28 |
config_creator.creaConfigFirestore('configuracion_prod') #La secret var de HF respecto a prod.
|
| 29 |
+
config_creator.creaConfigFirestore('splashmixai_firestore_json', 'archivos/splashmix-ai.json') #Firestore de splashmix-ai
|
| 30 |
ga4Key = os.getenv("GA4_SECRET_PROD")
|
| 31 |
ga4ID = os.getenv("GA4_ID_PROD")
|
| 32 |
else: #if dev
|
|
|
|
| 34 |
llave = os.getenv("STRIPE_KEY_SANDBOX") #Acceso a HF
|
| 35 |
webhook = os.getenv("STRIPE_WEBHOOK_SECRET_SANDBOX")
|
| 36 |
config_creator.creaConfigFirestore('configuracion_dev') #La secret var de HF respecto a dev.
|
| 37 |
+
config_creator.creaConfigFirestore('splashmixai_firestore_json', 'archivos/splashmix-ai.json') #Firestore de splashmix-ai
|
| 38 |
ga4Key = os.getenv("GA4_SECRET_DEV")
|
| 39 |
ga4ID = os.getenv("GA4_ID_DEV")
|
| 40 |
|
config_creator.py
CHANGED
|
@@ -1,28 +1,24 @@
|
|
| 1 |
import os
|
| 2 |
import json
|
| 3 |
|
| 4 |
-
def creaConfigFirestore(configuracion):
|
| 5 |
|
| 6 |
# Paso 1: Obtener la variable de entorno
|
| 7 |
firestore_config_str = os.getenv(configuracion)
|
| 8 |
|
| 9 |
if firestore_config_str is None:
|
| 10 |
-
print("Error: La variable de entorno 'configuracion' no está definida.")
|
| 11 |
else:
|
| 12 |
try:
|
| 13 |
# Paso 2: Convertir el string JSON en un diccionario de Python
|
| 14 |
firestore_config_dict = json.loads(firestore_config_str)
|
| 15 |
|
| 16 |
-
# Paso 3:
|
| 17 |
-
# Esto indica que se debe guardar en la subcarpeta 'code/archivos'
|
| 18 |
-
ruta_archivo = "archivos/config.json"
|
| 19 |
-
|
| 20 |
-
# Paso 4: Asegurarse de que la carpeta de destino exista
|
| 21 |
# os.makedirs() creará la carpeta y sus padres si no existen
|
| 22 |
# El parámetro 'exist_ok=True' evita que falle si la carpeta ya existe
|
| 23 |
os.makedirs(os.path.dirname(ruta_archivo), exist_ok=True)
|
| 24 |
|
| 25 |
-
# Paso
|
| 26 |
with open(ruta_archivo, 'w') as archivo_json:
|
| 27 |
json.dump(firestore_config_dict, archivo_json, indent=4)
|
| 28 |
|
|
|
|
| 1 |
import os
|
| 2 |
import json
|
| 3 |
|
| 4 |
+
def creaConfigFirestore(configuracion, ruta_archivo="archivos/config.json"):
|
| 5 |
|
| 6 |
# Paso 1: Obtener la variable de entorno
|
| 7 |
firestore_config_str = os.getenv(configuracion)
|
| 8 |
|
| 9 |
if firestore_config_str is None:
|
| 10 |
+
print(f"Error: La variable de entorno '{configuracion}' no está definida.")
|
| 11 |
else:
|
| 12 |
try:
|
| 13 |
# Paso 2: Convertir el string JSON en un diccionario de Python
|
| 14 |
firestore_config_dict = json.loads(firestore_config_str)
|
| 15 |
|
| 16 |
+
# Paso 3: Asegurarse de que la carpeta de destino exista
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
# os.makedirs() creará la carpeta y sus padres si no existen
|
| 18 |
# El parámetro 'exist_ok=True' evita que falle si la carpeta ya existe
|
| 19 |
os.makedirs(os.path.dirname(ruta_archivo), exist_ok=True)
|
| 20 |
|
| 21 |
+
# Paso 4: Escribir el diccionario en el archivo en la ruta especificada
|
| 22 |
with open(ruta_archivo, 'w') as archivo_json:
|
| 23 |
json.dump(firestore_config_dict, archivo_json, indent=4)
|
| 24 |
|
fireWhale.py
CHANGED
|
@@ -3,12 +3,16 @@ from firebase_admin import auth
|
|
| 3 |
from firebase_admin import firestore
|
| 4 |
from firebase_admin import credentials
|
| 5 |
|
| 6 |
-
#
|
| 7 |
cred = credentials.Certificate('archivos/config.json')
|
| 8 |
firebase_admin.initialize_app(cred)
|
| 9 |
-
|
| 10 |
db = firestore.client()
|
| 11 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
def obtenDatosUIDFirebase(uid):
|
| 13 |
"""
|
| 14 |
Verifica si un UID existe en Firebase Authentication.
|
|
@@ -185,4 +189,23 @@ def incrementar_campo_numerico(collection_name, document_id, field_name, amount=
|
|
| 185 |
)
|
| 186 |
print(f"✔️ Campo '{field_name}' en el documento '{document_id}' actualizado/creado e incrementado en {amount}.")
|
| 187 |
except Exception as e:
|
| 188 |
-
print(f"❌ Error al operar en el campo '{field_name}' del documento '{document_id}': {e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
from firebase_admin import firestore
|
| 4 |
from firebase_admin import credentials
|
| 5 |
|
| 6 |
+
# Configuración para el primer proyecto (original)
|
| 7 |
cred = credentials.Certificate('archivos/config.json')
|
| 8 |
firebase_admin.initialize_app(cred)
|
|
|
|
| 9 |
db = firestore.client()
|
| 10 |
|
| 11 |
+
# Configuración para el segundo proyecto (splashmix-ai)
|
| 12 |
+
cred_splashmix = credentials.Certificate('archivos/splashmix-ai.json')
|
| 13 |
+
app_splashmix = firebase_admin.initialize_app(cred_splashmix, name='splashmix')
|
| 14 |
+
db_splashmix = firestore.client(app_splashmix)
|
| 15 |
+
|
| 16 |
def obtenDatosUIDFirebase(uid):
|
| 17 |
"""
|
| 18 |
Verifica si un UID existe en Firebase Authentication.
|
|
|
|
| 189 |
)
|
| 190 |
print(f"✔️ Campo '{field_name}' en el documento '{document_id}' actualizado/creado e incrementado en {amount}.")
|
| 191 |
except Exception as e:
|
| 192 |
+
print(f"❌ Error al operar en el campo '{field_name}' del documento '{document_id}': {e}")
|
| 193 |
+
|
| 194 |
+
def probar_conexion_splashmix():
|
| 195 |
+
"""
|
| 196 |
+
Prueba la conexión al Firestore de splashmix-ai intentando listar las colecciones.
|
| 197 |
+
|
| 198 |
+
Returns:
|
| 199 |
+
bool: True si la conexión es exitosa, False en caso contrario.
|
| 200 |
+
"""
|
| 201 |
+
try:
|
| 202 |
+
# Intentamos obtener una referencia de colección para verificar la conexión
|
| 203 |
+
collections = db_splashmix.collections()
|
| 204 |
+
collections_list = [col.id for col in collections]
|
| 205 |
+
|
| 206 |
+
print(f"✔️ Conexión exitosa a Firestore de splashmix-ai!")
|
| 207 |
+
print(f" Colecciones disponibles: {collections_list if collections_list else 'No hay colecciones aún o sin permisos'}")
|
| 208 |
+
return True
|
| 209 |
+
except Exception as e:
|
| 210 |
+
print(f"❌ Error al conectar con Firestore de splashmix-ai: {e}")
|
| 211 |
+
return False
|
herramientas.py
CHANGED
|
@@ -35,9 +35,14 @@ def registrar_evento(cus: str, firebase_user: str, tokens: int, sitio: str = Non
|
|
| 35 |
|
| 36 |
print("El sitio recibido es: ", sitio)
|
| 37 |
|
| 38 |
-
if sitio == '
|
| 39 |
print("llegué al otro firestore")
|
| 40 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 41 |
else:
|
| 42 |
fireWhale.incrementar_campo_numerico('usuarios', firebase_user, 'tokens', amount=tokens)
|
| 43 |
fireWhale.editaDato('usuarios', firebase_user, 'compro', True)
|
|
|
|
| 35 |
|
| 36 |
print("El sitio recibido es: ", sitio)
|
| 37 |
|
| 38 |
+
if sitio == 'crea-imagen':
|
| 39 |
print("llegué al otro firestore")
|
| 40 |
+
# Probar conexión al Firestore de splashmix-ai
|
| 41 |
+
conexion_exitosa = fireWhale.probar_conexion_splashmix()
|
| 42 |
+
if conexion_exitosa:
|
| 43 |
+
print("✔️ Prueba de conexión exitosa!")
|
| 44 |
+
else:
|
| 45 |
+
print("❌ Fallo en la prueba de conexión")
|
| 46 |
else:
|
| 47 |
fireWhale.incrementar_campo_numerico('usuarios', firebase_user, 'tokens', amount=tokens)
|
| 48 |
fireWhale.editaDato('usuarios', firebase_user, 'compro', True)
|