Skip to content

Carpetas en la cola, «Guardar sin revisar», voz sin regenerar y -Salida relativa - #4

Merged
Dathinel merged 1 commit into
mainfrom
claude/awesome-faraday-0mzvg6
Nov 1, 2026
Merged

Dathinel merged 1 commit into
mainfrom
claude/awesome-faraday-0mzvg6

Conversation

@Dathinel

@Dathinel Dathinel commented Nov 1, 2026

Copy link
Copy Markdown
Owner

Las preguntas que quedaban de la revisión de bloque, en un commit.

Qué cambia

  1. Soltar una carpeta encola los videos y audios que contiene, por orden de nombre y sin mirar en sus subcarpetas (decisión mía: una carpeta grande podría meter cientos de archivos; si prefieres recursivo, es cambiar EnumerateFiles en MediaInfo.Select). MediaInfo.Select reparte archivos, carpetas y lo que no es un medio; MediaSelection.Warning redacta el aviso («no es un video ni un audio…», «La carpeta «x» no tiene videos ni audios»). Lo que no está en el disco (un adjunto de Outlook, un elemento virtual) también avisa en la barra.
  2. «Guardar sin revisar»: casilla en Ajustes, apagada de fábrica y recordada en preferencias.json (SaveWithoutReview). Con ella, un solo archivo pasa por la misma cola que varios y se guarda al terminar; la barra dice «Guardado: …». SubtitleJob.ReviewsBeforeSaving es la regla.
  3. Guardar sin regenerar el WAV: SubtitleJob.SaveAsync recibe spoken (la transcripción de la que ya hay WAV); si SpeechSynthesizer.SameSpeech dice que la voz leería lo mismo (mismas palabras e idioma; los cortes de bloque y los espacios no cuentan) y el WAV sigue ahí, no llama al módulo. La ventana lo recuerda tras una cola y tras cada Guardar.
  4. Menores: JsonFile escribe los JSON de estado de forma atómica (.tmp + renombrar) para Preferences y WindowPlacement; ResultFolder pasa a Subtitular.App (y su prueba se va con él, porque las pruebas no referencian la ventana); el aviso de elementos que no son medios sale ahora de Core.
  5. -Salida relativa en build\catalogo-entrada.ps1: se resuelve contra $PWD, como -Zip.

Pruebas

  • Nuevas: MediaSelectionTests (carpeta, mezcla, carpetas vacías, mensajes), SameSpeech, SaveAsync con WAV previo (con un módulo de voz inexistente: si devuelve el WAV es que no lo tocó), SaveWithoutReview y escritura atómica en PreferencesTests, -Salida relativa en CatalogoEntradaTests.
  • CatalogoEntradaTests lanza powershell en Windows y pwsh en otro sistema: así pude correr el script aquí.
  • Comprobado en Linux con el SDK 10.0: Subtitular.Core, Subtitular.Cli y las pruebas compilan con -warnaserror sin avisos; 70 pruebas en verde, y las 5 que fallan aquí son las que necesitan Windows (los .exe de los módulos y ffmpeg.exe), igual que antes del cambio. Subtitular.App (WinUI 3) no se puede compilar en Linux: la CI de Windows es la que lo confirma.

Para probar a mano

Bloque nuevo «Revisión de bloque» en docs/pruebas-a-mano.md. CHANGELOG.md actualizado en «[Sin publicar]».


Generated by Claude Code

…da relativa

- Soltar una carpeta encola los videos y audios que contiene (por nombre, sin
  subcarpetas); MediaInfo.Select reparte archivos, carpetas y lo que no es un
  medio, y MediaSelection.Warning redacta el aviso. Lo que no está en el disco
  (adjuntos, elementos virtuales) también se avisa.
- Casilla «Guardar sin revisar» (preferencia SaveWithoutReview): un solo
  archivo pasa por la cola y se guarda al terminar, sin vista previa.
- Guardar tras una cola no vuelve a generar el WAV de voz si las palabras y el
  idioma no cambiaron (SpeechSynthesizer.SameSpeech, parámetro spoken de
  SubtitleJob.SaveAsync); los cortes de bloque de la vista previa no cuentan.
- JsonFile: escritura atómica compartida por Preferences y WindowPlacement.
- ResultFolder pasa a Subtitular.App (abre el Explorador: cosa de la ventana).
- build\catalogo-entrada.ps1: una -Salida relativa va contra $PWD.
- Pruebas: MediaSelectionTests, SameSpeech y SaveAsync con WAV previo,
  SaveWithoutReview y escritura atómica en PreferencesTests, -Salida relativa
  en CatalogoEntradaTests (que en Linux corre con pwsh).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CfAg5yYwjHVkMHs83JZbKV
@Dathinel
Dathinel merged commit 7f931e9 into main Nov 1, 2026
1 check passed
@Dathinel
Dathinel deleted the claude/awesome-faraday-0mzvg6 branch November 1, 2026 13:13
Dathinel added a commit that referenced this pull request Nov 1, 2026
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants