Inicio › Forums › Desarrolladores / Desenvolupadors / Garatzaileak / Desenvolvedores / Developers › Formato exe learning
This topic contains 13 respuestas, has 5 voices, and was last updated by lmorillas Hace 10 años, 1 mes.
-
AuthorEntradas
-
10 septiembre, 2014 at 6:35 #19209
Hola es posible que tenga que hacer un exportador a .elp, pero no encuentro el formato del archivo por ninguna parte. He encontrado, después de descomprimir que hay dos contents, content.data, contentv2.xml. Si borro el v2 funciona perfectamente, y el formato del .data no es trivial ya que parece que hay carácteres de control, existe alguna especificación en algún documento?
Además, el exportador sería para una wiki, sería posible marcar los artículos de la wiki como desincronizados o algo así para que cuando se abriera por primera vez cargara las páginas wiki?
Muchas gracias, y si esto no va aquí, por favor moverlo al sitio correspondiente, que soy nuevo aquí 😉
-
10 septiembre, 2014 at 10:29 #19215
Hola Fercavi:
disculpa pero no entiendo. Un elp es un zipeado pero no se a lo que te refieres. ¿Puedes meternos en contexto?
Saludos
-
10 septiembre, 2014 at 11:41 #19221
Perdona pero leyendo de nuevo me explico fatal. Me refiero al formato de content.data. Estamos mirando de crear un exportador a .elp, y necesitaría poder crear content.data de 0. Estoy intentandolo en python modificando el propio codigo del exelearning, pero al no estar muy familiarizado con python, y menos en el código de exelearning me estoy volviendo loco. Si tubiera el formato de content.data me podria hacer mi propio “creador de .elp”, la idea es hacerlo en php. No se si me explico.
-
10 septiembre, 2014 at 11:54 #19223
Me respondo a mi mismo:
Acabo de encontrar que se hace a través de serialización de una libreria (Twisted Python). Eso hace que sea demasiado largo reimplementar esto en php (o eso parece almenos). Como desde php se pueden lanzar scripts en servidor, sería posible lanzar una version modificada del exelearning para hacerlo? Hay alguna guía para hacer eso? Se puede usar el exe sin GUI a base de parámetros?
Muchas gracias
-
10 septiembre, 2014 at 17:02 #19231
$ exe_do -h
Los expertos te hablarán de cómo contentv3.xml sustituye y mejora a content.data (que está ahí por compatibilidad).
-
11 septiembre, 2014 at 6:10 #19241
Gracias jrfern, pero la versión de exelearning que utilizo (eXe Version 1.04.1 Revision: 3605intef7.1) si no tengo content.data me da un error. En cambio si quito contentdatav2.xml no dice nada. Y supongo que si no tiene v3 tampoco protestará. No sé si està retocada o algo, ya que es la que viene por defecto en la distribución de Linux que tenemos que utilizar (Lliurex). Lo que estoy intentando es, a partir de una lista de urls de páginas de una wikipedia, construir un elp.
-
11 septiembre, 2014 at 10:40 #19247
Me contesto a mi mismo, ya que ya he conseguido hacerlo. Copio y pego el script tal cual, no funcionará por que la wikipedia la tengo en local, solo bastaría cambiar la URL:
Por favor, no juzgueis como está programado que smiplemente es una prueba en (y mi primer programa en python).
Esto crea en el nodo principal un idebvice wikipedia y en un subnodo, mete dos idevices en el mismo nodo.
Saludos
-
11 septiembre, 2014 at 10:41 #19248
-
11 septiembre, 2014 at 16:05 #19255
AnónimoHola fercavi:
Lo primero, enhorabuena por el ejemplo que nos pasas. Para ser el primer programa Python no está nada mal.
Por aclararlo que hace exe_do: es la versión de línea de comandos de exelearning. Dispone de una serie de opciones orientadas a automatizar labores de mantenimiento sobre archivos existentes. Algunos tutoriales al respecto:
- En este apartado de la documentación podrás encontrar información sobre las opciones diponibles en las versiones 7.1 y 7.2
- Este otro tutorial te muestra algunas nuevas opciones de eXeLearning 2.0
- Finalmente, este tutorial te puede dar ideas de lo que se puede hacer a la hora de manejar muchos contenidos.
En todo caso, no dispone de opciones para crear archivos desde 0. Para eso es mejor la vía que propones: crear pequeños desarrollos como el que compartes y ejecutarlos en servidor o en un entorno local de desarrollo.
Si alguien quiere crear de forma masiva archivos .elp en base a información existente y no se atreve con Python pero no le da miedo crear scripts en MSDOS o en UNIX, puede probar con esta otra estrategia:
- Crear un archivo .elp que haga la labor de plantilla con textos codificados en cada campo.
- Copiar el .elp plantilla para trabajar sobre la copia dejando la plantilla igual para posteriores usos.
- Exportar al fomato .xliff. Se trata de un formato xml pensado para traducir, pero también se puede usar para mantenimiento.
- Mediante un script que haga sustituciones en archivos de texto, sustituir en el archivo xliff cada campo codificado por el html que corresponda.
- Importar desde el archivo xliff al archivo .elp copiado.
¡Un saludo!
- This reply was modified Hace 8 años, 8 meses by fercavi.
-
11 septiembre, 2014 at 16:58 #19258
Hola Fercavi:
¿Te gustaría participar en el desarrollo de exe? Como todo proyecto de software libre, toda ayuda es bienvenida
¿Te atreves? 😉
-
12 septiembre, 2014 at 7:35 #19282
Hola, gracias, ya me gustaría poder participar, pero por ahora mi único tiempo para programar lo tengo en el trabajo. Me toca hacer un exportador de mediawiki a exelearning. Cuando lo finalize lo pondré aquí también 😉
Saludos
-
12 septiembre, 2014 at 13:08 #19306
Una pregunta más a ver si alguien me puede ayudar, para lanzar el script en python desde php, me está dando un problema, cuando veo el archivo /var/log/apache2/error.log me da este error:
[…]
application.loadConfiguration()
File “/var/www/prova/exe/application.py”, line 156, in loadConfiguration
self.config = LinuxConfig()
File “/var/www/prova/exe/engine/config.py”, line 103, in __init__
self._overrideDefaultVals()
File “/var/www/prova/exe/engine/linuxconfig.py”, line 46, in _overrideDefaultVals
self.dataDir = Path(os.environ[‘HOME’])
File “/usr/lib/python2.7/UserDict.py”, line 23, in __getitem__
raise KeyError(key)
KeyError: ‘HOME’
He probado a ejecutar el script des de el usuario www-data (sudo su www-data) y daba error de permisos si www-data no era propietario de su home (/www/data), ya que por defecto es root. Luego de eso funciona perfectamente.
El script en php lo he probado con todas las opciones (exec, shell_exec, system…) y nada siempre el mismo error.Bueno, como no le había dado al submit, he buscado algo de información en internet:
http://itsjustsosimple.blogspot.com.es/2013/02/reading-environment-variables-in-python.htmly he cambiado todos los Path(os.environ[‘HOME’]) por Path(os.getenv(‘HOME’,’/tmp/’)) en linuxconfig.py y así parece que ya funcione, no dando error y generando el elp correspondiente
-
15 septiembre, 2014 at 10:30 #19361
Por si acaso a alguién le interesa, se puede decir que ya está acabado:
https://github.com/fercavi/media2elp
Esto es un servidor php que procesa la petición JSON de mediawiki, crea un arxivo .txt con el texto, y llama al parser (run.py) que es el encargado de todo. Hacen falta las carpetas de exe learning en la misma carpeta donde está todo para que funcione
-
19 septiembre, 2014 at 22:35 #19402
No entiendo muy bien lo que quieres hacer. Lo miro en el proyecto de github más tarde. Parsear mediawiki es sencillo. Por qué no utilizas su api desde python directamente? Para procesos más complejos nosotros usamos desde python mwclient.
-
AuthorEntradas
You must be logged in to reply to this topic.