7
__copyright__ = 'this file is in the public domain'
9
from gozerbot.utils.generic import convertpickle
10
from gozerbot.datadir import datadir
11
from gozerbot.commands import cmnds
12
from gozerbot.examples import examples
13
from gozerbot.persist.persist import PlugPersist
14
from gozerbot.plughelp import plughelp
15
from gozerbot.tests import tests
18
plughelp.add('botsnack', 'give the bot a snack')
23
convertpickle(datadir + os.sep + 'old' + os.sep + 'botsnacklist', \
24
datadir + os.sep + "plugs" + os.sep + "botsnack" + os.sep + 'botsnacklist')
28
bsl = PlugPersist('botsnacklist')
31
bsl = PlugPersist('botsnacklist')
35
def handle_botsnack(bot, ievent):
36
""" botsnack .. give botsnack reply """
38
result = random.choice(bsl.data)
39
result = result.replace('<nick>', ievent.nick)
40
result = result.replace('<host>', ievent.userhost)
43
ievent.reply('smikkel ;]')
45
cmnds.add('botsnack', handle_botsnack, ['USER', 'CLOUD'])
46
examples.add('botsnack', 'give the bot a snack ;] .. botsnack responses \
47
can be added with botsnack-add', 'botsnack')
49
def handle_addbotsnack(bot, ievent):
50
""" botsnack-add <reply> .. add botsnack reply """
52
ievent.missing('<what>')
55
bsl.data.append(ievent.rest)
57
ievent.reply('botsnack added')
59
cmnds.add('botsnack-add', handle_addbotsnack, 'OPER', allowqueue=False)
60
examples.add('botsnack-add', 'botsnack-add <what> .. add a botsnack \
61
response, <nick> can be used to show nick of user giving the command', \
62
'botsnack-add thnx <nick> ;]')
63
tests.add('botsnack-add mekker', 'added').add('botsnack-del mekker', 'removed')
65
def handle_listbotsnack(bot, ievent):
66
""" botscnack-list .. list botsnack replies """
67
ievent.reply(str(bsl.data))
69
cmnds.add('botsnack-list', handle_listbotsnack, 'OPER')
70
examples.add('botsnack-list', 'show list of botsnack replies', 'botsnack-list')
71
tests.add('botsnack-add bla').add('botsnack-list', 'bla').add('botsnack-del bla')
73
def handle_delbotsnack(bot, ievent):
74
""" botsnack-del <reply> .. delete botsnack reply """
76
ievent.missing('<txt>')
79
bsl.data.remove(ievent.rest)
82
ievent.reply('i have no %s in botsnacklist' % ievent.rest)
84
ievent.reply('botsnack %s removed' % ievent.rest)
86
cmnds.add('botsnack-del', handle_delbotsnack, 'OPER')
87
examples.add('botsnack-del', 'delete entry from botsnack list', 'botsnack-del \