PyAr / CDPedia

CDPedia is a project to make the Wikipedia accesable offline
34 stars 15 forks source link

Frapell enhancements #398

Open frapell opened 2 years ago

frapell commented 2 years ago

@fzuccolo @facundobatista Acá van las mejoras que les comente en https://github.com/PyAr/CDPedia/pull/397

Longitud maxima de archivo

Note que habia muchos errores de OSError: [Errno 36] File name too long por ejemplo con https://upload.wikimedia.org/wikipedia/commons/thumb/a/ab/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B8%D0%B9_%D0%BC%D0%BE%D1%82%D0%B8%D0%B2_%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%BE%D0%BA_%D0%92%D1%96%D0%B9%D1%81%D1%8C%D0%BA%D0%B0_%D0%97%D0%B0%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D1%81%D1%8C%D0%BA%D0%BE%D0%B3%D0%BE_%D0%BD%D0%B8%D0%B7%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE.png/30px-%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D0%BD%D0%B8%D0%B9_%D0%BC%D0%BE%D1%82%D0%B8%D0%B2_%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%BE%D0%BA_%D0%92%D1%96%D0%B9%D1%81%D1%8C%D0%BA%D0%B0_%D0%97%D0%B0%D0%BF%D0%BE%D1%80%D0%BE%D0%B6%D1%81%D1%8C%D0%BA%D0%BE%D0%B3%D0%BE_%D0%BD%D0%B8%D0%B7%D0%BE%D0%B2%D0%BE%D0%B3%D0%BE.png que aparece en este articulo https://es.wikipedia.org/wiki/Organizaci%C3%B3n_territorial_de_Ucrania

Lo que hago es agarrar el nombre completo, y splitearlo en X subcarpetas de N longitud, donde N es un tamaño que se setea en el config.py actualmente en 240 caracteres

Como resultado, el archivo local es llamado /images/commons/thumb/a/ab/30px-%25D0%259E%25D1%2581%25D0%25BD%25D0%25BE%25D0%25B2%25D0%25BD%25D0%25B8%25D0%25B9_%25D0%25BC%25D0%25BE%25D1%2582%25D0%25B8%25D0%25B2_%25D0%25BF%25D0%25B5%25D1%2587%25D0%25B0%25D1%2582%25D0%25BE%25D0%25BA_%25D0%2592%25D1%2596%25D0%25B9%25D1%2581%25D1%258C%25D0%25BA%25D0%25B0_%25D0%2597%25D0%25B0%25D0%25BF%25D0%25BE%25D1%2580%25D0%25BE%25D0%25B6%25D1%2581%25D1%258C%25D0%25BA%25D0%25BE%25D0/%25B3%25D0%25BE_%25D0%25BD%25D0%25B8%25D0%25B7%25D0%25BE%25D0%25B2%25D0%25BE%25D0%25B3%25D0%25BE.png (hay una barra metida ahi al medio :P) de manera que el archivo puede ser incluido.

No basarse unicamente en extension para saber si es SVG

En este articulo https://es.wikipedia.org/wiki/Artur_Chiling%C3%A1rov la firma tiene extension SVG, cuando en realidad es un PNG. Por este unico archivo, la ejecucion explotaba cuando intentaba hacer el embed. Lo que hice fue incluir python-magic como dependencia y a la hora de encontrar un archivo con extension SVG, realmente fijarse si es un SVG o no.

facundobatista commented 2 years ago

Ahí contesté las conversaciones, gracias!!