[RELEASE] jiol 3.16
A 4 años de su creación (y a 7 de la versión original en bash) tengo el agrado de comunicar el release de una nueva versión de jiol / iolsucker.
jiol es una librería que permite acceder programática a ITBA onLine. También provee una aplicación llamada iolsucker, que descarga los nuevos materiales didácticos sin que el usuario tenga que estar navegando por interminables carpetas y publica en un feed local los archivos que descarga.
Esta es una release de bugfix. Contiene dos soluciones:
- mejor manejo de error cuando el servidor falla: Cuando el servidor retorna error al procesar alguna página, iolsucker dejaba de procesar y reportaba el error. Ahora hay un reporte más claro de errores, y continua descargando cosas, mientras no ocurran demasiados errores.
- soporte de materias con caracteres prohibidos: Iolsucker verifica que todos los nombres que envia el servidor de IOL no sean peligrosos para la computadora local (por ejemplo si una materia tuviera caracteres como ../../ estariamos expuestos a un ataque remoto). Hay materias que tienen / en su nombre. Por ejemplo Probabilidad y Estadística (K/S). Iolsucker informaba este problema y se negaba a descargarla. Ahora remplaza los caracteres peligrosos por algunos más amigables. Reportado por Manuel Aráoz
- versiones: se actualiza springframework de la versión 2.5.4 a 2.5.6
Como siempre, la ultima versión se puede conseguir en http://www.leak.com.ar/~juan/code/jiol/. Se puede correr directamente desde el browser utilizando WebStart o descargar los archivos (en esta versión no proveemos un instalador para windows). El código fuente se encuentra en https://svn.leak.com.ar/jiol/trunk/ (el certificado es válido...es el que aparece en https://code.zauber.com.ar/repos/sandbox/, pero no matchea el nombre).
jiol es un proyecto que está compuesto de 3 subproyectos:
- jiol-api: interfaces que representan el modelo del negocio. Navegar
- jiol-api-impl: contiene implementaciones del api. Tanto la implementación real (contra el servidor IOL), como implementaciones mock para simular el sistema remoto.
- jiolsucker: programa que recorre las materias de un usuario y sincroniza su material didactico contra un directorio local. solo descarga lo nuevo.
final IolDAO iolDAO = new HTTPIolDao(new SystemPropertyLoginInfo(),
new HTTPClient(new NamingMapper(new URL("http://silvestre.itba.edu.ar/itbaV/"))),
new HTTPMaterialFactory(10, new DefaultRequestFactory(
new RelativeLocationValidator(),
new DefaultRequestFactory.DefaultMaterialFileFactory())));
for(final Course course : iolDAO.getUserCourses()) {
if(course.getLevel() == Course.LEVEL_GRADO) {
System.out.printf("%s %s\n", course.getCode(), e.getName());
for(final Material material : course.getFiles()) {
System.out.printf(" %s\n", material.getName());
}
}
}
para obtener:
72.20 REDES DE INFORMACION /72.20 Redes de Información - Vallés v2.pdf /redes 09 Notas de Final.pdf /RED Notas 09.pdf /Redes - Notas TPEs.pdf /Redes TPE - orden de exposiciones.pdf ...Si queres agregar nuevas funcionalidades o construir algo usando la librería y no sabes por donde empezar escribime. Un power user puede agregar funcionalidad sin escribir codigo fuente, editando xmls (por ejemplo si queremos que jiolsucker corra desde un cron, sin interfaz gráfica.)
Comments
-
Gracias por el release! Lamentablemente jiolsucker no anda en windows 7... acá te pego el mensaje de error para ver si se te ocurre como arreglarlo: Ocurrió algo inesperado!! Seguro es un bug. Contacte a su programador favorito ;) Al reportalo recuerde contar contar como reproducirlo. Fecha de suceso: Mon Sep 07 13:32:17 ART 2009 Problema raiz: java.io.IOException: Server returned HTTP response code: 500 for URL: http://silvestre.itba.edu.ar/itbaV/novlistAll.asp?showAll=false Problema: java.lang.RuntimeException: java.io.IOException: Server returned HTTP response code: 500 for URL: http://silvestre.itba.edu.ar/itbaV/novlistAll.asp?showAll=false StackTrace: ar.com.leak.iolsucker.impl.http.HTTPIolDao.getUnreadNews(HTTPIolDao.java:117) ar.com.leak.iolsucker.controller.News.run(News.java:53) ar.com.leak.iolsucker.Main.run(Main.java:124) ar.com.leak.iolsucker.Main.main(Main.java:53) causada por: Problema: java.io.IOException: Server returned HTTP response code: 500 for URL: http://silvestre.itba.edu.ar/itbaV/novlistAll.asp?showAll=false StackTrace: sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) ar.com.leak.iolsucker.impl.http.HTTPIolDao.getNews(HTTPIolDao.java:298) ar.com.leak.iolsucker.impl.http.HTTPIolDao.getUnreadNews(HTTPIolDao.java:114) ar.com.leak.iolsucker.controller.News.run(News.java:53) ar.com.leak.iolsucker.Main.run(Main.java:124) ar.com.leak.iolsucker.Main.main(Main.java:53) Propiedades: java.runtime.name=Java(TM) SE Runtime Environment sun.boot.library.path=C:\Program Files (x86)\Java\jre6\bin java.vm.version=14.1-b02 java.vm.vendor=Sun Microsystems Inc. java.vendor.url=http://java.sun.com/ path.separator=; java.vm.name=Java HotSpot(TM) Client VM file.encoding.pkg=sun.io sun.java.launcher=SUN_STANDARD user.country=US sun.os.patch.level= java.vm.specification.name=Java Virtual Machine Specification user.dir=C:\jiolsucker java.runtime.version=1.6.0_15-b03 java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment java.endorsed.dirs=C:\Program Files (x86)\Java\jre6\lib\endorsed os.arch=x86 java.io.tmpdir=C:\Users\Pablo\AppData\Local\Temp\ line.separator= java.vm.specification.vendor=Sun Microsystems Inc. user.variant= os.name=Windows 7 sun.jnu.encoding=Cp1252 java.library.path=C:\Program Files (x86)\Java\jre6\bin;.;C:\Windo... java.specification.name=Java Platform API Specification java.class.version=50.0 sun.management.compiler=HotSpot Client Compiler os.version=6.1 user.home=C:\Users\Pablo user.timezone=America/Buenos_Aires java.awt.printerjob=sun.awt.windows.WPrinterJob file.encoding=Cp1252 java.specification.version=1.6 java.class.path=C:\jiolsucker\lib\jiol-iolsucker-3.16.jar user.name=Pablo java.vm.specification.version=1.0 java.home=C:\Program Files (x86)\Java\jre6 sun.arch.data.model=32 user.language=en java.specification.vendor=Sun Microsystems Inc. awt.toolkit=sun.awt.windows.WToolkit java.vm.info=mixed mode, sharing java.version=1.6.0_15 java.ext.dirs=C:\Program Files (x86)\Java\jre6\lib\ext;C:\Win... sun.boot.class.path=C:\Program Files (x86)\Java\jre6\lib\resources.... java.vendor=Sun Microsystems Inc. file.separator=\ java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi sun.io.unicode.encoding=UnicodeLittle sun.cpu.endian=little sun.desktop=windows sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+mmx pentium...