From 38ab3b508a0594b505b11a621ca84a425b611fe1 Mon Sep 17 00:00:00 2001 From: Ricardo Monla Date: Sun, 3 May 2026 04:03:38 -0300 Subject: [PATCH] =?UTF-8?q?feat:=20visor=20PDF=20inline=20con=20iframe=20c?= =?UTF-8?q?olapsable=20+=20bot=C3=B3n=20descarga?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../descargas/LIBRO_DE_ESTUDIO.html | 482 +++++++++++++++--- descargar-curso/generar_dashboard.mjs | 77 ++- descargar-curso/sync.log | 90 ++++ descargar-curso/sync_and_deploy.sh | 68 +-- 4 files changed, 622 insertions(+), 95 deletions(-) diff --git a/descargar-curso/descargas/LIBRO_DE_ESTUDIO.html b/descargar-curso/descargas/LIBRO_DE_ESTUDIO.html index 304f2a8..a68ff45 100644 --- a/descargar-curso/descargas/LIBRO_DE_ESTUDIO.html +++ b/descargar-curso/descargas/LIBRO_DE_ESTUDIO.html @@ -398,6 +398,58 @@ body { color: var(--color-primary); font-weight: 600; } +.pdf-viewer-wrap { + margin: 1rem 0; + border: 1px solid #d5e8f0; + border-radius: 8px; + overflow: hidden; + background: #f8fbfd; +} +.pdf-viewer-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.7rem 1rem; + background: linear-gradient(135deg, #eaf2f8, #d4e6f1); + cursor: pointer; + user-select: none; + font-size: 0.9rem; + transition: background 0.2s; +} +.pdf-viewer-header:hover { + background: linear-gradient(135deg, #d4e6f1, #aed6f1); +} +.pdf-toggle { + transition: transform 0.3s; + font-size: 0.8rem; + opacity: 0.6; +} +.pdf-viewer-wrap.collapsed .pdf-toggle { + transform: rotate(-90deg); +} +.pdf-viewer { + width: 100%; + height: 70vh; + border: none; + display: block; +} +.pdf-viewer-wrap.collapsed .pdf-viewer, +.pdf-viewer-wrap.collapsed .pdf-download-link { + display: none; +} +.pdf-download-link { + display: block; + text-align: center; + padding: 0.5rem; + font-size: 0.82rem; + color: var(--color-primary); + text-decoration: none; + background: #eaf2f8; + border-top: 1px solid #d5e8f0; +} +.pdf-download-link:hover { + background: #d4e6f1; +} .nota-vacio { color: var(--color-text-muted); font-style: italic; @@ -529,19 +581,40 @@ body {
  • Jugadores con Diferente Rodaje: Dentro de un mismo equipo, el que no jugó el fin de semana puede realizar una sesión de "choque" (roja), mientras que el titular debe realizar una de "recuperación" o "carga regular".


  • Conclusión: La periodización ágil no significa entrenar menos o sin rumbo, sino tener la capacidad resolutiva para adaptar el plan maestro a los vaivenes diarios del equipo y el contexto.

    2. Planificación del Vóleibol

    -

    Propuesta de planificación

    📄 Archivo: Planificación del Vóleibol
    +

    Propuesta de planificación

    🔗 Enlace: Planificación del Vóleibol

    3. Planificación del Vóleibol

    -

    Presentación de la 1era asignatura del curso

    📄 Archivo: Planificación del Vóleibol
    +

    Presentación de la 1era asignatura del curso

    +
    + 📄 Planificación del Vóleibol + +
    + + ⬇ Descargar PDF +

    4. Impacto de Partidos Consecutivos en la Carga de Trabajo, el Estado de Recuperación y el Bienestar de los Jugadores Profesionales de Voleibol

    Material de lectura complementaria

    🔗 Enlace: Impacto de Partidos Consecutivos en la Carga de Trabajo, el Estado de Recuperación y el Bienestar de los Jugadores Profesionales de Voleibol

    5. Balance de estrés-recuperación en jugadores universitarios de voleibol durante una temporada

    -

    Material de lectura complementaria

    📄 Archivo: Balance de estrés-recuperación en jugadores universitarios de voleibol durante una temporada
    +

    Material de lectura complementaria

    +
    + 📄 Balance de estrés-recuperación en jugadores universitarios de voleibol durante una temporada + +
    + + ⬇ Descargar PDF +

    6. NIVELES DE ESTRÉS-RECUPERACIÓN EN DEPORTISTAS VARONES DE LA PROVINCIA DE LEÓN A TRAVÉS DEL CUESTIONARIO RESTQ-76

    -

    Artículo de lectura complementaria

    📄 Archivo: NIVELES DE ESTRÉS-RECUPERACIÓN EN DEPORTISTAS VARONES DE LA PROVINCIA DE LEÓN A TRAVÉS DEL CUESTIONARIO RESTQ-76
    +

    Artículo de lectura complementaria

    +
    + 📄 NIVELES DE ESTRÉS-RECUPERACIÓN EN DEPORTISTAS VARONES DE LA PROVINCIA DE LEÓN A TRAVÉS DEL CUESTIONARIO RESTQ-76 + +
    + + ⬇ Descargar PDF +

    7. Incidencia de Lesiones en el Voleibol ¿Pueden ser una Guía para la Prescripción de la Preparación Física?

    Material de lectura complementaria

    🔗 Enlace: Incidencia de Lesiones en el Voleibol ¿Pueden ser una Guía para la Prescripción de la Preparación Física?
    @@ -598,19 +671,54 @@ body { "El equipo no gana solo por estar bien físicamente, gana porque juega bien al vóley. La preparación física es el aliado que permite entrenar más y mejor."

    2. Preparación Atlética

    -

    Presentación de la segunda asignatura

    📄 Archivo: Preparación Atlética
    +

    Presentación de la segunda asignatura

    +
    + 📄 Preparación Atlética + +
    + + ⬇ Descargar PDF +

    3. Modelos de planes de sesiones de preparación física

    -

    Planes de sesiones de preparación física

    📄 Archivo: Modelos de planes de sesiones de preparación física
    +

    Planes de sesiones de preparación física

    +
    + 📄 Modelos de planes de sesiones de preparación física + +
    + + ⬇ Descargar PDF +

    4. Modelos de planes

    -

    Planes deportistas intermedios

    📄 Archivo: Modelos de planes
    +

    Planes deportistas intermedios

    +
    + 📄 Modelos de planes + +
    + + ⬇ Descargar PDF +

    5. Planes deportistas principiantes

    -

    Modelos de planes

    📄 Archivo: Planes deportistas principiantes
    +

    Modelos de planes

    +
    + 📄 Planes deportistas principiantes + +
    + + ⬇ Descargar PDF +

    6. Modelo de sesiones de preparación física en el vóleibol

    -

    Modelos de sesiones de preparación física: preventiva, carga, choque y activación

    📄 Archivo: Modelo de sesiones de preparación física en el vóleibol
    +

    Modelos de sesiones de preparación física: preventiva, carga, choque y activación

    +
    + 📄 Modelo de sesiones de preparación física en el vóleibol + +
    + + ⬇ Descargar PDF +

    7. Modelo de ejercicios preventivos de lesiones en el vóleibol

    @@ -619,16 +727,37 @@ body {

    Sesión preventiva

    9. Modelo de Sesión de carga - choque

    -

    Modelo de sesión para deportistas expertos y avanzados

    📄 Archivo: Modelo de Sesión de carga - choque
    +

    Modelo de sesión para deportistas expertos y avanzados

    +
    + 📄 Modelo de Sesión de carga - choque + +
    + + ⬇ Descargar PDF +

    10. Efecto del entrenamiento de fuerza en el salto de jugadores adolescentes de voleibol: una revisión sistemática

    -

    Material de lectura complementaria

    📄 Archivo: Efecto del entrenamiento de fuerza en el salto de jugadores adolescentes de voleibol: una revisión sistemática
    +

    Material de lectura complementaria

    +
    + 📄 Efecto del entrenamiento de fuerza en el salto de jugadores adolescentes de voleibol: una revisión sistemática + +
    + + ⬇ Descargar PDF +

    11. Revisión Descriptiva de las Lesiones más Frecuentes Durante la Práctica del Voleibol

    Material de lectura complementaria

    🔗 Enlace: Revisión Descriptiva de las Lesiones más Frecuentes Durante la Práctica del Voleibol

    12. Resistencia y Fuerza Muscular como Factores Predominantes en el Remate entre Jóvenes Atletas de Voleibol

    -

    Artículo de lectura complementaria

    📄 Archivo: Resistencia y Fuerza Muscular como Factores Predominantes en el Remate entre Jóvenes Atletas de Voleibol
    +

    Artículo de lectura complementaria

    +
    + 📄 Resistencia y Fuerza Muscular como Factores Predominantes en el Remate entre Jóvenes Atletas de Voleibol + +
    + + ⬇ Descargar PDF +

    13. Ejercicios de Fuerza para el Tren Inferior con el Cinturón y el Plano Inclinado

    Material de lectura complementaria

    🔗 Enlace: Ejercicios de Fuerza para el Tren Inferior con el Cinturón y el Plano Inclinado
    @@ -679,164 +808,388 @@ body {
  • Recuperación: En caso de no aprobar (nota mínima 6), el alumno dispone de una semana para corregir y reenviar el trabajo.


  • 2. Consignas del Trabajo práctico

    -

    Hola a todos!

    Los saludo y quedo a disposición ante cualquier tipo de consultas!
    +

    Hola a todos!

    Los saludo y quedo a disposición ante cualquier tipo de consultas!
    +
    + 📄 Consignas del Trabajo práctico + +
    + + ⬇ Descargar PDF +

    Seguimientos de Equipos

    1. SEGUIMIENTO DE EQUIPOS

    Video en proceso de descarga
    SEGUIMIENTO DE EQUIPOS

    Clase en vivo

    2. . MODULO 1

    -

    Planteamientos de trabajos para la preparación de partidos

    📄 Archivo: . MODULO 1
    +

    Planteamientos de trabajos para la preparación de partidos

    +
    + 📄 . MODULO 1 + +
    + + ⬇ Descargar PDF +

    3. LA ESTADISTICA APLICADA A LA EVALUACION

    -

    MATERIAL LECTURA

    +

    MATERIAL LECTURA

    +
    + 📄 LA ESTADISTICA APLICADA A LA EVALUACION + +
    + + ⬇ Descargar PDF +

    4. Cambio de Pala. Conceptos

    -

    MATERIAL LECTURA

    +

    MATERIAL LECTURA

    +
    + 📄 Cambio de Pala. Conceptos + +
    + + ⬇ Descargar PDF +

    5. PORCENTAJE ZONA ARMADOR

    -

    PLANILLAS

    +

    PLANILLAS

    +
    + 📄 PORCENTAJE ZONA ARMADOR + +
    + + ⬇ Descargar PDF +

    6. BLOQUEO

    -

    PLANILLA SEGUIMIENTO

    📄 Archivo: BLOQUEO
    +

    PLANILLA SEGUIMIENTO

    +
    + 📄 BLOQUEO + +
    + + ⬇ Descargar PDF +

    7. Saque Seguimientos

    -

    SAQUE. Planilla

    📄 Archivo: Saque Seguimientos
    +

    SAQUE. Planilla

    +
    + 📄 Saque Seguimientos + +
    + + ⬇ Descargar PDF +

    8. Recepción y Ataque de Rotación

    -

    Planilla de seguimiento

    +

    Planilla de seguimiento

    +
    + 📄 Recepción y Ataque de Rotación + +
    + + ⬇ Descargar PDF +

    9. Planilla de Estadisticas

    -

    Saque-Recepcion-Ataque

    +

    Saque-Recepcion-Ataque

    +
    + 📄 Planilla de Estadisticas + +
    + + ⬇ Descargar PDF +

    10. SEGUIMIENTO ROTACION por ROTACION

    -

    Planilla

    +

    Planilla

    +
    + 📄 SEGUIMIENTO ROTACION por ROTACION + +
    + + ⬇ Descargar PDF +

    11. Obtención de Puntos

    Planilla
    -

    📄 Archivo: Obtención de Puntos
    +

    +
    + 📄 Obtención de Puntos + +
    + + ⬇ Descargar PDF +

    12. PLANILLA SEGUIMIENTO TECNICO EXCEL

    -

    MATERIAL LECTURA y APLICACION

    +

    MATERIAL LECTURA y APLICACION

    13. Formato observación de partidos

    -

    ATENCION: Este es un ejemplo de realización, que a través de la observación (estadísticas, videos, observación directa, etc.) se puede realizar un análisis para determinar cómo planificar el juego y entrenar al Equipo Propio.

    +

    ATENCION: Este es un ejemplo de realización, que a través de la observación (estadísticas, videos, observación directa, etc.) se puede realizar un análisis para determinar cómo planificar el juego y entrenar al Equipo Propio.

    +
    + 📄 Formato observación de partidos + +
    + + ⬇ Descargar PDF +

    14. Ranking Equipo Liga Nacional LAF 21

    -

    Material de Lectura

    +

    Material de Lectura

    15. Equipo Club Rosario Voleibol Rama Caballeros

    -

    INFORME ESTADISTICO

    Gentileza Cuerpo Técnico Club Rosario Voleibol (Liga Argentina de Clubes – EX A2- 2019-2020) Material complementario.

    +

    INFORME ESTADISTICO

    Gentileza Cuerpo Técnico Club Rosario Voleibol (Liga Argentina de Clubes – EX A2- 2019-2020) Material complementario.

    +
    + 📄 Equipo Club Rosario Voleibol Rama Caballeros + +
    + + ⬇ Descargar PDF +

    16. ​Por: Jim Miret, voleibol de primera línea

    -


    Copyright y proporcionado por: Asociación Estadounidense de Entrenadores de Voleibol

    En este artículo, queríamos probar el paradigma que sirve en el juego femenino para llegar a los pasadores tan rápido que es virtualmente imposible ponerse detrás del balón para pasarlo de manera efectiva.

    +


    Copyright y proporcionado por: Asociación Estadounidense de Entrenadores de Voleibol

    En este artículo, queríamos probar el paradigma que sirve en el juego femenino para llegar a los pasadores tan rápido que es virtualmente imposible ponerse detrás del balón para pasarlo de manera efectiva.

    +
    + 📄 ​Por: Jim Miret, voleibol de primera línea + +
    + + ⬇ Descargar PDF +

    Análisis de Equipos de Voleibol 1

    1. ANÁLISIS DE EQUIPO 1

    Video en proceso de descarga
    ANÁLISIS DE EQUIPO 1

    Clase en vivo

    2. ANALISIS Y SEGUIMIENTO 2

    -

    Análisis del Scout
    Gestión del Entrenador
    Dirección Estratégica

    +

    Análisis del Scout
    Gestión del Entrenador
    Dirección Estratégica

    📦 Descargar: ANALISIS Y SEGUIMIENTO 2

    3. Armado K1 .De Checco

    Video en proceso de descarga
    Armado K1 .De Checco

    VIDEO

    4. Análisis del Opuesto

    -

    Video

    📄 Archivo: Análisis del Opuesto
    +

    Video

    📦 Descargar: Análisis del Opuesto

    5. ​EVALUACION y ESTADISTICAS en el VOLEIBOL

    -


    Estadísticas: (o métodos estadísticos) Su objetivo es brindar instrumentos para poder valorar los sucesos que ocurren en la realidad.

    +


    Estadísticas: (o métodos estadísticos) Su objetivo es brindar instrumentos para poder valorar los sucesos que ocurren en la realidad.

    6. Estrategia . Táctica

    -

    MATERIAL DE LECTURA

    📄 Archivo: Estrategia . Táctica
    +

    MATERIAL DE LECTURA

    +
    + 📄 Estrategia . Táctica + +
    + + ⬇ Descargar PDF +

    7. ​Evaluación por Rotación

    -


    Programa Excel

    +


    Programa Excel

    8. PELOTA "PIPE"

    -

    Analisis video

    📄 Archivo: PELOTA "PIPE"
    +

    Analisis video

    📦 Descargar: PELOTA "PIPE"

    9. La estadística aplicada a la evaluación en VOLEIBOL

    -

    ¿Se utiliza algún método estadístico en el Voleibol? ¿Cuáles son viables? ¿En qué categoría o nivel de juego? ¿Para qué sirve o se utiliza la estadística? ¿Cómo se evalúa? ¿Qué datos se evalúan? ¿Para qué evaluamos? ¿Es el proceso de recolección preciso o el que se necesita? ¿Cómo se interpretan los datos obtenidos? ¿Se utilizarán los datos recolectados?

    +

    ¿Se utiliza algún método estadístico en el Voleibol? ¿Cuáles son viables? ¿En qué categoría o nivel de juego? ¿Para qué sirve o se utiliza la estadística? ¿Cómo se evalúa? ¿Qué datos se evalúan? ¿Para qué evaluamos? ¿Es el proceso de recolección preciso o el que se necesita? ¿Cómo se interpretan los datos obtenidos? ¿Se utilizarán los datos recolectados?

    +
    + 📄 La estadística aplicada a la evaluación en VOLEIBOL + +
    + + ⬇ Descargar PDF +

    10. CONDUCCION DE EQUIPOS

    -

    •Programar

    • Plan para el partido

    • Preparación del equipo.

    • Actividades previas al partido.

    Conducción del equipo durante el partido.

    📄 Archivo: CONDUCCION DE EQUIPOS
    +

    •Programar

    • Plan para el partido

    • Preparación del equipo.

    • Actividades previas al partido.

    Conducción del equipo durante el partido.

    +
    + 📄 CONDUCCION DE EQUIPOS + +
    + + ⬇ Descargar PDF +

    11. Análisis de: Bloqueo, defensa y contraataque en el voleibol femenino

    -

    ¿Qué sugiere el juego?

  • (SAQUE) - bloqueo - defensa - contraataque
  • 4 fundamentos del juego que interactúan
  • 2 sistemas (secuencias de acciones sintéticas y exhaustivas a nivel táctico):
  • SAQUE - BLOQUEO - DEFENSA
  • DEFENSA - reconstrucción - contraataque
  • +

    ¿Qué sugiere el juego?

  • (SAQUE) - bloqueo - defensa - contraataque
  • 4 fundamentos del juego que interactúan
  • 2 sistemas (secuencias de acciones sintéticas y exhaustivas a nivel táctico):
  • SAQUE - BLOQUEO - DEFENSA
  • DEFENSA - reconstrucción - contraataque
  • +
    + 📄 Análisis de: Bloqueo, defensa y contraataque en el voleibol femenino + +
    + + ⬇ Descargar PDF +

    12. “la cultura de las excusas” Artículo de Julio Velasco

    -

    También hay que aprender a perder 26/01/22

    +

    También hay que aprender a perder 26/01/22

    +
    + 📄 “la cultura de las excusas” Artículo de Julio Velasco + +
    + + ⬇ Descargar PDF +

    13. ¿Qué es una estrategia motivacional?

    -

    Es una herramienta que utiliza el docente/entrenador para estimular a sus alumnos y/o dirigidos en beneficio del equipo y la institución a la que representan a través de métodos o procedimientos con la intención de ser más eficientes y creativos en el juego.

    +

    Es una herramienta que utiliza el docente/entrenador para estimular a sus alumnos y/o dirigidos en beneficio del equipo y la institución a la que representan a través de métodos o procedimientos con la intención de ser más eficientes y creativos en el juego.

    +
    + 📄 ¿Qué es una estrategia motivacional? + +
    + + ⬇ Descargar PDF +

    14. ESTADISTICAS INDIVIDUAL CON GRAFICOS

    -

    Programa de EXcel

    +

    Programa de EXcel

    15. FORMATO DE OBSERVACIÓN DE EQUIPOS PARA PREPARAR PARTIDOS

    -

    MATERIAL DE LECTURA

    +

    MATERIAL DE LECTURA

    16. SEGUIMIENTOS Y ANÁLISIS de PARTIDOS

    -

    Planteamientos de trabajos para la preparación de partidos.

    +

    Planteamientos de trabajos para la preparación de partidos.

    17. Articulo de Lectura

    -

    Por: Jim Miret, Voleibol de primera línea

    Copyright y proporcionado por: Asociación Estadounidense de Entrenadores de Voleibol

    📄 Archivo: Articulo de Lectura
    +

    Por: Jim Miret, Voleibol de primera línea

    Copyright y proporcionado por: Asociación Estadounidense de Entrenadores de Voleibol

    +
    + 📄 Articulo de Lectura + +
    + + ⬇ Descargar PDF +

    18. ANALISIS DE CRITERIO POR FUNDAMENTOS (ENTRENAMIENTOS)

    -

    MATERIAL COMPLEMENTARIO

    +

    MATERIAL COMPLEMENTARIO

    19. Conocimiento de las tendencias de ataques rivales

    -

    Articulo de Lectura: Rev.int.med.cienc.act.fís.deporte - vol. 22 - número 88

    El objetivo del estudio fue investigar los efectos de proporcionar información probabilística, obtenida del análisis en vídeo de las tendencias de pase de las colocadoras oponentes, sobre el rendimiento en el bloqueo de una jugadora de alto nivel de voleibol.

    +

    Articulo de Lectura: Rev.int.med.cienc.act.fís.deporte - vol. 22 - número 88

    El objetivo del estudio fue investigar los efectos de proporcionar información probabilística, obtenida del análisis en vídeo de las tendencias de pase de las colocadoras oponentes, sobre el rendimiento en el bloqueo de una jugadora de alto nivel de voleibol.

    +
    + 📄 Conocimiento de las tendencias de ataques rivales + +
    + + ⬇ Descargar PDF +

    20. Análisis Tokio 2022 Masc

    -

    JJOO

    +

    JJOO

    +
    + 📄 Análisis Tokio 2022 Masc + +
    + + ⬇ Descargar PDF +

    21. ARTICULO LECTURA ESTADISTICAS

    -

    MATERIAL DE LECTURA (Autores italianos)

    +

    MATERIAL DE LECTURA (Autores italianos)

    22. ANALISIS DIRECCION DE ATAQUE- LIGA POLONIA

    -

    MATERIAL DE LECTURA

    +

    MATERIAL DE LECTURA

    +
    + 📄 ANALISIS DIRECCION DE ATAQUE- LIGA POLONIA + +
    + + ⬇ Descargar PDF +

    23. ​BLOQUEO-DEFENSA Pelota de valoración Admiración (Data Volley)

    -


    Artículo: Bloqueo y Defensa de “Las Panteras" (Selección Argentina Femenina de Voleibol) de la pelota admiración (Data Volley)

    +


    Artículo: Bloqueo y Defensa de “Las Panteras" (Selección Argentina Femenina de Voleibol) de la pelota admiración (Data Volley)

    +
    + 📄 ​BLOQUEO-DEFENSA Pelota de valoración Admiración (Data Volley) + +
    + + ⬇ Descargar PDF +

    Análisis de Equipos de Voleibol 2

    1. SEGUIMIENTOS Y ANALISIS III

    -
    - Planteamientos de trabajos para la preparación de partidos
    - Gestión táctica
    - Sin información PREVIA del Rival
    - La forma deportiva +
    - Planteamientos de trabajos para la preparación de partidos
    - Gestión táctica
    - Sin información PREVIA del Rival
    - La forma deportiva

    2. BLOQUEO - DEFENSA - CONTRATAQUE

    -

    MATERIAL LECTURA

    +

    MATERIAL LECTURA

    +
    + 📄 BLOQUEO - DEFENSA - CONTRATAQUE + +
    + + ⬇ Descargar PDF +

    3. Entrevista a Karcht Kiraly

    -

    Material de Lectura

    +

    Material de Lectura

    +
    + 📄 Entrevista a Karcht Kiraly + +
    + + ⬇ Descargar PDF +

    4. Gestión táctica de un juego BONITTA

    -

    MATERIAL DE LECTURA

    +

    MATERIAL DE LECTURA

    +
    + 📄 Gestión táctica de un juego BONITTA + +
    + + ⬇ Descargar PDF +

    5. CONDUCCION DE EQUIPOS

    -

    Material Lectura

    📄 Archivo: CONDUCCION DE EQUIPOS
    +

    Material Lectura

    +
    + 📄 CONDUCCION DE EQUIPOS + +
    + + ⬇ Descargar PDF +

    6. La Gestión táctica de un juego. Prof. Marco Bonitta

    -

    MATERIAL LECTURA

    +

    MATERIAL LECTURA

    7. Análisis Psicología Deportiva. materialde lectura

    -

    ¿Es necesario dar feedback o reforzar en el entrenamiento?

    By Cristhian Fernandez Oteroaccess

    +

    ¿Es necesario dar feedback o reforzar en el entrenamiento?

    By Cristhian Fernandez Oteroaccess

    Trabajo Práctico Final de la Unidad

    1. ANÁLISIS Y SEGUIMIENTO 3 - EXPLICACIÓN DEL TP

    Video en proceso de descarga
    ANÁLISIS Y SEGUIMIENTO 3 - EXPLICACIÓN DEL TP

    clase en vivo

    2. TRABAJO PRACTICO ANALISIS Y SEGUIMIENTO

    -

    PLANIFICACIÓNDEL PARTIDO: SISTEMA BLOQUEO-DEFENSA

    +

    PLANIFICACIÓNDEL PARTIDO: SISTEMA BLOQUEO-DEFENSA

    3. TRABAJO PRACTICO ANALISIS Y SEGUIMIENTO

    -

    en PDF

    PLANIFICACIÓNDEL PARTIDO: SISTEMA BLOQUEO-DEFENSA

    +

    en PDF

    PLANIFICACIÓNDEL PARTIDO: SISTEMA BLOQUEO-DEFENSA

    +
    + 📄 TRABAJO PRACTICO ANALISIS Y SEGUIMIENTO + +
    + + ⬇ Descargar PDF +

    Módulo 2 — Entrenamiento

    Entrenamiento de Centrales y Opuestos/as

    1. EL OPUESTO

    CARACTERISTICAS Y DESARROLLO DEL OPUESTO
    -

    📄 Archivo: EL OPUESTO
    +

    +
    + 📄 EL OPUESTO + +
    + + ⬇ Descargar PDF +

    2. DESARROLLO DE LOS CENTRALES

    -

    EL DESARROLLO DE LAS CENTRALES EN ATAQUE Y BLOQUEO

    +

    EL DESARROLLO DE LAS CENTRALES EN ATAQUE Y BLOQUEO

    +
    + 📄 DESARROLLO DE LOS CENTRALES + +
    + + ⬇ Descargar PDF +

    3. PRIORIDAD EN EL BLOQUEO

    @@ -920,7 +1273,14 @@ body {
    Video en proceso de descarga
    SPLIT STEP

    SPLIT STEP

    3. LOS PUNTAS RECEPTORES Y EL LIBERO

    -

    PUNTAS RECEPTORES Y LIBEROS

    +

    PUNTAS RECEPTORES Y LIBEROS

    +
    + 📄 LOS PUNTAS RECEPTORES Y EL LIBERO + +
    + + ⬇ Descargar PDF +

    4. CARRERA DE ATAQUE DESDE 6 A 4

    Video en proceso de descarga
    CARRERA DE ATAQUE DESDE 6 A 4
    diff --git a/descargar-curso/generar_dashboard.mjs b/descargar-curso/generar_dashboard.mjs index 05b2c2d..5da2994 100644 --- a/descargar-curso/generar_dashboard.mjs +++ b/descargar-curso/generar_dashboard.mjs @@ -1040,6 +1040,58 @@ body { color: var(--color-primary); font-weight: 600; } +.pdf-viewer-wrap { + margin: 1rem 0; + border: 1px solid #d5e8f0; + border-radius: 8px; + overflow: hidden; + background: #f8fbfd; +} +.pdf-viewer-header { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.7rem 1rem; + background: linear-gradient(135deg, #eaf2f8, #d4e6f1); + cursor: pointer; + user-select: none; + font-size: 0.9rem; + transition: background 0.2s; +} +.pdf-viewer-header:hover { + background: linear-gradient(135deg, #d4e6f1, #aed6f1); +} +.pdf-toggle { + transition: transform 0.3s; + font-size: 0.8rem; + opacity: 0.6; +} +.pdf-viewer-wrap.collapsed .pdf-toggle { + transform: rotate(-90deg); +} +.pdf-viewer { + width: 100%; + height: 70vh; + border: none; + display: block; +} +.pdf-viewer-wrap.collapsed .pdf-viewer, +.pdf-viewer-wrap.collapsed .pdf-download-link { + display: none; +} +.pdf-download-link { + display: block; + text-align: center; + padding: 0.5rem; + font-size: 0.82rem; + color: var(--color-primary); + text-decoration: none; + background: #eaf2f8; + border-top: 1px solid #d5e8f0; +} +.pdf-download-link:hover { + background: #d4e6f1; +} .nota-vacio { color: var(--color-text-muted); font-style: italic; @@ -1121,18 +1173,35 @@ body { // Recurso descargable o enlace if (tema.recursoURL) { - const icono = tema.recursoTexto === "Abrir Archivo" ? "📄" : "🔗"; - const etiqueta = tema.recursoTexto === "Abrir Archivo" ? "Archivo" : "Enlace"; // Buscar archivo local descargado let recursoHref = tema.recursoURL; + let recursoLocal = null; if (tema.recursoID) { const secDir = path.join(__dirname, "descargas", "secciones", modulo.carpeta, seccion.carpeta); const archivos = fs.existsSync(secDir) ? fs.readdirSync(secDir).filter(f => f.startsWith(`recurso_${tema.recursoID}.`)) : []; if (archivos.length > 0) { - recursoHref = `secciones/${modulo.carpeta}/${seccion.carpeta}/${archivos[0]}`; + recursoLocal = archivos[0]; + recursoHref = `secciones/${modulo.carpeta}/${seccion.carpeta}/${recursoLocal}`; } } - bodyHTML += `
    ${icono} ${etiqueta}: ${tema.titulo}
    \n`; + + if (recursoLocal && recursoLocal.endsWith(".pdf")) { + // PDF inline con visor embebido + const pdfId = `pdf-${tema.id}-${tema.recursoID}`; + bodyHTML += `
    +
    + 📄 ${tema.titulo} + +
    + + ⬇ Descargar PDF +
    \n`; + } else { + // Otros archivos (ZIP, BIN) o enlaces — link normal + const icono = recursoLocal ? "📦" : "🔗"; + const etiqueta = recursoLocal ? "Descargar" : "Enlace"; + bodyHTML += `
    ${icono} ${etiqueta}: ${tema.titulo}
    \n`; + } } // Separador entre temas diff --git a/descargar-curso/sync.log b/descargar-curso/sync.log index 03ee5b3..1a28316 100644 --- a/descargar-curso/sync.log +++ b/descargar-curso/sync.log @@ -4,3 +4,93 @@ 🔄 Sincronización iniciada — 2026-05-03 03:40:01 /home/rmonla/Documentos/GitHub/rm-KSALDIS-DT/descargar-curso/sync_and_deploy.sh: línea 26: node: orden no encontrada +🔄 Sincronización iniciada — 2026-05-03 03:50:01 + +/home/rmonla/Documentos/GitHub/rm-KSALDIS-DT/descargar-curso/sync_and_deploy.sh: línea 26: node: orden no encontrada +🔄 Sincronización iniciada — 2026-05-03 04:00:01 + Registro: 30 | Mapa: 15 +📊 Mapa actualizado: 30 videos +📝 Regenerando libro... + 📂 Planificación (9 temas) + 📂 Preparación Atlética (15 temas) + 📂 Explicación del Trabajo Práctico (2 temas) + 📂 Seguimientos de Equipos (16 temas) + 📂 Análisis de Equipos de Voleibol 1 (23 temas) + 📂 Análisis de Equipos de Voleibol 2 (7 temas) + 📂 Trabajo Práctico Final de la Unidad (3 temas) + 📂 Entrenamiento de Centrales y Opuestos/as (25 temas) + 📂 Puntas y Liberos/as (13 temas) + 📂 Entrenamiento de Armadoras (1 temas) + 📂 Explicación del Trabajo Práctico (1 temas) + ✓ /home/rmonla/Documentos/GitHub/rm-KSALDIS-DT/descargar-curso/descargas/LIBRO_DE_ESTUDIO.md (33 KB) + ✓ /home/rmonla/Documentos/GitHub/rm-KSALDIS-DT/descargar-curso/descargas/LIBRO_DE_ESTUDIO.html (73 KB) + 115 temas de estudio +📤 Subiendo cambios... + Sin cambios en git. +🚀 Desplegando... +Permission denied, please try again. +Permission denied, please try again. +📹 Sincronizando videos al servidor... + 📤 Subiendo M1_Explicacion_TP_video_1173576229.mp4... + ❌ Error scp + 📤 Subiendo M1_Planificacion_PLANIFICACIÓN.mp4... + ❌ Error scp + 📤 Subiendo M1_Preparacion_Atletica_PREPARACIÓN_ATLÉTICA.mp4... + ❌ Error scp + 📤 Subiendo M1_Preparacion_Atletica_video_1063655414.mp4... + ❌ Error scp + 📤 Subiendo M1_Preparacion_Atletica_video_1063657248.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_APOYO_0.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_ATAQUE_B.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_BETI_A_UN_PIE_ATRAS.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_BETI_EN_JUEGO.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_HANA_POSITIVA.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_HANA_RECEPCION_A_2.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_HATU_BIEN_HECHA.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_HATU_CON_PELOTA_SEPARADA.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_HATUMARCADA_BIEN_ATACADA.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_HATU_MARCADA.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_HATU_RECEPCION_PERFECTA.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_PRIORIDAD_EN_EL_BLOQUEO.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_SKIPPED_STEP.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_1179197191.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_919342668.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_919346562.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_919355668.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_919359386.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_919359855.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_919360318.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_919363728.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_919365485.mp4... + ❌ Error scp + 📤 Subiendo M2_Centrales_y_Oponentes_video_919366263.mp4... + ❌ Error scp + 📤 Subiendo M2_Entrenamiento_Armadoras_video_1181188693.mp4... + ❌ Error scp + 📤 Subiendo M2_Explicacion_TP_video_1181892359.mp4... + ❌ Error scp + +✅ Sincronización completada — 0 videos nuevos subidos + 2026-05-03 04:00:07 diff --git a/descargar-curso/sync_and_deploy.sh b/descargar-curso/sync_and_deploy.sh index f4af92b..ecf14bd 100755 --- a/descargar-curso/sync_and_deploy.sh +++ b/descargar-curso/sync_and_deploy.sh @@ -4,7 +4,8 @@ # # Uso: bash descargar-curso/sync_and_deploy.sh -set -e +# Asegurar que node esté en el PATH (nvm no carga en cron) +export PATH="/home/rmonla/.nvm/versions/node/v20.20.1/bin:$PATH" SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" @@ -17,13 +18,25 @@ SUDO_PASS='lhsurnm$77WEB' cd "$PROJECT_DIR" echo "🔄 Sincronización iniciada — $(date '+%Y-%m-%d %H:%M:%S')" -echo "" -# 1. Actualizar mapa de videos desde registro -if [ -f "$REGISTRO" ]; then - PREV_COUNT=$(cat "$MAPA" 2>/dev/null | grep -c '"' || echo 0) - - node -e " +# 1. Verificar que exista el registro +if [ ! -f "$REGISTRO" ]; then + echo " ❌ No existe $REGISTRO" + exit 0 +fi + +# Contar videos en registro vs mapa +REG_COUNT=$(wc -l < "$REGISTRO" 2>/dev/null || echo 0) +MAPA_COUNT=0 +if [ -f "$MAPA" ]; then + MAPA_COUNT=$(grep -c '"' "$MAPA" 2>/dev/null || true) + MAPA_COUNT=$((MAPA_COUNT / 2)) # cada entry tiene 2 líneas con comillas +fi + +echo " Registro: $REG_COUNT | Mapa: $MAPA_COUNT" + +# 2. Actualizar mapa +node -e " const fs = require('fs'); const lines = fs.readFileSync('$REGISTRO', 'utf-8').trim().split('\n'); const map = {}; @@ -32,56 +45,51 @@ for (const line of lines) { if (id && archivo) map[id.trim()] = archivo.trim(); } fs.writeFileSync('$MAPA', JSON.stringify(map, null, 2)); -console.log('📊 Mapa: ' + Object.keys(map).length + ' videos'); +console.log('📊 Mapa actualizado: ' + Object.keys(map).length + ' videos'); " - - NEW_COUNT=$(cat "$MAPA" | grep -c '"' || echo 0) - - if [ "$PREV_COUNT" = "$NEW_COUNT" ]; then - echo " Sin cambios. Nada que hacer." - exit 0 - fi -fi -# 2. Regenerar libro +# 3. Regenerar libro echo "📝 Regenerando libro..." -cd "$SCRIPT_DIR" && node generar_dashboard.mjs 2>&1 | grep -E "✓|módulos|secciones|temas" +cd "$SCRIPT_DIR" +node generar_dashboard.mjs 2>&1 | grep -E "✓|temas" || true cd "$PROJECT_DIR" -# 3. Git push +# 4. Git push echo "📤 Subiendo cambios..." -git add descargar-curso/descargas/LIBRO_DE_ESTUDIO.html descargar-curso/descargas/LIBRO_DE_ESTUDIO.md 2>/dev/null -if git diff --cached --quiet; then +git add descargar-curso/descargas/LIBRO_DE_ESTUDIO.html descargar-curso/descargas/LIBRO_DE_ESTUDIO.md 2>/dev/null || true +if git diff --cached --quiet 2>/dev/null; then echo " Sin cambios en git." else - git commit -m "build: actualizar videos descargados (auto-sync)" --quiet - git push origin main --quiet + git commit -m "build: actualizar videos descargados (auto-sync)" --quiet 2>/dev/null || true + git push origin main --quiet 2>/dev/null || true echo " ✅ Push completado" fi -# 4. Deploy en servidor +# 5. Deploy en servidor echo "🚀 Desplegando..." -ssh "$SERVER" "echo '$SUDO_PASS' | sudo -S bash $WEB_DIR/deploy_ksaldis.sh" 2>&1 | grep -v "password" +ssh "$SERVER" "echo '$SUDO_PASS' | sudo -S bash $WEB_DIR/deploy_ksaldis.sh" 2>&1 | grep -v "password" || true -# 5. Sincronizar videos nuevos al servidor +# 6. Sincronizar videos nuevos al servidor echo "📹 Sincronizando videos al servidor..." LOCAL_VIDEOS="$SCRIPT_DIR/descargas/videos_offline" REMOTE_VIDEOS="$WEB_DIR/videos_offline" # Obtener lista de videos en el servidor -REMOTE_LIST=$(ssh "$SERVER" "ls $REMOTE_VIDEOS/ 2>/dev/null" || echo "") +REMOTE_LIST=$(ssh "$SERVER" "ls $REMOTE_VIDEOS/ 2>/dev/null" 2>/dev/null || echo "") -# Copiar solo los que faltan +# Copiar solo los que faltan (solo .mp4 completos, no parciales .fhls-*) COPIED=0 for mp4 in "$LOCAL_VIDEOS"/*.mp4; do [ -f "$mp4" ] || continue BASENAME=$(basename "$mp4") + # Saltar archivos parciales de yt-dlp + echo "$BASENAME" | grep -q "\.fhls-" && continue if echo "$REMOTE_LIST" | grep -qF "$BASENAME"; then continue # Ya existe fi echo " 📤 Subiendo $BASENAME..." - scp -q "$mp4" "$SERVER:/tmp/$BASENAME" - ssh "$SERVER" "echo '$SUDO_PASS' | sudo -S cp '/tmp/$BASENAME' '$REMOTE_VIDEOS/' && rm '/tmp/$BASENAME'" 2>&1 | grep -v "password" + scp -q "$mp4" "$SERVER:/tmp/$BASENAME" 2>/dev/null || { echo " ❌ Error scp"; continue; } + ssh "$SERVER" "echo '$SUDO_PASS' | sudo -S cp '/tmp/$BASENAME' '$REMOTE_VIDEOS/' && rm '/tmp/$BASENAME'" 2>&1 | grep -v "password" || true COPIED=$((COPIED + 1)) done