]>
jfr.im git - erebus.git/blob - modules/msg.py
1 # Erebus IRC bot - Author: Erebus Team
2 # vim: fileencoding=utf-8
3 # Commands to message various destinations
4 # This file is released into the public domain; see http://unlicense.org/
8 'author': 'Erebus Team',
9 'license': 'public domain',
17 lib
= modlib
.modlib(__name__
)
18 modstart
= lib
.modstart
24 @lib.hook(('say','cmsg'), clevel
=lib
.OP
)
25 @lib.help('<message>', 'sends message to channel')
27 def say(bot
, user
, chan
, realtarget
, *args
):
28 chan
.msg(' '.join(args
))
31 def _getbot(bot
, user
, chan
, realtarget
, *args
):
33 if args
[0].startswith("#"):
34 target
= bot
.parent
.channel(args
[0])
38 sendbot
= bot
.parent
.randbot()
39 return (target
, sendbot
)
41 @lib.hook(glevel
=lib
.STAFF
, needchan
=False)
42 @lib.help('<target> <message>', 'send message to target')
44 def msg(bot
, user
, chan
, realtarget
, *args
):
45 target
, sendbot
= _getbot(bot
, user
, chan
, realtarget
, *args
)
46 sendbot
.msg(target
, ' '.join(args
[1:]))
48 @lib.hook(glevel
=lib
.STAFF
, needchan
=False)
49 @lib.help('<target> <message>', 'send message to target as PRIVMSG')
50 def pmsg(bot
, user
, chan
, realtarget
, *args
):
51 target
, sendbot
= _getbot(bot
, user
, chan
, realtarget
, *args
)
52 sendbot
.conn
.send("PRIVMSG %s :%s" % (args
[0], ' '.join(args
[1:])))
54 @lib.hook(glevel
=lib
.MANAGER
, needchan
=False)
56 def moo(bot
, user
, chan
, realtarget
, *args
):
57 lines
= [' .= , =.', " _ _ /'/ )\\,/,/(_ \\ \\", ' `//-.| ( ,\\\\)\\//\\)\\/_ ) |', " //___\\ `\\\\\\/\\\\/\\/\\\\///' /", ',-"~`-._ `"--\'_ `"""` _ \\`\'"~-,_', '\\ `-. \'_`. .\'_` \\ ,-"~`/', " `.__.-'`/ (-\\ /-) |-.__,'", ' || | \\O) /^\\ (O/ |', ' `\\\\ | / `\\ /', ' \\\\ \\ / `\\ /', " `\\\\ `-. /' .---.--.\\", " `\\\\/`~(, '() ('", ' /(O) \\\\ _,.-.,_)', " // \\\\ `\\'` /", ' / | || `""""~"`', " /' |__||", ' `o']
58 bots
= list(bot
.parent
.bots
.values())
59 for i
in range(len(lines
)):
60 sender
= bots
[i
%len(bots
)]
61 mylen
= len(sender
.nick
)
63 sender
.fastmsg(args
[0], " "*padding
+ lines
[i
])