Formato exe learning

This topic contains 13 respuestas, has 5 voices, and was last updated by  lmorillas Hace 10 años, 3 meses.

  • Author
    Entradas
  • #19209

    fercavi
    Member

    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í 😉

  • #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

  • #19221

    fercavi
    Member

    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.

  • #19223

    fercavi
    Member

    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

  • #19231

    jrfern
    Member

    $ exe_do -h

    Los expertos te hablarán de cómo contentv3.xml sustituye y mejora a content.data (que está ahí por compatibilidad).

  • #19241

    fercavi
    Member

    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.

  • #19247

    fercavi
    Member

    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

  • #19248

    fercavi
    Member

    Subo el archivo (como era .py daba error de seguridad

    Archivos adjuntos:
    You must be logged in to view attached files.
  • #19255

    Anónimo

    Hola 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 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:

    1. Crear un archivo .elp que haga la labor de plantilla con textos codificados en cada campo.
    2. Copiar el .elp plantilla para trabajar sobre la copia dejando la plantilla igual para posteriores usos.
    3. Exportar al fomato .xliff. Se trata de un formato xml pensado para traducir, pero también se puede usar para mantenimiento.
    4. Mediante un script que haga sustituciones en archivos de texto, sustituir en el archivo xliff cada campo codificado por el html que corresponda.
    5. Importar desde el archivo xliff al archivo .elp copiado.

    ¡Un saludo!

    • This reply was modified Hace 8 años, 9 meses by  fercavi.
  • #19258

    Hola Fercavi:

    ¿Te gustaría participar en el desarrollo de exe? Como todo proyecto de software libre, toda ayuda es bienvenida

    ¿Te atreves? 😉

  • #19282

    fercavi
    Member

    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

  • #19306

    fercavi
    Member

    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.html

    y 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

  • #19361

    fercavi
    Member

    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

  • #19402

    lmorillas
    Member

    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.

You must be logged in to reply to this topic.

Skip to content