1.8.0: red de seguridad tras la auditoría
- Deshacer vuelve a la interfaz (Historial, Últimos cambios y el aviso al aplicar). - «Elements» ya no marca como stock lo que tenga dentro: 50,7 GB de material propio dejaban de respaldarse y salían como desechables. - El plan contrasta el mes de la carpeta con la fecha de los archivos y avisa cuando no cuadran (727 GB en el material real iban al mes equivocado en verde). - aplicar(): un archivo bloqueado ya no corta el resto de su grupo. - Un escaneo interrumpido no reemplaza el inventario bueno. - Las uniones de carpeta de Windows no se recorren (colgaban el escaneo). - Abrir una carpeta pasó de 8,83 s a 0,21 s. - Plantillas: _Papelera migra a _Para borrar. - .dat/.idx/.bak dejan de ser basura; Cache deja de ser proxies; abreviaturas de mes bajan a confianza media. - Convertidor: varios formatos por clip, originales apartados fuera de candidatos, sufijo en modo espejo, temporal borrado al fallar, una sola cola. - Interfaz: accion() no pisa el estado del botón; rutas de Windows bien recortadas. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Este commit está contenido en:
15
reglas.py
15
reglas.py
@@ -29,6 +29,7 @@ def norm(s: str) -> str:
|
||||
MESES = ["enero", "febrero", "marzo", "abril", "mayo", "junio", "julio",
|
||||
"agosto", "septiembre", "octubre", "noviembre", "diciembre"]
|
||||
MESES_TITULO = [m.capitalize() for m in MESES]
|
||||
# abreviaturas: se entienden, pero nunca con confianza alta (ver MESES_DUDOSOS)
|
||||
MESES_ALIAS = {
|
||||
"setiembre": "septiembre", "septiempre": "septiembre", "sept": "septiembre",
|
||||
"sep": "septiembre", "ene": "enero", "feb": "febrero", "mar": "marzo",
|
||||
@@ -38,6 +39,8 @@ MESES_ALIAS = {
|
||||
"june": "junio", "july": "julio", "august": "agosto", "september": "septiembre",
|
||||
"october": "octubre", "november": "noviembre", "december": "diciembre",
|
||||
}
|
||||
# «Mar», «May» o «Ago» pueden ser un nombre propio, no un mes: se proponen con confianza media
|
||||
MESES_DUDOSOS = {"sep", "ene", "feb", "mar", "abr", "may", "jun", "jul", "ago", "oct", "nov", "dic"}
|
||||
|
||||
|
||||
def detectar_anio(nombre: str):
|
||||
@@ -55,10 +58,12 @@ def detectar_mes(nombre: str):
|
||||
return None, False
|
||||
num = int(m.group(1)) if m.group(1) else None
|
||||
palabra = m.group(2)
|
||||
abreviada = palabra in MESES_DUDOSOS
|
||||
palabra = MESES_ALIAS.get(palabra, palabra)
|
||||
mes_por_nombre = MESES.index(palabra) + 1 if palabra in MESES else None
|
||||
if mes_por_nombre:
|
||||
return mes_por_nombre, (num is not None and num != mes_por_nombre)
|
||||
# abreviada sin número («Mar») o número que no cuadra con el nombre: confianza media
|
||||
return mes_por_nombre, (num is not None and num != mes_por_nombre) or (abreviada and num is None)
|
||||
if num and 1 <= num <= 12 and not palabra:
|
||||
return num, True # «3» solo puede ser marzo… o la pieza número 3: se propone con confianza media, no alta
|
||||
return None, False
|
||||
@@ -153,10 +158,14 @@ EXT = {
|
||||
"programa": {".exe", ".msi", ".pkg", ".app", ".lnk"},
|
||||
}
|
||||
BASURA_NOMBRES = {".ds_store", "thumbs.db", "desktop.ini", ".localized", ".bridgesort", ".bridgelabelsandratings"}
|
||||
BASURA_EXT = {".tmp", ".crdownload", ".part", ".pek", ".cfa", ".sfk", ".bak", ".ims", ".idx", ".dat"}
|
||||
# solo temporales y cachés que un programa regenera solo. NO se ponen aquí extensiones de datos
|
||||
# (.dat, .idx, .bak): son de plugins, subtítulos o copias que la gente guarda a propósito.
|
||||
BASURA_EXT = {".tmp", ".crdownload", ".part", ".pek", ".cfa", ".sfk"}
|
||||
BASURA_DIRS = {"__macosx", "#recycle", ".synologyworkingdirectory", "@eadir", "media cache", "media cache files", "peak files"}
|
||||
BASURA_DIRS_CONTIENE = ["almacenamiento automatico", "auto save", "autosave", "auto-save", "adobe premiere pro auto"]
|
||||
PROXY_DIRS = {"proxy", "proxies", "proxy media", "proxytest", "_proxytest", "optimized media", "cache"}
|
||||
# «cache» a secas no entra: es un nombre demasiado genérico para mandar la carpeta entera a _Para borrar
|
||||
PROXY_DIRS = {"proxy", "proxies", "proxy media", "proxytest", "_proxytest", "optimized media",
|
||||
"cache files", "render cache"}
|
||||
|
||||
|
||||
def es_basura_archivo(nombre: str) -> bool:
|
||||
|
||||
Referencia en una nueva incidencia
Block a user