3.3.0: lo que entra nuevo ya entra ordenado

Las cuatro funciones que eligió Munka tras la 3.2.0:

- Nueva pieza: crea «NN- Título» en su mes con el número que toca y sus subcarpetas; si la
  pieza ya existe, lo dice. Se deshace mientras siga vacía.
- Bandeja de entrada: lo que se deje en _Entrada se reparte por mes, día de rodaje y cámara.
  «Traer material» copia una tarjeta comprobando cada archivo (se vuelve a leer y se compara
  la huella), conserva la fecha del rodaje y no toca el origen.
- Versiones del mismo clip: dos clips de cámara que se llaman igual, duran lo mismo y tienen
  la misma forma son el mismo clip; se queda el de más imagen y el otro va a Duplicados.
- Orden automático, apagado de fábrica: una tarea del Programador de tareas de Windows lanza
  «automatico», que lee todas las carpetas y hace solo lo seguro. No toca una carpeta que no
  se pueda leer entera ni una cuyo plan mueva más de 3.000 archivos, y si el programa ya está
  abierto se lo pide a él. Desinstalar quita la tarea.

De paso: una ruta que empieza por guion bajo ya no pierde el guion al ir a la papelera.

Pruebas: prueba_orden.py 24, probar.py 19, prueba_funcional.py 29, prueba_ventana.py 18
desde el código y 17 con el paquete.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Este commit está contenido en:
Labstream
2026-10-04 17:05:57 -05:00
padre c419d5d943
commit 477857db45
Se han modificado 11 ficheros con 1344 adiciones y 54 borrados

Ver fichero

@@ -237,7 +237,9 @@ def app_proyecto(ext: str):
return EXT_A_APP.get((ext or "").lower())
BASURA_NOMBRES = {".ds_store", "thumbs.db", "desktop.ini", ".localized", ".bridgesort", ".bridgelabelsandratings"}
BASURA_NOMBRES = {".ds_store", "thumbs.db", "desktop.ini", ".localized", ".bridgesort", ".bridgelabelsandratings",
# lo que la cámara deja en la tarjeta además de los clips: índices que solo le sirven a ella
"mediapro.xml", "sonycard.ind", "discmeta.xml", "status.bin"}
# 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"}
@@ -571,7 +573,7 @@ def cubeta_carpeta(nombre: str, diccionario: dict):
FUENTE_PALABRAS = {"grabacion", "grabaciones", "grabado", "grabados", "ursa", "sony", "osmo", "dji", "blackmagic",
"braw", "tascam", "audio", "otro", "otros", "a", "c", "camara", "material", "video", "videos",
"mp4", "mov", "de", "la", "el", "pocket", "drone", "dron", "mic", "celular",
"fotos", "foto", "atomos"}
"fotos", "foto", "atomos", "tarjeta", "tarjetas", "card", "sd"}
# carpetas que crea la propia tarjeta de la cámara: no son el nombre de nada
_TARJETA = {"dcim", "private", "m4root", "clip", "sub", "thmbnl", "general", "avchd", "bdmv", "stream",
@@ -757,6 +759,9 @@ COLOR_CUBETA = {
# Todo lo de la app en la carpeta del cliente vive aquí: los iconos de color, y lo que venga.
CARPETA_APP = ".organilab"
# La bandeja de entrada: lo que se deje aquí dentro, el plan lo abre siempre y lo reparte.
ENTRADA = "_Entrada"
# Qué es cada rol dicho en llano, para que el mapa pueda explicar qué cae en cada carpeta.
ROL_QUE = {
"camara_raw": "originales RAW de cámara (.braw, .r3d, .ari)",