uc3mICS está pensado para ser un CGI que sirva un horario de la UC3M. Elimina el acceso a través del portal adAS para permitir la sincronizción con sólo la URL. Así se puede, por ejemplo, sincronizar el calendario de Android con la aplicación ICSx⁵.
Tengo el CGI operativo en (https://danoloan.es/cgi/uc3mics); puedo asegurar que ningunas credenciales se quedarán guardadas, pero eso es cuestión de confianza...
Los horarios de la UC3M se pueden obtener en formato ICS en https://aplicaciones.uc3m.es/horarios-web/alumno/alumno.page.
Las URL de los ficheros ICS son de la forma:
https://aplicaciones.uc3m.es/horarios-web/alumno/verHorario.page?exp=EXP&per=PER&fmt=ics
donde EXP
y PER
son números.
Si <cgi-uri>
es la ruta de este CGI, basta con acceder a la siguiente URL,
sustituyendo EXP
y PER
con los valores anteriores:
<cgi-uri>?exp=EXP&per=PER
La petición HTTP debe tener la cabecera 'Authorization' de tipo 'Basic' conteniendo el NIA y la contraseña codificados en base64 (esto lo hacen algunas aplicaciones, ver Sincronización en Android), y devolverá entonces el fichero ICS.
No se puede recomendar lo suficiente el uso de HTTPS en un servicio como este, que las credenciales van sin cifrar.
La aplicación ICSx⁵ se puede usar para sincronizar el calendario generado por este script con Android. Al suscribirlo, hay que marcar la opción Requiere autenticación e introducir ahí las credenciales.
El script también se puede usar de forma interactiva, y sirve para obtener un recurso cualquiera que esté tras el portal adAS. Se preguntará por la ruta del recurso, que debe ser su URL completa.
Las dependencias están en el fichero requirements.txt
.
Este es el comando para instalarlas usando pip3
:
$> pip3 install -r requirements.txt
Las dependencias son:
La mitad del script este es copia-pega del gran script aulaglobal.py
de tairosonloa.