gplugs.powernick

relay log messages to nicks joined on the partyline (DCC CHAT)

gplugs.powernick.handle_powernick(bot, ievent)
gplugs.powernick.handle_powernickdel(bot, ievent)
gplugs.powernick.handle_powernicklist(bot, ievent)
gplugs.powernick.init()
gplugs.powernick.logcallback(level, description, txt)
gplugs.powernick.shutdown()

CODE

# gozerplugs/plugs/powernick.py
#
#

""" relay log messages to nicks joined on the partyline (DCC CHAT) """

__status__ = "seen"

gozerbot imports

from gozerbot.callbacks import callbacks
from gozerbot.persist.persiststate import PlugState
from gozerbot.commands import cmnds
from gozerbot.users import users
from gozerbot.examples import examples
from gozerbot.partyline import partyline
from gozerbot.plughelp import plughelp
from gozerbot.tests import tests
import gozerbot.generic

plughelp

plughelp.add('powernick', 'plugin used to monitor log messages')

defines

state = PlugState()
state.define('nicks', {}) # username is key

logcallback callback

def logcallback(level, description, txt):
    global state
    for nick in state['nicks'].values():
        partyline.say_nick(nick, "[%s] %s" % (description, txt))

init function

def init():
    if not logcallback in gozerbot.utils.log.logcallbacks:
        gozerbot.utils.log.logcallbacks.append(logcallback)

shutdown function

def shutdown():
    if logcallback in gozerbot.utils.log.logcallbacks:
        gozerbot.utils.log.logcallbacks.remove(logcallback)

powenick command

def handle_powernick(bot, ievent):
    global state
    nick = ievent.nick
    if not partyline.is_on(nick):
        ievent.reply('%s is not joined on the partylist .. make a dcc chat connection to the bot' % nick)
        return
    username = users.getname(ievent.userhost)
    state['nicks'][username] = nick
    state.save()
    ievent.reply('powernick set to %s' % nick)

cmnds.add('powernick', handle_powernick, 'OPER')
examples.add('powernick', 'set powernick (gets /msg of bot logs)', 'powernick')
tests.add('powernick', 'not joined on partylist')

powenick-del command

def handle_powernickdel(bot, ievent):
    global state
    username = users.getname(ievent.userhost)
    try:
        del state['nicks'][username]
        state.save()
        ievent.reply('powernick removed')
    except (ValueError, KeyError):
         ievent.reply('no powernick set')

cmnds.add('powernick-del', handle_powernickdel, 'OPER')
examples.add('powernick-del', 'remove powernick (gets', 'powernick-del')
tests.add('powernick-del')

powenick-list command

def handle_powernicklist(bot, ievent):
    ievent.reply(state['nicks'].values())

cmnds.add('powernick-list', handle_powernicklist, 'OPER')
examples.add('powernick-list', 'show power nicks in use', 'powernick-list')
tests.add('powernick-list')

Table Of Contents

Previous topic

gplugs.pit

Next topic

gplugs.probe

This Page