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

« back to all changes in this revision

Viewing changes to gozerbot/plugs/ignore.py

  • Committer: Bazaar Package Importer
  • Author(s): Jeremy Malcolm
  • Date: 2009-09-14 09:00:29 UTC
  • mfrom: (1.1.4 upstream) (3.1.5 sid)
  • Revision ID: james.westby@ubuntu.com-20090914090029-uval0ekt72kmklxw
Tags: 0.9.1.3-3
Changed dependency on python-setuptools to python-pkg-resources
(Closes: #546435) 

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# plugs/ignore.py
 
2
#
 
3
#
 
4
 
 
5
""" ignore users. """
 
6
 
 
7
__copyright__ = 'this file is in the public domain'
 
8
 
 
9
# gozerbot imports
 
10
from gozerbot.commands import cmnds
 
11
from gozerbot.utils.generic import getwho
 
12
from gozerbot.examples import examples
 
13
from gozerbot.plughelp import plughelp
 
14
from gozerbot.ignore import addignore, delignore, ignore
 
15
from gozerbot.tests import tests
 
16
from gozerbot.users import users
 
17
 
 
18
plughelp.add('ignore', 'ignore users for a certain time')
 
19
 
 
20
def handle_ignore(bot, ievent):
 
21
 
 
22
    """ ignore nick for number of seconds. """
 
23
 
 
24
    try:
 
25
        (nick, nrseconds) = ievent.args
 
26
        nrseconds = int(nrseconds)
 
27
    except ValueError:
 
28
        ievent.missing('<nick> <seconds>')
 
29
        return
 
30
 
 
31
    userhost = getwho(bot, nick)
 
32
 
 
33
    if not userhost:
 
34
        ievent.reply("can't get userhost of %s" % nick)
 
35
        return
 
36
 
 
37
    allowed = users.allowed(userhost, 'OPER', log=False)
 
38
 
 
39
    if allowed:
 
40
        ievent.reply("can't ignore OPER")
 
41
        return
 
42
 
 
43
    addignore(userhost, nrseconds)
 
44
    ievent.reply("ignoring %s for %s seconds" % (nick, nrseconds))
 
45
    
 
46
cmnds.add('ignore', handle_ignore, ['OPER', 'IGNORE'], speed=1)
 
47
examples.add('ignore', 'ignore <nick> <seconds> .. ignore <nick> for <seconds>', 'ignore test 3600')
 
48
tests.add('ignore bottest 3', 'bottest').add('ignore-del bottest')
 
49
 
 
50
def handle_ignoredel(bot, ievent):
 
51
 
 
52
    """ remove nick from ignore list. """
 
53
 
 
54
    try:
 
55
        nick = ievent.args[0]
 
56
    except IndexError:
 
57
        ievent.missing('<nick>')
 
58
        return
 
59
 
 
60
    userhost = getwho(bot, nick)
 
61
 
 
62
    if not userhost:
 
63
        ievent.reply("can't get userhost of %s" % nick)
 
64
        return
 
65
 
 
66
    if delignore(userhost):
 
67
        ievent.reply("ignore for %s removed" % nick)
 
68
    else:
 
69
        ievent.reply("can't remove ignore of %s" % nick)
 
70
        
 
71
cmnds.add('ignore-del', handle_ignoredel, ['OPER', 'IGNORE'])
 
72
examples.add('ignore-del', 'ignore-del <nick> .. unignore <nick>', 'ignore-del dunker')
 
73
tests.add('ignore bottest 1').add('ignore-del bottest', 'removed')
 
74
 
 
75
def handle_ignorelist(bot, ievent):
 
76
 
 
77
    """ show ignore list. """
 
78
 
 
79
    ievent.reply(str(ignore))
 
80
    
 
81
cmnds.add('ignore-list', handle_ignorelist, 'OPER')
 
82
examples.add('ignore-list', 'show ignore list', 'ignore-list')
 
83
tests.add('ignore bottest 20').add('ignore-list', 'bottest').add('ignore-del bottest')