conf: use shutil.move instead of os.rename for saving
[urk.git] / scripts / ignore.py
blob509791258895eeb08d1463fa65c1c11d00b87811
1 import events
2 from conf import conf
3 import irc
5 def preRaw(e):
6 if e.msg[1] in ('PRIVMSG','NOTICE'):
7 address = e.network.norm_case('%s!%s' % (e.source, e.address))
8 for mask in conf.get('ignore_masks',()):
9 if irc.match_glob(address, e.network.norm_case(mask)):
10 events.halt()
12 def onCommandIgnore(e):
13 if 'ignore_masks' not in conf:
14 conf['ignore_masks'] = []
15 if 'l' in e.switches:
16 for i in conf['ignore_masks']:
17 e.window.write('* %s' % i)
18 elif 'c' in e.switches:
19 del conf['ignore_masks']
20 e.window.write('* Cleared the ignore list.')
21 elif e.args:
22 if '!' in e.args[0] or '*' in e.args[0] or '?' in e.args[0]:
23 mask = e.args[0]
24 else:
25 mask = '%s!*' % e.args[0]
26 if 'r' in e.switches:
27 if mask in conf['ignore_masks']:
28 conf['ignore_masks'].remove(mask)
29 e.window.write('* Removed %s from the ignore list' % e.args[0])
30 else:
31 raise events.CommandError("Couldn't find %s in the ignore list" % e.args[0])
32 else:
33 if mask in conf['ignore_masks']:
34 e.window.write('* %s is already ignored' % e.args[0])
35 else:
36 conf['ignore_masks'].append(mask)
37 e.window.write('* Ignoring messages from %s' % e.args[0])
38 else:
39 e.window.write(
40 """Usage:
41 /ignore \x02nick/mask\x02 to ignore a nickname or mask
42 /ignore -r \x02nick/mask\x02 to stop ignoring a nickname or mask
43 /ignore -l to view the ignore list
44 /ignore -c to clear the ignore list""")