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