2.5 KiB
2.5 KiB
TASKS — napi
- Clonar estructura ~/napi-data/ a ~/napi-data2/ para ASIR1
- Crear ~/napi-data2/ con 21 carpetas (apellido) + _plantilla/notas.md adaptada a Programación
- Decisión arquitectónica: subdominio separado (asir1.qu3v3d0.tech) en vez de regex hack
- Crear var/www/napi2 en zzz con viewer.html + marked.min.js + twemoji.min.js
- Server block Nginx para asir1.qu3v3d0.tech (auth_pam → var/www/napi2/data/$remote_user)
- Crear 21 usuarios SFTP en zzz (apellido, leet-speak passwords, chroot home/USER/python)
- Unit systemd sshfs: ~/napi-data2/ ↔ zzz:/var/www/napi2/data/
- Generar lista alumnos-AKAs en ~/napi-data2/programacion-seguimiento-de-las-practicas.md
- Watcher XMPP para entregas ASIR1 — python-upload-watcher.sh
- v1: notificación básica por fichero (inotifywait + xmpp-notify.py)
- v1.1: detectar creación de carpetas (CREATE,ISDIR)
- v2: batching por carpeta — UN mensaje XMPP con listado completo (10s de silencio)
- v3: detectar re-entregas (delete+recreate <120s)
- v4: fix — estado en disco en vez de variables bash (subshell pipeline)
- v5: fix — eliminar 'local' fuera de funciones (syntax error en subshell)
- v6: filtrar __pycache__/, *.pyc, .git/, .venv/, node_modules/, .idea/, .vscode/
- v7: nombre completo en notificaciones ([María Jara] en vez de [jara])
- Corregir notificaciones: no listar __pycache__/
- Nombre completo en notificaciones XMPP (nombre + apellido)
- Documentación actualizada
DONE Clonar estructura ~/napi-data/ a ~/napi-data2/ para ASIR1
CLOSED: [2026-02-25]
DONE Crear ~/napi-data2/ con 21 carpetas (apellido) + _plantilla/notas.md adaptada a Programación
DONE Decisión arquitectónica: subdominio separado (asir1.qu3v3d0.tech) en vez de regex hack
- Más KISS: cada server block es independiente, sin lógica condicional
- SSL wildcard *.qu3v3d0.tech ya cubre todos los subdominios
DONE Crear var/www/napi2 en zzz con viewer.html + marked.min.js + twemoji.min.js
DONE Server block Nginx para asir1.qu3v3d0.tech (auth_pam → var/www/napi2/data/$remote_user)
DONE Crear 21 usuarios SFTP en zzz (apellido, leet-speak passwords, chroot home/USER/python)
DONE Unit systemd sshfs: ~/napi-data2/ ↔ zzz:/var/www/napi2/data/
DONE Generar lista alumnos-AKAs en ~/napi-data2/programacion-seguimiento-de-las-practicas.md
DONE Watcher XMPP para entregas ASIR1 — python-upload-watcher.sh
CLOSED: [2026-02-25]
DONE v1: notificación básica por fichero (inotifywait + xmpp-notify.py)
DONE v1.1: detectar creación de carpetas (CREATE,ISDIR)
DONE v2: batching por carpeta — UN mensaje XMPP con listado completo (10s de silencio)
DONE v3: detectar re-entregas (delete+recreate <120s)
DONE v4: fix — estado en disco en vez de variables bash (subshell pipeline)
DONE v5: fix — eliminar 'local' fuera de funciones (syntax error en subshell)
DONE v6: filtrar __pycache__/, *.pyc, .git/, .venv/, node_modules/, .idea/, .vscode/
DONE v7: nombre completo en notificaciones ([María Jara] en vez de [jara])
DONE Corregir notificaciones: no listar __pycache__/
CLOSED: [2026-02-25]
- Resuelto en watcher v6: is_junk() + is_junk_path() filtran directorios y ficheros basura
- Filtros: pycache, *.pyc, *.pyo, .git, .venv, node_modules, .idea, .vscode
- También filtra basura Windows/macOS: Thumbs.db, desktop.ini, .DS_Store, *.tmp
DONE Nombre completo en notificaciones XMPP (nombre + apellido)
CLOSED: [2026-02-25]
- Resuelto en watcher v7: función fullname() mapea username → nombre completo
- Ejemplo: [jara] → [María Jara], [barrios] → [Andrés Barrios]
- El log sigue usando username (para correlacionar con el sistema)