#!/usr/bin/env python
# coding: utf-8
import xchat
# A modificar
# Para añadir un nuevo reason seguir el formato: "key" : "valor"
# dentro de los {}
reason = { "sexo" : "Este canal no es un canal de temática sexual, pruebe en #sexo.",
"spam" : "No se permite el SpaM en este canal",
"mayu" :"No se permite el uso abusivo de mayúsculas, ya estabas avisado/a.",
"troll" : "Su nick no se ajusta a las normas del canal. Cámbielo y podrá volver a entrar.",
"ayuda" : "Su búsqueda no se ajusta a las normas del canal.",
"mod" :"Modere su comportamiento.",
"repe" : "No se permite el abuso de repeticiones.",
"contactos" : "Este no es un canal de contactos." }
# Fin modificaciones
__module_autor__ = "chakal^-^"
__module_description__ = "Ban extendido. Banea con reason definidos con la posibilidad de desbanear en un tiempo."
__module_name__ = "BanExt"
__module_version__ = "1.0"
xchat.emit_print('Private Message to Dialog', __module_name__ , 'cargado.')
xchat.emit_print('Private Message to Dialog', __module_name__ , 'Comandos: /b y /nn.')
xchat.emit_print('Private Message to Dialog', __module_name__ , 'Ejemplo: /b nick reason 10.')
def GetHost(n):
for user in xchat.get_list("users"):
if user.nick == n:
return user.host.split("@")[1]
return None
def Ban_cb(word, word_eol, userdata):
global reason
nn = False
if len(word) < 3:
print "Sintaxis: /b|/nn NiCK reason [tban]]" % __module_name__
return xchat.EAT_ALL
nick = word[1]
chan = xchat.get_info("channel")
motivo = word[2].lower()
if word[0].lower() == "b":
host = GetHost(nick)
if not host:
print "El usuario %s no esta actualmente en %s" % (nick, chan)
return xchat.EAT_ALL
else:
nn = True
try:
check = reason[motivo]
except KeyError:
show = ""
for key in reason.keys():
show += key+","
print "Reason no encontrado, actuales reason: %s" % show.rstrip(",")
return xchat.EAT_ALL
if nn:
xchat.command("mode %s +b %s!*@*" % (chan, nick))
if word[-1].isdigit():
tban = str(int(word[-1])*60)
xchat.command("timer %s mode %s -b %s!*@*" % (tban, chan, nick))
else:
xchat.command("mode %s +b *!*@%s" % (chan, host))
if word[-1].isdigit():
tban = str(int(word[-1])*60)
xchat.command("timer %s mode %s -b *!*@%s" % (tban, chan, host))
xchat.command("kick %s %s" % (nick, reason[motivo]))
return xchat.EAT_ALL
def unload_cb(userdata):
xchat.emit_print('Private Message to Dialog', __module_name__ , 'descargado.')
HOOK = xchat.hook_command("badnick", Ban_cb)
HOOK = xchat.hook_command("b", Ban_cb)
HOOKUNLOAD = xchat.hook_unload(unload_cb)