horarios-v1/rawJsonCreator.js

67 lines
2.1 KiB
JavaScript

let fs = require('fs');
const tabla = {};
fs.readFile('./raw3anioData.json',(err, data) => {
const miData = JSON.parse(data);
crearData(miData);
});
function crearData(data) {
let datos = data["Hoja1"];
let indiceAnios = [];
let indiceDatos = [undefined,undefined];
let cursosMap = {};
let anioActual = -1;
/* datos contiene un Array con las filas, cada una de estas filas es un array con las posiciones. */
const DIAS = ["Lunes","Martes","Miercoles","Jueves","Viernes"];
const NOMBRES_ANIOS = "(primer | segundo | tercer | cuarto | quinto)";
const regexNombresAnios = new RegExp(NOMBRES_ANIOS,"i");
const regexHoras = new RegExp("\d\d\s*[:]\s*\d\d\s*[-]\s*\d\d\s*[:]\s*\d\d","i");
for (let index in datos) {
let fila = datos[index];
for (let indexF in fila) {
let celda = fila[indexF];
let horaActual = "";
let diaActual = 0;
/* Revisa si es un inicio de anio */
if ((/semestre/i).test(celda) === true) {
console.log("Celda semestre: " + celda);
let nombreAnio = (regexNombresAnios.exec(celda))[0].trim();
console.log("Datos tras regex: '" + nombreAnio + "'");
anioActual++;
indiceAnios.push(nombreAnio);
tabla[nombreAnio] = {};
}
/* Revisa la hora actual */
else if (regexHoras.test(celda)) {
}
else if ((/\w+\s?=\s?\w+/i).test(celda) === false) {
if (indiceDatos[0] === undefined) indiceDatos[0] = index;
}
/* Mapea los cursos y sus abreviaturas en cursosMap para poder acceder a ellos facilmente */
else {
if (indiceDatos[1] === undefined) indiceDatos[1] = index-1;
let regex = /(\w+)(\s*=\s*)(\w+\s*)+(([(]\s?\w(,\w)*\s?[)]\s*)+(\w+\.?\s*)+)+/g;
let datosRegex = regex.exec(celda);
console.log("Datos tras regex\n" + celda + "\n" + datosRegex);
}
}
}
console.log(`Al final el obj es:\n\n${JSON.stringify(tabla)}\n\n`);
}