zoom-attendance v0.3.5
zoom-attendance
Módulo que analiza un .txt exportado de una reunión de Zoom. Busca por una palabra clave y retorna un array de objetos con: el nombre del usuario; la hora; y el mensaje completo.
Ideal para obtener una planilla de asistencia.
Uso
Instalar módulo con npm.
npm install zoom-attendanceImportar getAttendance y pasar texto por parámetro:
// Modo 1
import { getAttendance, readTxt } from 'zoom-attendance';
// Modo 2
import zoomAtt from 'zoom-attendance';
zoomAtt.getAttendance({ /* ... */ });
// Leer txt
const text = readTxt('path/to.txt');
// Parámetros:
const { success, results } = getAttendance({
text: string; // String del txt.
language?: 'es' | 'en'; // Por defecto: es
searchFor?: string; // Por defecto: presente
initalHour?: allowedHours | false; // Ej: 11:20:00
finalHour?: allowedHours | false; // Ej: 11:25:00
cleanName?: boolean; // Por defecto: false
cleanNameByString?: string[]; // Ej: ['COM A','ISI..']
});
if (!success) {
console.log("No results found");
}
console.log(results);(!) Hay otro ejemplo de uso en el archivo example.ts.
Clean Name
El parámetro opcional cleanNameByString es un array de strings, donde cada string puede tener símbolos de regex. Ejemplo:
// Con:
cleanNameByString: ['ISI..', '2021'],
// Borrará a: ISI A, ISI B, ISI-A, ISI-B, etc.Se reemplaza lo matcheado con un espacio vacío. Más info de los símbolos regex:
También se puede usar como una función independiente, importando cleanByString.
Read text file
Con la función readTxt, se pasa por parámetro la ruta del archivo y devuelve un string. En caso de que haya un error leyendo (como que no exista el archivo), devolverá un string vacío: ''.
Expresión regular
/((?:\d{2}:?){3})\W(?:de)\W*((?:.)+)\W+(?:a\W+todos).*\W*(.*presente.*)/giNotas:
- no distingue mayúsculas o minúsculas.
- matchea el texto completo si encuentra la palabra clave.
presentees cambiado por la palabra a buscar.de,a,todoses cambiado según el idioma elegido. Por defecto, español.

group[1]: la hora del mensaje, teniendo el formato:HH:MM:ss.group[2]: nombre del usuario/alumno.group[3]. mensaje matcheado.
Ejemplo de zoom.txt:
18:10:55 De Inez J. Quandt a Todos:
Presente
18:11:25 De Julia D. Bellew a Todos:
presente
18:11:55 De Herman S. McCain a Todos:
PRESENTE
18:12:40 De Brian B. Humes a Todos:
presenteDevolvera un arreglo de objetos:
[
{
hour: "18:10:55",
name: "Inez J. Quandt",
message: "Presente"
},
// ... etc
]Contribuciones
Hacer fork y editar en el lenguaje TS, luego hacer un pull request y lo miro!
- Instalar dependencias de desarrollo (typescript) con:
npm i. - Scripts:
npm run dev # ejecuta TS sin pre-compilar
npm run build # compila a JS
npm run start # compila a JS y ejecutaSi te resultó útil: