def remoto_cb(word, word_eol, userdata): """Esta funcion revisa los mensajes recibidos en busca de comandos remotos y cuando los encuentra, actua en consecuencia. Argumentos: word -- array de palabras que envia xchat a cada hook word_eol -- array de cadenas que envia xchat a cada hook userdata -- variable opcional que se puede enviar a un hook (ignorado) """ remotos_activo = auxiliar.lee_conf("comun", "remotos") if (remotos_activo == "1"): canales = auxiliar.gatodb_cursor_execute("SELECT canales FROM canales") for canal in canales: if word[2].lower() == canal[0].lower(): #Definimos la expresion regular que actuara como activador consejo_rem = re.compile("!consejo", re.IGNORECASE) hola_rem = re.compile("!hola", re.IGNORECASE) version_rem = re.compile("!version", re.IGNORECASE) #Si se ha encontrado actuamos if consejo_rem.search(word[3][1:]): #consejo_aleatorio_cb("0", "0", "0") comando = "say No hay consejos disponibles en este momento" xchat.command(comando) elif hola_rem.search(word[3][1:]): comando = "say Hola {0}!!".format(word[0].split("!")[0][1:]) xchat.command(comando) elif version_rem.search(word[3][1:]): xchat.command("gsoft") xchat.command("ginfo") for remoto in remotos: if remoto[3].search(word[1]): if remoto[3] == 1: #respuestas = remoto[1].split(",") xchat.command("say Esto no esta implementado aun") else: xchat.command("say {0}".format(remoto[1]))
# Cargamos la libreria de funciones de X-Chat import xchat import re import auxiliar ############################################################################# # Definimos algunas variables que describen el entorno de trabajo ############################################################################# ############################################################################# # Inicializamos el modulo ############################################################################# if auxiliar.CONECTADO: sql = "SELECT disparador,respuesta,es_comando FROM remotos" remotos_db = auxiliar.gatodb_cursor_execute(sql) remotos = [] for elemento in remotos_db: expresion = elemento[0] remoto = elemento[0], elemento[1], elemento[2], re.compile(expresion, re.IGNORECASE) remotos.append(remoto) ############################################################################## ## Definimos las funciones de informacion y ayuda sobre el manejo del script ############################################################################## #def gato_cb(word, word_eol, userdata): #"""Muestra la ayuda del GatoScript #Argumentos: #word -- array de palabras que envia xchat a cada hook #word_eol -- array de cadenas que envia xchat a cada hook #userdata -- variable opcional que se puede enviar a un hook (ignorado)
_SCRIPTDIR = xchat.get_info("xchatdir") _GATODIR = "".join([_SCRIPTDIR, "/gatoscript/"]) _GATODB_PATH = "".join([_GATODIR, "gatoscript.db"]) _SQL = "SELECT canales FROM canales" ############################################################################# # Inicializamos el modulo ############################################################################# if auxiliar.lee_conf("autosend", "activo") == "1": ACTIVO = True ALMACEN = "".join([_GATODIR, auxiliar.lee_conf("autosend", "directorio")]) TEXTO = auxiliar.lee_conf("autosend", "disparador") DISPARADOR = re.compile("".join(["^", TEXTO]), re.IGNORECASE) if auxiliar.CONECTADO == 1: CANALES = [] for canal in auxiliar.gatodb_cursor_execute(_SQL): CANALES.append(canal[0].lower()) else: ACTIVO = False ############################################################################# # Definimos las funciones de uso interno en el modulo ############################################################################# #def ejemplo_interno(): # """Ejemplo de funcion""" # # Comentario # auxiliar.gprint("Esta funcion solo se utiliza dentro de este modulo") #############################################################################