~ubuntu-branches/ubuntu/utopic/gozerbot/utopic

« back to all changes in this revision

Viewing changes to build/lib/gplugs/botsnack.py

  • Committer: Package Import Robot
  • Author(s): Jeremy Malcolm
  • Date: 2012-04-03 21:58:28 UTC
  • mfrom: (3.1.11 sid)
  • Revision ID: package-import@ubuntu.com-20120403215828-6mik0tzug5na93la
Tags: 0.99.1-2
* Removes logfiles on purge (Closes: #668767)
* Reverted location of installed files back to /usr/lib/gozerbot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# plugs/botsnack.py
 
2
#
 
3
#
 
4
 
 
5
""" eat it """
 
6
 
 
7
__copyright__ = 'this file is in the public domain'
 
8
 
 
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
 
16
import random, os
 
17
 
 
18
plughelp.add('botsnack', 'give the bot a snack')
 
19
 
 
20
## UPGRADE PART
 
21
 
 
22
def upgrade():
 
23
    convertpickle(datadir + os.sep + 'old' + os.sep + 'botsnacklist', \
 
24
datadir + os.sep  + "plugs" + os.sep + "botsnack" + os.sep + 'botsnacklist')
 
25
 
 
26
## END UPGRADE PART
 
27
 
 
28
bsl = PlugPersist('botsnacklist')
 
29
 
 
30
if not bsl.data:
 
31
    bsl = PlugPersist('botsnacklist')
 
32
    if not bsl.data:
 
33
        bsl.data = []
 
34
 
 
35
def handle_botsnack(bot, ievent):
 
36
    """ botsnack .. give botsnack reply """
 
37
    if bsl.data:
 
38
        result = random.choice(bsl.data)
 
39
        result = result.replace('<nick>', ievent.nick)
 
40
        result = result.replace('<host>', ievent.userhost)
 
41
        ievent.reply(result)
 
42
    else:
 
43
        ievent.reply('smikkel ;]')
 
44
 
 
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')
 
48
tests.add('botsnack')
 
49
def handle_addbotsnack(bot, ievent):
 
50
    """ botsnack-add <reply> .. add botsnack reply """
 
51
    if not ievent.rest:
 
52
        ievent.missing('<what>')
 
53
        return
 
54
    # append and save
 
55
    bsl.data.append(ievent.rest)
 
56
    bsl.save()
 
57
    ievent.reply('botsnack added')
 
58
 
 
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')
 
64
 
 
65
def handle_listbotsnack(bot, ievent):
 
66
    """ botscnack-list .. list botsnack replies """
 
67
    ievent.reply(str(bsl.data))
 
68
 
 
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')
 
72
 
 
73
def handle_delbotsnack(bot, ievent):
 
74
    """ botsnack-del <reply> .. delete botsnack reply """
 
75
    if not ievent.rest:
 
76
        ievent.missing('<txt>')
 
77
        return
 
78
    try:
 
79
        bsl.data.remove(ievent.rest)
 
80
        bsl.save()
 
81
    except ValueError:
 
82
        ievent.reply('i have no %s in botsnacklist' % ievent.rest)
 
83
        return
 
84
    ievent.reply('botsnack %s removed' % ievent.rest)
 
85
 
 
86
cmnds.add('botsnack-del', handle_delbotsnack, 'OPER')
 
87
examples.add('botsnack-del', 'delete entry from botsnack list', 'botsnack-del \
 
88
thnx <nick> ;]')