2.6.2: arranque en blanco
- Una instalación nueva no trae carpetas de fábrica: CONFIG_DEFECTO arrancaba con David Reyes, Danney y Camilo apuntando a Z:, W: y N:. raices viene vacía; el diccionario de clientes y discos sigue de serie porque es conocimiento, no estado. - Al abrir no se entra sola en ninguna carpeta: la primera opción del desplegable está vacía y la portada enseña «Tus carpetas» con su último escaneo, para entrar con un clic. - Un config.json ilegible se aparta en config.json.roto-<fecha> en vez de sustituirse por los valores de fábrica en silencio. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Este commit está contenido en:
@@ -37,7 +37,7 @@ import actualizador
|
||||
asistente.O = sys.modules[__name__]
|
||||
actualizador.O = sys.modules[__name__]
|
||||
|
||||
VERSION = "2.6.1"
|
||||
VERSION = "2.6.2"
|
||||
|
||||
CONGELADO = getattr(sys, "frozen", False)
|
||||
SIN_VENTANA = getattr(subprocess, "CREATE_NO_WINDOW", 0) # ffmpeg/ffprobe/net sin abrir consolas negras # empaquetado como .exe con PyInstaller
|
||||
@@ -58,11 +58,10 @@ LOCK = threading.RLock()
|
||||
# ==========================================================================
|
||||
|
||||
CONFIG_DEFECTO = {
|
||||
"raices": [
|
||||
{"ruta": r"Z:\Dermatologas\David Reyes", "cliente": "David Reyes", "tipo": "contenido"},
|
||||
{"ruta": r"W:\Danney", "cliente": "Danney Gómez", "tipo": "contenido"},
|
||||
{"ruta": "N:\\", "cliente": "Camilo Ortega", "tipo": "pauta"},
|
||||
],
|
||||
# ninguna carpeta puesta de fábrica: la primera vez el programa abre en blanco y las carpetas
|
||||
# entran cuando alguien las suelta. Lo que sí viene de serie es el diccionario de clientes y
|
||||
# discos del estudio, que es conocimiento, no estado.
|
||||
"raices": [],
|
||||
"clientes": {
|
||||
"David Reyes": {"tipo": "contenido", "alias": ["DR. DAVID REYES", "David Reyes", "Davids", "Dr David Reyes"]},
|
||||
"Danney Gómez": {"tipo": "contenido", "alias": ["Danney", "DRA. DANNEY GOMEZ", "Dra_Danney", "Dra Danney", "Skincenter"]},
|
||||
@@ -203,7 +202,18 @@ def cargar_json(ruta, defecto):
|
||||
try:
|
||||
with open(ruta, "r", encoding="utf-8") as f:
|
||||
return json.load(f)
|
||||
except (OSError, ValueError):
|
||||
except OSError:
|
||||
return json.loads(json.dumps(defecto))
|
||||
except ValueError as ex:
|
||||
# el archivo existe pero no se puede leer (una edición a mano con una coma de más, un corte a
|
||||
# medias). Antes se sustituía por los valores de fábrica y se guardaba encima: las carpetas
|
||||
# registradas y los clientes desaparecían sin decir nada. Ahora se aparta con copia.
|
||||
copia = f"{ruta}.roto-{time.strftime('%Y%m%d-%H%M%S')}"
|
||||
try:
|
||||
shutil.copy2(ruta, copia)
|
||||
except OSError:
|
||||
copia = "(no se pudo copiar)"
|
||||
print(f"AVISO: {os.path.basename(ruta)} no se pudo leer ({ex}); se apartó en {copia} y se parte de cero.")
|
||||
return json.loads(json.dumps(defecto))
|
||||
|
||||
|
||||
|
||||
Referencia en una nueva incidencia
Block a user