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-attendance
Importar 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.*)/gi
Notas:
- no distingue mayúsculas o minúsculas.
- matchea el texto completo si encuentra la palabra clave.
presente
es cambiado por la palabra a buscar.de
,a
,todos
es 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:
presente
Devolvera 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 ejecuta
Si te resultó útil: