0.3.5 • Published 3 years ago

zoom-attendance v0.3.5

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

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.

Representación gráfica de la expresión regular

  • 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:

Invitame un café en cafecito.app

ko-fi

0.3.5

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.4

3 years ago

0.3.0

3 years ago

0.2.1

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago