Commit Graph

569 Commits

Author SHA1 Message Date
Valentin Lorentz
857632c762 Fix commit c310d74a19 (no more 'Error: error' message on 'Missing capability' error). 2012-06-09 18:54:10 +02:00
Valentin Lorentz
741599c947 Add the channel where a command has been called in the logs ('XXX called by XXX').
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-05-23 01:47:22 -04:00
Valentin Lorentz
c310d74a19 Enfore capability checks when supybot.reply.error.noCapability is False. 2012-05-01 13:15:54 +00:00
Valentin Lorentz
590a992651 Add the channel where a command has been called in the logs ('XXX called by XXX'). 2012-03-18 20:45:17 +01:00
Daniel Folkinshteyn
43a3285f48 core: avoid casting data to string if it is already an instance of basestring, in irc.reply. 2011-12-18 12:39:05 +01:00
Daniel Folkinshteyn
e98ac0f4c2 Some improvements to the commands.process function - better process naming and informational output.
Conflicts:

	plugins/String/plugin.py
	src/commands.py
2011-08-25 11:36:47 +02:00
Daniel Folkinshteyn
37597bfe94 Create a commands.process function which runs a function inside a separate process.
This is the only way to limit the execution time of a possibly long-running python statement.
Use this on String.re, due to the possibility of pathologically long re matching in python.
This allows us to remove the 'trusted-only' restriction on string.re.
In the future, this should probably be used in other places that take user-supplied regexps,
such as 'misc last --regexp', for example, as well as other potentially long-running tasks
that can block the bot.

Conflicts:

	plugins/String/plugin.py
	src/commands.py
2011-08-15 17:24:33 +02:00
Valentin Lorentz
693ba6aba0 Don't tell owner to contact an admin. Closes GH-20. 2011-06-22 21:37:34 +02:00
Valentin Lorentz
676c08ad8e Fix possible truncation of messages
Possible bug with languages which has a long translation for '(XX more messages)'.
2010-10-31 13:35:23 +01:00
Valentin Lorentz
6b26861c23 Internationalize callbacks.py, commands.py, and conf.py ; and generated the messages.pot 2010-10-20 18:27:58 +02:00
James Vega
e7ef97e529 Ensure channel-specific reply.whenNotAddressed works.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 166f32dcb0)
2010-08-24 19:52:59 -04:00
James Vega
e13d3d6943 Decode/encode as 'string_escape' when (de)serializing the registry.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-08-24 19:43:24 -04:00
James Vega
166f32dcb0 Ensure channel-specific reply.whenNotAddressed works.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-07-26 19:48:37 -04:00
James Vega
c10d964604 Elide ignored replies from nested command output.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-06-24 00:33:04 -04:00
James Vega
0540513387 Decode/encode as 'string_escape' when (de)serializing the registry.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-01-30 23:03:35 -05:00
James Vega
eff20402ac Change canonize => normalize
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-08-27 16:41:34 -04:00
Štěpán Němec
a66034f852 Fix some typos/wordings.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-08-26 16:34:12 -04:00
Štěpán Němec
53cac5b078 callbacks.py: Remove duplicated getRealIrc() definition
NestedCommandsIrcProxy inherits the method from ReplyIrcProxy.
(Also fix some typos.)

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-08-20 11:23:12 -04:00
James Vega
54dda880d4 Add a pluginCommands kwarg to Commands.listCommands.
Plugins which implement their own listCommands method should pass their
non-typically discoverable commands to Commands.listCommands via this
mechanism.  This means that the de-duplication of commands is performed in one
spot instead of having each plugin implement it on their on in their
listCommands method.

This reverts commits 0ce829af6215b97e725f4d6d580d1151950be869 and
09fb0e6fc974445a3414fb03a94625f8538d4570.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-05-22 18:52:15 -04:00
James Vega
0d98118247 Allow getCommandHelp to be told whether to use simpleSyntax.
Use this to force Misc.help to ignore simpleSyntax since the user has
explicitly asked for the help.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-05-18 03:12:54 -04:00
James Vega
0615846ab3 Fix getCommandHelp's use of dynamic.msg
Default chan to None so we can still retrieve a config value if dynamic.msg
isn't valid (e.g., when running supybot-plugin-doc).

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-04-28 08:14:46 -04:00
James Vega
b3d97ea03e callbacks: Only use dynamic.msg if it's not None in getCommandHelp
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-04-28 00:33:03 -04:00
James Vega
84ca6f2ae3 callbacks: Update PluginRegexp docstring to reference (un)addressedRegexps
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-04-09 10:53:02 -04:00
James Vega
e00e161a73 Comments can't follow line continuations
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-03-12 17:16:56 -04:00
Jeremy Fincher
bc70ab8aad Fixes SR #2233215. 2009-03-12 13:54:05 -05:00
James Vega
db615f2c40 callbacks: Actually obey the to argument of reply() 2009-03-11 13:37:27 -04:00
James Vega
768119d258 Directly call isCommandMethod from listCommands. 2009-03-11 13:37:27 -04:00
James Vega
0b6926826a Make sure getCommandMethod only returns a valid command method
In situations like an alias, simply using getattr(self, command[0]) may
return a class method instead of the alias (think "Alias add die ...").
2009-03-11 13:37:26 -04:00
James Vega
eb6117da4f Embed formatArgumentError in Commands._callCommand.
This allows it to utilize getCommandHelp which means that plugins which define
their own getCommandHelp will no longer have broken help responses when
ArgumentError exceptions are raised.
2009-03-11 13:37:26 -04:00
James Vega
338a899782 Make getCommandHelp respect supybot.reply.showSimpleSyntax 2009-03-11 13:37:26 -04:00
James Vega
c936897488 Allow doc to be specified for getSyntax, similar to getHelp 2009-03-11 13:37:26 -04:00
James Vega
d72b696739 Do not pass arguments to object's __init__ 2009-03-11 13:37:26 -04:00
James Vega
73fb339b04 Only disable prefixNick if action is actually True 2009-03-11 13:37:26 -04:00
James Vega
a9d1830303 Do not prefixNick for actions 2009-03-11 13:37:26 -04:00
James Vega
ea6000b407 src/callbacks.py: Methods whose name != their canonical name should not be considered command methods (and therefore won't be listed in the output from Misc.list). 2006-08-28 13:15:21 +00:00
James Vega
cd2b58a7d5 src/callbacks.py: Allow the docstring to be passed to getHelp() 2006-08-28 13:13:43 +00:00
James Vega
48120bfdd2 src/callbacks.py: Update a debug statement so it prints the proper method name. 2006-05-01 17:08:44 +00:00
James Vega
a3e4fc5b1d Change the modeline to use softtabstop instead of tabstop. 2006-02-11 15:52:51 +00:00
Jeremy Fincher
1a5e05ee8e NestedCommandsIrcProxy should set self.repliedTo if self.error is called. 2005-06-30 22:10:04 +00:00
Jeremy Fincher
830a5c5084 Commented out an overly verbose (even for DEBUG level) log message. 2005-06-30 22:04:59 +00:00
James Vega
464c1e3cb9 src/callbacks: Remove a duplicate except statement. 2005-06-28 20:57:32 +00:00
Jeremy Fincher
3d66bc88e5 Let's ensure that self.repliedTo is False before calling invalidCommands. 2005-06-08 17:49:54 +00:00
Jeremy Fincher
dff2862bb1 Fixed jamessan's multiple-invalidCommand bug. 2005-06-08 17:45:58 +00:00
Jeremy Fincher
0d83dde909 Moved a comment to the appropriate place. 2005-06-08 16:24:54 +00:00
Jeremy Fincher
490fb0b140 Changed prefixName to prefixNick, which is more appropriate, and has always bothered me. Better now than later. 2005-06-01 21:08:30 +00:00
Jeremy Fincher
5815b3b348 Added some elucidating comments. 2005-05-30 19:19:43 +00:00
Jeremy Fincher
66076c0831 Removed a useless wrapper around a method that shouldn't exist. 2005-05-27 03:47:04 +00:00
Jeremy Fincher
4fb15198a0 Properly fixed bugs where plugins expected strings and got non-strings. 2005-05-23 11:51:22 +00:00
Jeremy Fincher
a1992b55ec Fixed the bug that caused "reply reply" to be necessary instead of just "reply". 2005-05-23 11:23:53 +00:00
Jeremy Fincher
ce74fa825e Synchronized Commands (basically, all command-based plugins). Should fix the issue with Karma causing crashes due to PySQLite's un-thread-friendliness. 2005-05-15 18:27:12 +00:00
James Vega
44ef2bd81a Add unaddressedRegexps to PluginRegexp. 2005-04-21 17:28:48 +00:00
James Vega
e7e72d4484 Unbreak invalidCommands. 2005-04-20 23:06:50 +00:00
Jeremy Fincher
c621905d91 We now spawn a thread for invalidCommands when any of the plugins that will run invalidCommands are threaded. 2005-04-13 03:20:58 +00:00
Jeremy Fincher
e1d3c5e537 Changed the name of IrcObjectProxy to something more indicative of what it does. 2005-04-13 03:18:17 +00:00
Jeremy Fincher
bc9cdc4927 Fixed the broken mores. 2005-03-28 13:29:55 +00:00
Jeremy Fincher
0773aa31e5 Made Proxy Irc objects map to the same dictionary slot, so we don't need to worry about calling getRealIrc all the time. 2005-03-28 13:00:37 +00:00
Jeremy Fincher
71830d0c84 Because super sucks, we need to assign to self.log before calling our parents' __init__s, because mixins might be before our parents. Ridiculous. Don't be surprised if we go on a super-excising rampage in the future. 2005-03-24 16:27:41 +00:00
James Vega
9971e991fe Fix the modelines. 2005-03-23 20:07:45 +00:00
Jeremy Fincher
3d60b66ee2 Made the SimpleProxy interface a little more consistent with IrcObjectProxy. 2005-03-14 03:52:30 +00:00
Jeremy Fincher
7445ed05b8 Let's give do* methods at least a SimpleProxy, if for no other reason than to stave off the questions and consternation resulting from *not* having an irc.reply available. 2005-03-12 22:27:23 +00:00
Jeremy Fincher
bd6aa8fda8 Fixed some bugs introduced in my earlier commit, uncovered by the Note tests. 2005-03-09 10:42:16 +00:00
Jeremy Fincher
0e68a44513 Fixed bug with nested plugins having the same name as themselves. 2005-03-09 08:05:24 +00:00
Ali Afshar
d13458726d Added getPluginHelp() method to return docstring for individual plugins. 2005-03-03 19:34:26 +00:00
Jeremy Fincher
574e9509b7 Added support for source-nested plugins. 2005-02-24 12:49:08 +00:00
James Vega
b272bd7752 Goodbye debug log. 2005-02-25 04:58:40 +00:00
Kevin Murphy
5e5e2f3336 Fixed some typos 2005-02-23 17:40:44 +00:00
Jeremy Fincher
5985562a31 Put the monkey patch in the wrong place. 2005-02-18 23:53:11 +00:00
Jeremy Fincher
c9408a95f5 Re-added capability checking stuff. Boo. This needs refactored. 2005-02-18 23:44:38 +00:00
Jeremy Fincher
ff3b03973f Let's not try to call getCommand on callbacks that don't have it. 2005-02-18 23:01:41 +00:00
Jeremy Fincher
b0df87ed7d Fixed addressedRegexps handling in PluginRegexp. 2005-02-18 16:19:44 +00:00
Jeremy Fincher
34e4891bbc Changed to use getattr again; getCommandMethod is pretty much reserved for, well, commands. 2005-02-18 08:26:28 +00:00
Jeremy Fincher
9327be4b59 Added an assert to make sure findCallbacksForArgs is used correctly. 2005-02-18 08:26:02 +00:00
Jeremy Fincher
180291dd34 Cleaned up listCommands a bit. 2005-02-18 06:30:46 +00:00
Jeremy Fincher
2f928e9888 Added default-to-important-plugins behavior back. 2005-02-18 06:30:22 +00:00
Jeremy Fincher
2a75f4b83d Added a classModule attribute to plugins to have easy access to it (the new plugin format made that significantly harder for us; this is an easy workaround). 2005-02-18 06:14:17 +00:00
Jeremy Fincher
ed0b91c3df Tweaked some methods to fix some bugs (yes, it's ambiguous, I know). 2005-02-18 06:13:47 +00:00
Jeremy Fincher
c864836a2f Finally refactored to make commands be "lists of strings" rather than just strings. This is preliminary to allowing nested plugins. 2005-02-18 05:17:23 +00:00
Jeremy Fincher
4f99f41266 Removed a useless comment. 2005-02-18 00:23:53 +00:00
Jeremy Fincher
c1c46495b3 Added a canonicalName method to plugins. 2005-02-18 00:16:06 +00:00
Jeremy Fincher
c3e1d1daca Another elucidating comment. 2005-02-17 23:39:21 +00:00
Jeremy Fincher
e26d46f416 Added some elucidating comments and asserts. 2005-02-17 23:26:11 +00:00
Jeremy Fincher
849b12ec8b Removed getCommands, which isn't being used by anything. 2005-02-17 23:14:54 +00:00
Jeremy Fincher
156084c225 Fixed some bugs introduced with the latest refactoring of callCommand, etc. 2005-02-17 22:39:44 +00:00
Jeremy Fincher
2693d404b4 Refactored _callCommand to put it in its appropriate place. 2005-02-16 02:17:05 +00:00
James Vega
90c000793d utils.gen.* functions shouldn't explicitly be called since they're all in the utils namespace. 2005-02-15 13:57:57 +00:00
Jeremy Fincher
e97f111042 Removed the checkCapabilities keyword argument because it wasn't used anywhere in our source code. 2005-02-15 06:56:24 +00:00
Jeremy Fincher
99d723802e Changed the name of getCommand to getCommandMethod in preparation for a major refactoring. 2005-02-15 06:53:30 +00:00
Jeremy Fincher
c09a7cace1 Removed log.stat, it was dumb. 2005-02-15 06:49:51 +00:00
Jeremy Fincher
ad35c62568 Refactored to split up Plugin into Commands and PluginMixin. 2005-02-10 02:46:18 +00:00
Jeremy Fincher
181d0d59c6 Had the more and the messages reversed. 2005-02-10 01:28:38 +00:00
James Vega
f7917bce77 Update class names. 2005-02-09 21:50:12 +00:00
Jeremy Fincher
b0cb616709 Changed callbacks.Privmsg to be callbacks.Plugin, and callbacks.PrivmsgCommandAndRegexp to be callbacks.Plugin. 2005-02-09 07:04:04 +00:00
Jeremy Fincher
70d1b1d5d0 Moved _mores to IrcObjectProxy, where it more rightfully belongs. 2005-02-07 06:28:52 +00:00
Jeremy Fincher
972716069c Removed callbacks.Privmsg; if it is replaced at some later time, it'll be different. 2005-02-07 06:10:41 +00:00
Jeremy Fincher
fdddefe129 Added a listCommands method to PrivmsgRegexp, to allow plugins to list their own commands. 2005-02-04 20:08:38 +00:00
Jeremy Fincher
65f713df4b Removed log.verbose. I never liked it anyway. 2005-02-04 05:59:07 +00:00
Jeremy Fincher
566b273a97 Removed some imports. 2005-02-04 03:25:30 +00:00
Jeremy Fincher
571ff24155 Changed canonicalize to canonize -- thanks Skorobeus! 2005-02-04 03:19:05 +00:00
Jeremy Fincher
e6beec2989 Removed some more unused imports. 2005-02-04 03:11:02 +00:00
James Vega
68d3b830da Remove the use of format() in logger functions since they handle it natively. 2005-02-01 13:43:57 +00:00
James Vega
0fde2393e6 Update usage of utils.iter functions. 2005-01-31 15:22:48 +00:00
James Vega
4d32d36982 Update a few more places that use utils.str functions. 2005-01-31 15:21:22 +00:00
James Vega
de89bf0265 Update usage of utils.str functions. 2005-01-31 14:52:27 +00:00
James Vega
28cb5abc65 Update usage of functions in utils.gen. 2005-01-31 13:06:43 +00:00
Jeremy Fincher
381a42d863 Added an "irc" argument to callbacks.Privmsg.__init__, so now plugins get an Irc on instantiation. 2005-01-29 19:16:29 +00:00
Jeremy Fincher
34f1fe6562 Swapped the argument order for nItems *again*. 2005-01-28 15:17:26 +00:00
Jeremy Fincher
5fd6bbb52d Completely restructured our utils modules.
Tons of changes.  Here's the summary of things that matter most:

* There is no more supybot.fix.
* There is no more supybot.webutils; now there is supybot.utils.web.
  * It's no longer webutils.WebError, but just utils.web.Error.
* You shouldn't import itertools, ideally, but instead import utils.iter.
* No more using imap/ifilter in commands unless absolutely necessary.  It's
  premature optimization and annoying.
* utils.str.format isn't quite ready yet, but will be soon.  That'll be the
  next big thing to fix in our code.
2005-01-27 06:59:08 +00:00
Jeremy Fincher
5019d10a1b Updated license years. 2005-01-19 13:33:05 +00:00
Jeremy Fincher
8ca625d339 Initial import. 2005-01-19 13:14:38 +00:00
James Vega
dbfec8afb9 Add supybot module 2007-04-22 20:10:26 +00:00
Jeremy Fincher
69f71d1850 Fixed a simple XXX. 2005-01-07 15:49:11 +00:00
Jeremy Fincher
1f90a8ae54 Extra backup for something I can't remember what now. 2005-01-04 03:45:24 +00:00
James Vega
4cd15d053a Move the docstring for addressed 2004-12-29 19:22:37 +00:00
James Vega
7217b01cd2 Tag addressed messages with the results of callbacks._addressed. Also,
reorder the calling of addressedRes and res in PrivmsgCommandAndRegexp so
that addressedRes are run first.
2004-12-29 06:15:19 +00:00
Jeremy Fincher
8b563876ea We shouldn't try to get ChannelValues when not given a channel. 2004-12-20 18:58:07 +00:00
Jeremy Fincher
ca8100605c We shouldn't try to get ChannelValues when not given a channel. 2004-12-20 18:56:25 +00:00
Jeremy Fincher
bc5e7de336 Let's try this location for our placement of a dynamic channel. 2004-12-17 06:02:10 +00:00
Jeremy Fincher
664c468130 Updated to respect channel-value-ish-ness of reply.showSimpleSyntax. 2004-12-16 14:16:56 +00:00
Jeremy Fincher
93e9fa3180 Change assert message. 2004-12-10 08:12:18 +00:00
Jeremy Fincher
400c9aa7a3 Change from an old-school typecheck to a new-school one. 2004-12-10 08:09:01 +00:00
Jeremy Fincher
4d35de48c2 Added an assert. 2004-12-10 07:59:06 +00:00
Jeremy Fincher
7950141d94 Didn't update when I changed this configuration variable name. 2004-12-10 07:44:24 +00:00
Jeremy Fincher
c5e48d574f Indentation change. 2004-12-10 07:03:53 +00:00
Jeremy Fincher
c948a257fa Fix for test failures in Fun.py. 2004-12-08 07:09:40 +00:00
Jeremy Fincher
955bf08255 Rudimentary sorting. 2004-12-02 05:37:04 +00:00
Jeremy Fincher
040888405c Refactoring of error-related configuration variables. 2004-11-04 05:34:24 +00:00
Jeremy Fincher
f4f35f5d7c Fixed some help stuff. 2004-10-27 07:05:58 +00:00
Jeremy Fincher
8324de6da4 Help abstraction. 2004-10-27 04:29:03 +00:00
Jeremy Fincher
e688faf16e Moved standardSubstitute to ircutils. 2004-10-27 01:37:19 +00:00
Jeremy Fincher
4539f388bf Fixed an infinite loop bug. 2004-10-26 19:59:45 +00:00
Jeremy Fincher
f11e7d19d3 Fixed a bugz0r. 2004-10-26 19:37:03 +00:00
Jeremy Fincher
e378b34138 Added a configurable more length. 2004-10-26 18:54:03 +00:00
Jeremy Fincher
0408beb0fb Fix for bug with instant mores; also change supybot.reply.truncate to supybot.reply.mores (i.e., it's not just a group now, it's a boolean). 2004-10-26 18:42:53 +00:00
James Vega
cbd5abbab7 A bunch more %r -> %s conversions as well as wrap updates, new policy for
Channel.voice and some bug fixes for Debian
2004-10-25 22:59:03 +00:00
Jeremy Fincher
7f5a12a893 Extra debug log. 2004-10-24 07:36:00 +00:00
James Vega
4dafdcdd57 Massive updates. %r -> %s, some commands.wrap updates. Factoids is broke
until we get some stuff working in commands.py
2004-10-23 22:07:50 +00:00
Jeremy Fincher
d20381336a Bugfix for nick.atEnd taking precedence over prefixChars. 2004-10-23 19:26:53 +00:00
Jeremy Fincher
c943ab77bb Made commands.wrap stop doing decorators, exposed thread and urlSnarfer, and changed plugins accordingly. 2004-10-22 05:56:55 +00:00
Jeremy Fincher
5bc91113fe Fixed so disabled commands in other plugins won't break our outfilter. 2004-10-10 15:11:19 +00:00
Jeremy Fincher
3dceea823d Added supybot.reply.whenAddressedByNick.atEnd. 2004-10-09 02:48:08 +00:00
Jeremy Fincher
b03000ed42 If replies.success is empty, don't send a success message at all. 2004-10-02 18:28:58 +00:00
Jeremy Fincher
c23e6c97a6 Automatically raise errorNoCapability as well. 2004-10-01 21:26:20 +00:00
Jeremy Fincher
e6efedbdf4 Fixed a bugz0r in replies. 2004-10-01 01:32:17 +00:00
Jeremy Fincher
6878510d7e Let's safe-argument this thing earlier. 2004-09-30 07:36:55 +00:00
Jeremy Fincher
c20d3cafbd Let's make threaded commands tag the message as replied from the start, so things like Infobot won't respond. 2004-09-30 05:29:26 +00:00
Jeremy Fincher
69dce4761d Made sure to return our reply messages, changed some threading stuff, etc. 2004-09-30 04:13:08 +00:00
Jeremy Fincher
f9ae666f3b Fixed a bug in errorInvalid's handling of Raise. Man, we just need to default it to True for everything and make people deal. 2004-09-28 08:12:03 +00:00
Jeremy Fincher
9ca87988ae We should return the message from errors/replies. 2004-09-28 07:16:32 +00:00
Jeremy Fincher
23fb9e1c7b Changed tag name to isError rather than errored. 2004-09-24 20:28:31 +00:00
James Vega
35894401c7 Let's move noReply() to RichReplyMethods so that anything that subclasses
it can use noReply().  Fixes bug #1032406
2004-09-24 13:52:46 +00:00