Cargando...
 

 Obsoleta
La información de esta página es antigua. Puede que esté obsoleta.

Historial: Desarrollo de plugins en n4d

Previsualización de la versión: 7

1. Introducción

 

2. Plugins n4d

El desarrollo de módulos n4d es bastante sencillo, y consiste principalmente en:

  • Ddefinir la clase y los métodos que queremos implementar.
  • Indicar al sistema n4d cómo publicar estos métodos de cara a exterior.

La mejor manera de ver esto es através de un pequeño ejemplo que veremos a continuación.

La estructura de un plugin consta de dos ficheros, uno de configuración (/etc/n4d/conf.d) y otro de implementación de la clase (/usr/share/n4d/).

Dentro de la carpeta /usr/share/n4d tenemos diferentes carpetas en función del lenguaje de prograión que usemos para hacer el plugin:

  • python-­plugins: escritos en python
  • perl-plugins: escritos en perl
  • binary-plugins: escritos en bash

3. Creación de un plugin chat de aula

Nuestro plugin, que vamos a nombrar como N4dChat, implentará tres métodos, y dispondrá de un atributo donde guardar los mensajes:

  • ClaseN4dChat
    • Atributo mensaje: lista de mensajes.
    • Método SendMessage(ip, usuario, mensaje): Cogerá la ip de quién lo envia, el nombre de usuario y el mensaje.
    • Método getMessages(inicio): Devolverá todos los mensajes enviados a par del mensaje marcado como "Inicio".
    • Método saveChat(archivo): guardará todos los mensajes en el /tmp del servidor.

Los métodos sendMessage y getMEssage son accesibles para todo el mundo y savehat será solo accesible para administradores y profesores.

Para implementar esto crearemos un fichero /etc/n4d/conf.d/N4dChat amb el siguiente contenido:

 

[SETUP] type=python path=N4dChat.py class=N4dChat [METHODS] (ip)sendMessage=anonymous getMessages=anonymous saveChat=adm,admins,teachers

 

Podemos ver que tenemos dos secciones en el archivo:

  • SETUP: que es donde se configura el plugin.
    • type=python : definimos el lenguaje de programación del plugin.
    • path=N4dChat.py Nombre del fichero donde se implementan los métodos
    • class=N4dChat Nombre de la clase
  • METHODS: donde se indican los métodos que se hacen publicos en la clase.
    • (ip)sendMessage=anonymous : la ip delante indica que la ip de la máquina se envía como primer parámetro
    • getMessages=anonymous
    • saveChat=adm,admins,teachers

 

plugin N4dChat
import os import json class N4dChat: def __init__(self): ''' Class Constructor: Initializes Messages ''' # Define Messages as a List (empty) self.Messages=[] pass #def init def sendMessage(self, ip, username, message): ''' sends a Message to chat from user,ip ''' try: # Msg is a register formed by ip, username and message msg={"ip":ip, "username": username, "message":message} self.Messages.append(msg) except Exception as e: print "except "+str(e) return ­1 #def sendMessage def getMessages(self,startMsg): ''' returns messages from startMsg to last message ''' try: # Python sublists notation: list[stat:end] return(self.Messages[int(startMsg):]); except Exception as e: print "except "+str(e) return ­1 return 0 #def getMessages def saveChat(self, filename): try: with open("/tmp/"+filename, 'w') as outfile: json.dump(self.Messages, outfile) except Exception as e: print "except "+str(e) return ­1 return 0 # def saveChat #class N4dChat

 

Historial

Avanzado
Información Versión
2017-05-08 09:35 alviboi 14
Ver
2017-05-08 09:01 alviboi 13
Ver
2017-01-31 13:51 alviboi 12
Ver
2017-01-31 13:48 alviboi 11
Ver
2017-01-31 13:22 alviboi 10
Ver
2017-01-31 13:01 alviboi 9
Ver
2017-01-31 13:00 alviboi 8
Ver
2017-01-31 12:21 alviboi 7
Ver
2017-01-31 12:19 alviboi 6
Ver
2017-01-31 12:19 alviboi 5
Ver
2017-01-31 12:09 alviboi 4
Ver
2017-01-31 12:00 alviboi 3
Ver
2017-01-31 11:54 alviboi 2
Ver
2017-05-08 09:35 alviboi 1
Ver

Historial

No hay registros que mostrar
Mastodon E-Mail