]> jfr.im git - erebus.git/blob - modules/msg.py
module cleanup
[erebus.git] / modules / msg.py
1 # Erebus IRC bot - Author: Erebus Team
2 # This file is released into the public domain; see http://unlicense.org/
3
4 # module info
5 modinfo = {
6 'author': 'Erebus Team',
7 'license': 'public domain',
8 'compatible': [2],
9 'depends': [],
10 'softdeps': ['help'],
11 }
12
13 # preamble
14 import modlib
15 lib = modlib.modlib(__name__)
16 modstart = lib.modstart
17 modstop = lib.modstop
18
19 # module code
20 import time
21
22 @lib.hook(clevel=lib.OP)
23 @lib.help('<message>', 'sends message to channel')
24 @lib.argsGE(1)
25 def cmsg(bot, user, chan, realtarget, *args):
26 chan.msg(' '.join(args))
27
28
29 def _getbot(bot, user, chan, realtarget, *args):
30 target = None
31 if args[0].startswith("#"):
32 target = bot.parent.channel(args[0])
33 if target is not None:
34 sendbot = target.bot
35 else:
36 target = args[0]
37 sendbot = bot.parent.randbot()
38 return (target, sendbot)
39
40 @lib.hook(glevel=lib.STAFF, needchan=False)
41 @lib.help('<target> <message>', 'send message to target')
42 @lib.argsGE(2)
43 def msg(bot, user, chan, realtarget, *args):
44 target, sendbot = _getbot(bot, user, chan, realtarget, *args)
45 sendbot.msg(target, ' '.join(args[1:]))
46
47 @lib.hook(glevel=lib.STAFF, needchan=False)
48 @lib.help('<target> <message>', 'send message to target as PRIVMSG')
49 def pmsg(bot, user, chan, realtarget, *args):
50 target, sendbot = _getbot(bot, user, chan, realtarget, *args)
51 sendbot.conn.send("PRIVMSG %s :%s" % (args[0], ' '.join(args[1:])))
52
53 @lib.hook(glevel=lib.MANAGER, needchan=False)
54 @lib.argsEQ(1)
55 def moo(bot, user, chan, realtarget, *args):
56 lines= [' .= , =.', " _ _ /'/ )\\,/,/(_ \\ \\", ' `//-.| ( ,\\\\)\\//\\)\\/_ ) |', " //___\\ `\\\\\\/\\\\/\\/\\\\///' /", ',-"~`-._ `"--\'_ `"""` _ \\`\'"~-,_', '\\ `-. \'_`. .\'_` \\ ,-"~`/', " `.__.-'`/ (-\\ /-) |-.__,'", ' || | \\O) /^\\ (O/ |', ' `\\\\ | / `\\ /', ' \\\\ \\ / `\\ /', " `\\\\ `-. /' .---.--.\\", " `\\\\/`~(, '() ('", ' /(O) \\\\ _,.-.,_)', " // \\\\ `\\'` /", ' / | || `""""~"`', " /' |__||", ' `o']
57 for i in range(len(lines)):
58 sender = bot.parent.bots.values()[i%len(bot.parent.bots.values())]
59 mylen = len(sender.nick)
60 padding = 15-mylen
61 sender.fastmsg(args[0], " "*padding + lines[i])
62 time.sleep(0.1)