Spaces:
Sleeping
Sleeping
File size: 6,901 Bytes
2011e87 12cb4be 95da284 2011e87 95da284 2011e87 95da284 2011e87 95da284 afbac77 95da284 2011e87 95da284 12cb4be 2b6d34d 12cb4be afbac77 2b6d34d 12cb4be 95da284 12cb4be 95da284 12cb4be 2b6d34d 12cb4be 2b6d34d |
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 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
import os
import time
import socket
def obtenAccesoHF():
if local_check():
print("Estoy en entorno Local...")
import bridges
llave = bridges.llave
else:
print("Estoy en entorno Remoto...")
llave = os.getenv("llave")
print("Ésto es llave:", llave)
return llave
def local_check():
hostname = socket.gethostname()
#r-moibe-nowme
print("Dentro de local_check... , el hostname es: ", hostname)
#Estoy usando el nombre de la app para identificar que estoy corriendola en HF.
if "-nowme" in hostname:
print("Ejecutando api en el servidor.")
return False
else:
print("Ejecutando api en local.")
return True
def obtenUltimoTimestamp():
"""
Obtiene el último timestamp de renovación guardado.
"""
archivo_ruta = "archivos/last_timestamp.txt"
try:
with open(archivo_ruta, 'r') as archivo:
contenido = archivo.readline().strip()
ultimo_timestamp = int(contenido)
return ultimo_timestamp
except FileNotFoundError:
print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
return
except ValueError:
print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
return
def esNuevoDia():
"""
Compara dos timestamps (en formato string ISO) y devuelve True si han
pasado más de 24 horas entre ellos, False en caso contrario.
"""
timestamp_original = obtenUltimoTimestamp()
timestamp_actual = int(time.time())
try:
segundos_en_24_horas = 24 * 60 * 60
diferencia_en_segundos = abs(timestamp_actual - timestamp_original)
return diferencia_en_segundos > segundos_en_24_horas
except ValueError:
print("Error: Formato de timestamp incorrecto.")
return False
def obtenSegundosDisponibles():
print("Estoy en obten segundos disponibles...")
if esNuevoDia() == True:
renuevaSegundosDisponibles()
archivo_ruta = "archivos/seconds_available.txt"
try:
# Leer el número actual de segundos disponibles
with open(archivo_ruta, 'r') as archivo:
contenido = archivo.readline().strip()
segundos_disponibles = int(contenido)
return segundos_disponibles
except FileNotFoundError:
print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
return
except ValueError:
print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
return
def renuevaSegundosDisponibles():
#Segundos de cuota total gratuita disponibles al momento.
quota_total = 300
print("Estoy en renuevaSegundosDisponibles...")
archivo_ruta = "archivos/seconds_available.txt"
# Guardar el nuevo número en el archivo
try:
with open(archivo_ruta, 'w') as archivo:
archivo.write(str(quota_total))
print(f"Se renovaron los {quota_total} segundos disponibles.")
renuevaTimestampActual()
renuevaModeloPrincipal()
except Exception as e:
print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
def renuevaTimestampActual():
print("Estoy en renuevatimestmap actual...")
archivo_ruta = "archivos/last_timestamp.txt"
timestamp_actual = int(time.time())
# Guardar el nuevo número en el archivo
try:
with open(archivo_ruta, 'w') as archivo:
archivo.write(str(timestamp_actual))
print(f"Se renovó por el timestamp de éste momento.")
except Exception as e:
print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
def restaSegundosGPU(segundos):
"""
Lee el número de segundos disponibles desde seconds_available.txt,
resta los segundos dados como parámetro y guarda el nuevo valor en el archivo.
"""
print("Estoy en resta segundos...")
archivo_ruta = "archivos/seconds_available.txt"
segundos_disponibles = obtenSegundosDisponibles()
# Restar los segundos
nuevos_segundos_disponibles = segundos_disponibles - segundos
# Guardar el nuevo número en el archivo
try:
with open(archivo_ruta, 'w') as archivo:
archivo.write(str(nuevos_segundos_disponibles))
print(f"Se restaron {segundos} segundos. Ahora quedan {nuevos_segundos_disponibles} segundos disponibles.")
except Exception as e:
print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
def modificaModeloActual(nuevo_modelo):
"""
Actualiza el archivo archivos/modelo_actual.txt con el modelo funcional en caso de
problemas con el actual.
"""
print("Estoy en actualiza modelo actual...")
archivo_ruta = "archivos/modelo_actual.txt"
modelo_actual = obtenModeloActual()
# Guardar el nuevo número en el archivo
try:
with open(archivo_ruta, 'w') as archivo:
archivo.write(nuevo_modelo)
print(f"Se actualizó el modelo actual: {modelo_actual} por {nuevo_modelo}.")
except Exception as e:
print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
def obtenModeloActual():
"""
Obtiene el último timestamp de renovación guardado.
"""
archivo_ruta = "archivos/modelo_actual.txt"
try:
with open(archivo_ruta, 'r') as archivo:
contenido = archivo.readline().strip()
modelo_actual = str(contenido)
return modelo_actual
except FileNotFoundError:
print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
return
except ValueError:
print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
return
def obtenModeloPrincipal():
"""
Obtiene el modelo principal (default).
"""
archivo_ruta = "archivos/modelo_principal.txt"
try:
with open(archivo_ruta, 'r') as archivo:
contenido = archivo.readline().strip()
modelo_principal = str(contenido)
return modelo_principal
except FileNotFoundError:
print(f"Error: El archivo '{archivo_ruta}' no fue encontrado.")
return
except ValueError:
print(f"Error: El contenido del archivo '{archivo_ruta}' no es un número entero válido.")
return
def renuevaModeloPrincipal():
archivo_ruta = "archivos/modelo_actual.txt"
modelo_actual = obtenModeloActual()
modelo_principal = obtenModeloPrincipal()
# Guardar el nuevo número en el archivo
try:
with open(archivo_ruta, 'w') as archivo:
archivo.write(modelo_principal)
print(f"Se actualizó el modelo principal: {modelo_actual} por {modelo_principal}.")
except Exception as e:
print(f"Error al escribir en el archivo '{archivo_ruta}': {e}")
|