Inicio dice lo que ya se hizo: el plan se olvida al mover y se vuelve a pensar solo
Auditoría de «mover y reorganizar». El motor movía bien, pero el plan en memoria solo se olvidaba al aplicar desde «Qué va a pasar»: tras «Hacer las N de una vez», apartar stock, juntar repetidos, reemplazar o deshacer, Inicio seguía ofreciendo lo ya hecho («5 cambios · Ver y aplicar», «Plan listo: 7 de 9») o, tras deshacer, daba por hecho lo que volvía a estar en desorden. Ahora cualquier movimiento olvida el plan y lo vuelve a pensar en segundo plano; un plan sin nada marcado es «hecho», cada ficha dice cuándo se hizo y cuántos movimientos, y el diagnóstico no cuenta como basura lo que ya está en _Para borrar. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Este commit está contenido en:
15
asistente.py
15
asistente.py
@@ -26,6 +26,7 @@ GRUPOS = [
|
||||
("stock_reciente", "Stock de Envato reciente", "tomas de Envato de piezas en curso"),
|
||||
("proxies", "Proxies", "copias ligeras que Resolve/Premiere regeneran solas"),
|
||||
("basura", "Basura de sistema y autoguardados", ".DS_Store, Thumbs.db, cachés, autosaves de After Effects"),
|
||||
("apartado", "Ya apartado en _Para borrar", "basura, proxies, stock viejo y originales reemplazados que la app ya apartó; se borran cuando tú quieras"),
|
||||
("exportados", "Exportados / masters", "videos finales renderizados"),
|
||||
("video_otro", "Otros videos", "videos que no son de cámara ni exportados (descargas, referencias, IA)"),
|
||||
("proyectos", "Proyectos de edición y diseño", ".drp, .prproj, .aep, .psd, .ai…"),
|
||||
@@ -37,7 +38,12 @@ TITULO = {k: t for k, t, _ in GRUPOS}
|
||||
QUE_ES = {k: q for k, _, q in GRUPOS}
|
||||
|
||||
|
||||
def _grupo(f, limite_stock):
|
||||
def _grupo(f, limite_stock, papeleras=()):
|
||||
# lo que ya está en _Para borrar no cuenta como basura, proxies o stock «por apartar»: ya se apartó.
|
||||
# Antes, después de apartar, Inicio decía «2 archivos de basura» (más que antes de apartar, porque
|
||||
# los proxies y el stock movidos también se marcan como basura) como si estuviera por hacer.
|
||||
if papeleras and any(f["ruta"].lower().startswith(p) for p in papeleras):
|
||||
return "apartado"
|
||||
if f["es_basura"] or f["rol"] == "basura":
|
||||
return "basura"
|
||||
if f["es_proxy"] or f["rol"] == "proxy":
|
||||
@@ -70,8 +76,9 @@ def diagnostico(raiz):
|
||||
"""Resumen corto y sencillo de lo que hay en la carpeta, por tipo de archivo."""
|
||||
raiz = os.path.normpath(raiz)
|
||||
con = O.db()
|
||||
filas = con.execute("SELECT rol, bytes, mtime, es_basura, es_proxy, es_stock, contexto, fecha FROM archivos WHERE raiz = ?",
|
||||
filas = con.execute("SELECT rol, bytes, mtime, es_basura, es_proxy, es_stock, contexto, fecha, ruta FROM archivos WHERE raiz = ?",
|
||||
(raiz,)).fetchall()
|
||||
papeleras = tuple(os.path.join(raiz, p).lower() + os.sep for p in O.R.PAPELERAS)
|
||||
esc = con.execute("SELECT * FROM escaneos WHERE raiz = ?", (raiz,)).fetchone()
|
||||
con.close()
|
||||
meses = int(O.CONFIG["optimizar"].get("meses_minimos", 3))
|
||||
@@ -79,7 +86,7 @@ def diagnostico(raiz):
|
||||
acc = {k: {"clave": k, "titulo": TITULO[k], "que_es": QUE_ES[k], "n": 0, "bytes": 0, "desde": None, "hasta": None} for k, _, _ in GRUPOS}
|
||||
total_b = 0
|
||||
for f in filas:
|
||||
g = acc[_grupo(f, limite)]
|
||||
g = acc[_grupo(f, limite, papeleras)]
|
||||
g["n"] += 1
|
||||
g["bytes"] += f["bytes"] or 0
|
||||
total_b += f["bytes"] or 0
|
||||
@@ -103,6 +110,8 @@ def diagnostico(raiz):
|
||||
frases.append(f"Los proxies suman {O._gb(b('proxies'))}: se regeneran solos, no hace falta guardarlos.")
|
||||
if acc["basura"]["n"]:
|
||||
frases.append(f"{acc['basura']['n']:,} archivos de basura de sistema o autoguardado ({O._gb(b('basura'))}).")
|
||||
if acc["apartado"]["n"]:
|
||||
frases.append(f"{acc['apartado']['n']:,} archivos ya apartados en «{O.R.PAPELERA}» ({O._gb(b('apartado'))}): ahí se quedan hasta que tú los borres.")
|
||||
dup = O.duplicados(raiz)
|
||||
if dup["grupos"]:
|
||||
frases.append(f"Hay {dup['n']} archivos repetidos ({O._gb(dup['bytes'])}) en {len(dup['grupos'])} grupos: se pueden juntar en subcarpetas Duplicados para revisarlos a mano.")
|
||||
|
||||
Referencia en una nueva incidencia
Block a user