feat: recursos de lectura con enlaces locales (60 PDFs/ZIPs)

This commit is contained in:
Ricardo Monla
2026-05-03 03:44:58 -03:00
parent db582f3c77
commit b08393558d
3 changed files with 78 additions and 61 deletions
+15 -1
View File
@@ -283,6 +283,8 @@ function procesarFila(filaHTML, tipoMaterial) {
);
const recursoURL = recursoMatch ? recursoMatch[1] : null;
const recursoTexto = recursoMatch ? recursoMatch[2] : null;
const recursoIDMatch = recursoURL ? recursoURL.match(/study-resources\/(\d+)\/show/) : null;
const recursoID = recursoIDMatch ? recursoIDMatch[1] : null;
// Extraer contenido de estudio real (dentro de redactor-usr-input)
const contenidoMatch = filaHTML.match(
@@ -312,6 +314,7 @@ function procesarFila(filaHTML, tipoMaterial) {
vimeoID,
recursoURL,
recursoTexto,
recursoID,
tipoMaterial,
};
}
@@ -519,6 +522,7 @@ function generarContenido() {
if (temas.length > 0) {
seccionesConContenido.push({
titulo: seccion.titulo,
carpeta: seccion.carpeta,
temas,
});
}
@@ -527,6 +531,7 @@ function generarContenido() {
if (seccionesConContenido.length > 0) {
libros.push({
titulo: modulo.titulo,
carpeta: modulo.carpeta,
secciones: seccionesConContenido,
});
}
@@ -1118,7 +1123,16 @@ body {
if (tema.recursoURL) {
const icono = tema.recursoTexto === "Abrir Archivo" ? "📄" : "🔗";
const etiqueta = tema.recursoTexto === "Abrir Archivo" ? "Archivo" : "Enlace";
bodyHTML += `<div class="nota-recurso">${icono} <strong>${etiqueta}:</strong> <a href="${tema.recursoURL}" target="_blank">${tema.titulo}</a></div>\n`;
// Buscar archivo local descargado
let recursoHref = tema.recursoURL;
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]}`;
}
}
bodyHTML += `<div class="nota-recurso">${icono} <strong>${etiqueta}:</strong> <a href="${recursoHref}" target="_blank">${tema.titulo}</a></div>\n`;
}
// Separador entre temas