because wikipedia is stupid
This commit is contained in:
commit
4b7cc141e5
|
@ -0,0 +1,49 @@
|
||||||
|
plugins are located in plugins/
|
||||||
|
|
||||||
|
focus: as little boilerplate as possible, without being arcane
|
||||||
|
|
||||||
|
commandprefix = '^(?:\.|$nick[:,\s]*)'
|
||||||
|
|
||||||
|
when the bot starts, it imports each plugin and tries to run setup, passing along an object that lets the plugin identify itself and expose functionality.
|
||||||
|
|
||||||
|
the objects' methods are:
|
||||||
|
|
||||||
|
register(name, function, hook, prefix=True, events=['PRIVMSG'], acl=['all'], private=0,
|
||||||
|
doc="", example="")
|
||||||
|
|
||||||
|
e.g.:
|
||||||
|
setup(bot):
|
||||||
|
bot.register("dice", dice, r'dice (.*)', doc="rolls a set of virtual dice", example="dice 3d5-4+d20")
|
||||||
|
|
||||||
|
name: the name of the command
|
||||||
|
function: the function to call, must have two arguments
|
||||||
|
hook: the regex to match
|
||||||
|
prefix: True: hook = commandprefix + hook
|
||||||
|
False: hook is unchanged
|
||||||
|
events: what IRC events to filter on. possible things are 'JOIN'
|
||||||
|
acl: access control list, elements are either 'all', or 'admin' (plan on extending this later)
|
||||||
|
private: whether the command works in /query. -1: no, only public. 0: either 1: only private
|
||||||
|
doc: documentation on how to use the command
|
||||||
|
example: an example usage
|
||||||
|
|
||||||
|
When a message is received, it is filtered against all registered commands, checking in the following order:
|
||||||
|
|
||||||
|
events
|
||||||
|
private
|
||||||
|
acl
|
||||||
|
hook
|
||||||
|
|
||||||
|
When it matches, function is called, passing along two objects, bot and input
|
||||||
|
|
||||||
|
input:
|
||||||
|
nick -- string, the nickname of whoever sent the message
|
||||||
|
channel -- string, the channel the message was sent on. Equal to nick if it's a private message.
|
||||||
|
msg -- string, the line that was sent
|
||||||
|
raw -- string, the raw full line that was sent
|
||||||
|
re -- the result of doing re.match(hook, msg)
|
||||||
|
|
||||||
|
attributes and methods of bot:
|
||||||
|
say(msg): obvious
|
||||||
|
reply(msg): say(input.nick + ": " + msg)
|
||||||
|
msg(target, msg): sends msg to target
|
||||||
|
(other irc commands, like mode, topic, etc)
|
Loading…
Reference in New Issue