ACTUALIZACION V96 - ACTUALIZADOR AUTOMATICO DE BIBLIOTECAS
================================================================

OBJETIVO
--------
Crear un modulo que revise fuentes oficiales diariamente, detecte boletines, leyes,
manuales, guias, tipologias, capacitaciones, normas OCP u otros documentos nuevos,
y los registre automaticamente en la intranet si aun no existen.

ARCHIVOS INCLUIDOS
------------------
/uif/biblioteca_actualizador.php
/uif/biblioteca_actualizar_run.php
/uif/biblioteca_fuente_form.php
/uif/biblioteca_fuente_guardar.php
/uif/biblioteca_items_detectados.php
/uif/biblioteca_sync_ver.php
/uif/cron_actualizar_bibliotecas.php
/uif/includes/biblioteca_update_v96_common.php
/uif/includes/uif_v20_common.php
/uif/instalar_modulos_operativos_v96.php
/uif/sql/096_actualizador_bibliotecas.sql
/uif/storage/biblioteca_auto/

INSTALACION
-----------
1. Subir el contenido del ZIP dentro de la carpeta /uif/.
2. Reemplazar archivos cuando cPanel lo solicite.
3. Entrar como Administrador.
4. Ejecutar:
   https://notariacalmet.pe/uif/instalar_modulos_operativos_v96.php
5. Abrir:
   https://notariacalmet.pe/uif/biblioteca_actualizador.php
6. Presionar "Validar ahora" para probar manualmente.

CRON DIARIO A LAS 12:00 A.M.
----------------------------
En cPanel > Cron Jobs, agregar:
Minuto: 0
Hora: 0
Dia: *
Mes: *
Dia semana: *

Comando recomendado:
/usr/local/bin/php -q /home/USUARIO_CPANEL/public_html/notariacalmet.pe/uif/cron_actualizar_bibliotecas.php >/dev/null 2>&1

Si la ruta del hosting es distinta, copiar la ruta exacta que aparece en el modulo.
Tambien se puede usar URL con token, que se muestra dentro del modulo.

FUENTES INICIALES
-----------------
- SBS UIF Portal Prevencion LA/FT
- SBS Boletines informativos
- SBS Tipologias Regionales
- SBS Procedimientos sancionadores
- SBS Cursos virtuales UIF
- SBS Mapa de sitio PLAFT
- Colegio de Notarios de Lima - Legislacion
- GAFILAT 40 Recomendaciones
- FATF/GAFI Publicaciones
- FATF/GAFI Recomendaciones

NOTA SOBRE PAGINAS DINAMICAS
----------------------------
Algunas paginas, como portales con Angular/React o rutas con #, cargan el contenido por JavaScript.
Si PHP no logra detectar documentos en esas paginas, agregar una fuente adicional con la URL directa
al PDF, al endpoint API o al listado HTML real. El modulo deja el mensaje "SPA" cuando no detecta
por esta razon.

DESCARGA LOCAL VS ENLACE EXTERNO
--------------------------------
Por defecto registra enlaces externos para no llenar el hosting.
Si se marca "Descargar archivo local", descargara PDF/Word/Excel detectados en:
/uif/storage/biblioteca_auto/

CONTROL
-------
El modulo guarda:
- fuentes configuradas
- documentos detectados
- estado IMPORTADO / EXISTENTE / NUEVO / ERROR
- logs por cada sincronizacion
