leonett commited on
Commit
933c8ca
verified
1 Parent(s): e2a018a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +2 -9
app.py CHANGED
@@ -141,9 +141,7 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
141
 
142
  with gr.Row():
143
  with gr.Column():
144
- # Se elimina el par谩metro 'source' para que solo se permita la carga de archivos.
145
  video_input = gr.Video(label="Subir Video (solo archivos de video)", interactive=True)
146
- # Ambos botones inician desactivados
147
  procesar_btn = gr.Button("Procesar Fotogramas", interactive=False)
148
  with gr.Column():
149
  gallery_output = gr.Image(label="Collage de Muestra")
@@ -154,9 +152,7 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
154
  temp_dir_state = gr.State(None)
155
  zip_path_state = gr.State(None)
156
 
157
- # Al cargar un video: si es v谩lido, se activa el bot贸n "Procesar Fotogramas" y se desactiva "DESCARGAR FOTOGRAMAS"
158
  def on_video_change(video):
159
- # Verificar que se haya cargado algo y que contenga informaci贸n
160
  if not video:
161
  return gr.update(interactive=False), gr.update(interactive=False)
162
  if isinstance(video, dict) and video.get("name"):
@@ -168,7 +164,6 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
168
  allowed_extensions = ('.mp4', '.avi', '.mov', '.mkv')
169
  if not original_name.lower().endswith(allowed_extensions):
170
  raise gr.Error("Solo se permiten archivos de video (mp4, avi, mov, mkv)")
171
- # Al tener un video v谩lido, activa "Procesar Fotogramas" y desactiva "DESCARGAR FOTOGRAMAS"
172
  return gr.update(interactive=True), gr.update(interactive=False)
173
 
174
  video_input.change(
@@ -178,8 +173,6 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
178
  queue=False
179
  )
180
 
181
- # Al pulsar "Procesar Fotogramas": se procesa el video, se genera el collage y el ZIP, se desactiva el bot贸n de procesar
182
- # y se activa el bot贸n de descarga.
183
  def procesar_y_mostrar(video):
184
  btn_proc_update = gr.update(interactive=False)
185
  if temp_dir_state.value:
@@ -194,9 +187,9 @@ with gr.Blocks(title="Extracci贸n de Fotogramas Forenses") as demo:
194
  outputs=[gallery_output, download_file, temp_dir_state, zip_path_state, download_btn, procesar_btn],
195
  )
196
 
197
- # Funci贸n para activar la descarga: actualiza el componente File con la ruta del ZIP y lo hace visible.
198
  def trigger_download(zip_path):
199
- return gr.File.update(value=zip_path, visible=True)
200
 
201
  download_btn.click(
202
  fn=trigger_download,
 
141
 
142
  with gr.Row():
143
  with gr.Column():
 
144
  video_input = gr.Video(label="Subir Video (solo archivos de video)", interactive=True)
 
145
  procesar_btn = gr.Button("Procesar Fotogramas", interactive=False)
146
  with gr.Column():
147
  gallery_output = gr.Image(label="Collage de Muestra")
 
152
  temp_dir_state = gr.State(None)
153
  zip_path_state = gr.State(None)
154
 
 
155
  def on_video_change(video):
 
156
  if not video:
157
  return gr.update(interactive=False), gr.update(interactive=False)
158
  if isinstance(video, dict) and video.get("name"):
 
164
  allowed_extensions = ('.mp4', '.avi', '.mov', '.mkv')
165
  if not original_name.lower().endswith(allowed_extensions):
166
  raise gr.Error("Solo se permiten archivos de video (mp4, avi, mov, mkv)")
 
167
  return gr.update(interactive=True), gr.update(interactive=False)
168
 
169
  video_input.change(
 
173
  queue=False
174
  )
175
 
 
 
176
  def procesar_y_mostrar(video):
177
  btn_proc_update = gr.update(interactive=False)
178
  if temp_dir_state.value:
 
187
  outputs=[gallery_output, download_file, temp_dir_state, zip_path_state, download_btn, procesar_btn],
188
  )
189
 
190
+ # Soluci贸n para que el bot贸n de descarga retorne la ruta del ZIP
191
  def trigger_download(zip_path):
192
+ return zip_path
193
 
194
  download_btn.click(
195
  fn=trigger_download,