Daniel Folkinshteyn
52b36555f4
Utilities: add 'sample' command, a basic interface to random.sample()
...
Also add tests for it.
2010-06-03 13:06:28 -04:00
James Vega
db479731b1
Anonymous: Implement support for allowPrivateTarget config.
...
Closes: Sf#2991515
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 57e894de58
)
Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-06-03 10:43:31 -04:00
Daniel Folkinshteyn
1a228b3e7d
fix google calc to work when doing a currency conversion.
...
made the calcre more generic, so it finds stuff on both math and currency.
nothing a little exploration of google html page source couldn't solve.
2010-06-02 18:36:27 -04:00
Daniel Folkinshteyn
f25d1546bf
restore the 'import re' to Topic plugin, which was for some reason taken out
...
two commits ago, in commit 51cabeea33
it is necessary for the operation of the plugin
(specifically, in the _checkManageCapabilities function)
the tests didn't catch that because it apparently imports re separately.
2010-05-13 00:52:58 -04:00
Štěpán Němec
f3af3ec282
Topic plugin: Restore topic automatically after join if not set.
...
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 18ef6dadfc
)
Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-05-12 13:20:32 -04:00
Štěpán Němec
51cabeea33
Topic plugin: Add persistence support.
...
Topics now persist between restarts.
Rationale: Useful when reloading/restarting; previously the topics would
be just forgotten. Don't use database, as that would be an unnecessary
overkill and in any case not needed.
(Also, remove the unused `re' module import.)
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 6520d1f282
)
Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-05-12 13:19:54 -04:00
James Vega
fc1a049d3c
ChannelStats: Fix rank to work with selfStats
...
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 41fd218b8d
)
Signed-off-by: Daniel Folkinshteyn <nanotube@users.sourceforge.net>
2010-05-12 13:19:01 -04:00
Daniel Folkinshteyn
5d15bbf1b2
for Later plugin, add test for actual sending of notes to nicks upon their being seen.
2010-04-29 20:20:36 -04:00
Daniel Folkinshteyn
9c12f80285
Add Later note expiration period, 30 days by default.
...
This should prevent the accumulation of old unclaimed notes in the database,
which is possible due to notes left to misspelled nicks, to temporary nicks
used by regulars, or to one-time visitor nicks.
2010-04-29 20:04:51 -04:00
Daniel Folkinshteyn
e4c51ef517
Add --raw option to factoids.whatis, which disables variable substitution on the factoid.
...
also add test for this.
2010-04-28 15:27:08 -04:00
Daniel Folkinshteyn
976ad82d69
Use the ircutils.standardSubsitute function upon factoid output.
...
This allows inclusion of the usual standardSubstitute vars within factoids.
There is no config to disable this, since it is possible to escape the substitutions
by simply doubling the dollar signs, as per the python documentation:
http://docs.python.org/library/string.html#template-strings
Thus, if you want a factoid to output a literal "$channel", for example, all
you'd need to do is use "$$channel" in your factoid text, which will come out
as "$channel" when said by the bot.
Also added tests for this new behavior.
2010-04-28 00:10:48 -04:00
Daniel Folkinshteyn
71f88caa6b
Clarify the on-error log message in MessageParser function caller.
2010-04-27 15:29:09 -04:00
Daniel Folkinshteyn
a819c5b496
make Misc.apropos return plugin name even if command is in only one plugin.
2010-04-27 12:46:22 -04:00
Daniel Folkinshteyn
2bb3ba9443
fix bug in RSS.announce.list:
...
Because the 'channel' argument was declared optional, calling announce.list
off-channel without a channel argument caused an error.
2010-04-26 19:50:08 -04:00
Daniel Folkinshteyn
f1517a7acc
some enhancements Factoids.rank:
...
output options: plain key output, and alpha sorting for plain output.
allow an optional argument for how many ranked facts to show.
2010-04-25 02:58:43 -04:00
Daniel Folkinshteyn
55eeb4a57b
Add some sanity checks to RSS plugin:
...
First: if an rss feed is called without the number of headlines argument,
we now have a default number of items it will output.
before, it tried to stuff the whole rss feed into the channel, which is quite
floody, if more than one 'mores' is set, or if oneToOne is false.
Second: when adding a new feed to announce, it again, tried to stuff the
whole rss feed into the channel, which ran into the same floody conditions
as above. now we have a default number of feeds to output when there's no
cached history.
2010-04-25 00:34:31 -04:00
Daniel Folkinshteyn
3005752c58
fix docstring for Plugin.plugin command so it actually says what the command will do.
...
also add a Plugin.plugins command, which always returns a list of all plugins containing a command.
add a test for it.
2010-04-21 16:38:25 -04:00
Daniel Folkinshteyn
9c5f05ab2d
update quotegrabs to sqlite3
2010-04-21 01:24:13 -04:00
Daniel Folkinshteyn
022193b61b
for Factoids: make approximate fuzzy key searches also when invoking whatis directly.
...
also add tests.
while there, remove useless config setting for replyinvalidcommand testing, since it is true by default.
2010-04-18 03:33:10 -04:00
Daniel Folkinshteyn
b5058cc5c2
update Karma plugin and test code to use sqlite3.
...
This involved also updating src/conf.py to look for sqlite3 and add it to supybot.conf.databases list,
since karma uses the plugins.DB() constructor for its database, which checks the available databases list.
2010-04-18 02:10:29 -04:00
Daniel Folkinshteyn
4890e2e80d
for Alias, make doc string say "at least x args" if there are optional args in addition to required args.
...
yay for cosmetic improvements. :)
2010-04-14 10:56:39 -04:00
Daniel Folkinshteyn
aa634e6da1
fix alias bug https://sourceforge.net/tracker/?func=detail&aid=2987147&group_id=58965&atid=489447
...
add tests for appropriate behavior
2010-04-14 10:27:56 -04:00
Daniel Folkinshteyn
5e162a28f7
make google translate return detailed google error, instead of the unhelpful "we broke google".
2010-04-11 18:27:39 -04:00
Daniel Folkinshteyn
127b3cfabd
for google translate, error if destination language is 'auto'.
2010-04-11 17:37:09 -04:00
Daniel Folkinshteyn
34d91284a5
in Later nick validation, use irc.isNick. now instead of forcing strictRfc to true, we are using the config.
2010-04-11 17:01:31 -04:00
Daniel Folkinshteyn
67ab067e6a
take out getDb override from factoids, since i have changed it upstream, in plugins.__init__.py, to use proper sqlite3 syntax.
2010-04-11 16:40:59 -04:00
Daniel Folkinshteyn
bd1fb9f9a6
make on-join telling for later configurable.
2010-04-11 16:25:07 -04:00
Daniel Folkinshteyn
c4e5dbbe0b
topic now checks for +t mode before denying topic changes, and also allows halfops in addition to ops.
...
default required capabilities for topic changes (if topic is +t and user is not an op or halfop), are chan,op and chan,halfop
thanks jemfinch for the suggestions.
2010-04-11 12:48:08 -04:00
Daniel Folkinshteyn
8e84da8391
add replace function to format that takes varying-length strings to replace.
...
add test for it
add error test for format.translate for different length translate args.
2010-04-11 02:27:22 -04:00
Daniel Folkinshteyn
643be43466
Fix factoids bug ,Factoids.showFactoidIfOnlyOneMatch feature is broken when used off-channel:
...
https://sourceforge.net/tracker/?func=detail&aid=2965589&group_id=58965&atid=489447
2010-04-11 01:23:27 -04:00
Daniel Folkinshteyn
b115e0d56f
change Topic to have a default required capability set, for all write operations.
...
by default, now only allows chanops, and users with admin or channel,op capability to change topics
2010-04-09 15:56:16 -04:00
Daniel Folkinshteyn
7ac4911f78
make later plugin send waiting messages on user join also, not just on privmsg.
2010-04-09 13:34:39 -04:00
Daniel Folkinshteyn
2125e6db8e
add nick validation to later tell
...
this avoids plugging the later db with messages for bogus nicks
2010-04-09 00:45:14 -04:00
Daniel Folkinshteyn
01c8f3445a
create conditional plugin with associated tests.
...
includes string and numeric comparisons, simple string matching.
2010-04-08 20:02:39 -04:00
Daniel Folkinshteyn
afe1a2124d
add a random-synonym getting function to Dict, add tests for it.
...
using the moby-thes database from dict.org.
2010-04-08 00:04:44 -04:00
Daniel Folkinshteyn
5d9273cd5a
add damerau-levenshtein distance to supybot.utils.seq
...
use it in factoids invalid command to match possible typos
write tests for same.
2010-04-07 12:33:28 -04:00
Daniel Folkinshteyn
f4d47876d4
fix some encoding error for non-ascii langs
2010-04-04 01:12:50 -04:00
Daniel Folkinshteyn
34cab7f4c9
add detected source language display for 'auto' google translate, add test for auto translate.
2010-04-03 23:31:13 -04:00
Daniel Folkinshteyn
b8f8cec6f5
enable google translate to autodetect language with 'auto' fromlang.
2010-04-02 02:03:57 -04:00
Daniel Folkinshteyn
f988736ca6
add tests for factoids.alias
2010-04-02 00:55:02 -04:00
Daniel Folkinshteyn
a3f7adaa8c
delete leftover debug-prints
2010-04-02 00:51:06 -04:00
Daniel Folkinshteyn
203308647b
add factoids alias function, to link more keys to existing factoids.
2010-04-02 00:49:43 -04:00
Daniel Folkinshteyn
58886bd1f2
mod factoids plugin to use a separate key-value relationship table
...
this avoids duplication, and allows one to set a bunch of aliases for a factoid, without creating duplicates of the same fact content.
2010-04-02 00:08:49 -04:00
Daniel Folkinshteyn
97149b403a
make 'factoids info' include usage count in output. add test for same.
2010-04-01 00:51:25 -04:00
nanotube
32c718ca66
don't give up too easily with invalid command, instead search factoid keys with wildcard first.
2010-03-23 16:44:33 -04:00
nanotube
2e043ce19f
add rank test to factoids, update factoids test code to sqlite3
2010-03-23 13:54:31 -04:00
nanotube
0fb4dd6dff
rename factrank to just rank for consistency
2010-03-23 13:34:50 -04:00
Daniel Folkinshteyn
69c7774431
add config for required capabilities to manage the regexp db, and check for them before taking action.
2010-03-22 19:03:20 -04:00
Daniel Folkinshteyn
bb44d433f5
add replies function to reply plugin, which makes multiple replies, if supybot.reply.oneToOne is false.
2010-03-22 01:06:02 -04:00
Daniel Folkinshteyn
56862da549
add more messageparser tests
2010-03-21 22:30:30 -04:00
Daniel Folkinshteyn
45e2aa5ca7
write more test code, and in the process add some minor mods to the plugin code
2010-03-21 19:06:04 -04:00
Daniel Folkinshteyn
de4936d452
write some test code for messageparser
2010-03-21 17:43:37 -04:00
Daniel Folkinshteyn
db81745d71
update messageparser readme to point to the web doc.
2010-03-21 15:45:06 -04:00
Daniel Folkinshteyn
c2b1c1b143
This merges an old branch i had for sqlite3 factoids+moobotfactoids.
...
fix up moobotfactoids+factoids to use the sqlite text_factory=str,
also fixed up a test for factoid search, since it now sorts keys alphabetically.
2010-03-21 02:44:07 -04:00
Daniel Folkinshteyn
3eb6787f6d
add vacuum method to clean up db. require admin capability by default to do this.
2010-03-19 18:51:49 -04:00
Daniel Folkinshteyn
1a3d6c3821
quote regexp in rank output.
2010-03-19 16:45:59 -04:00
Daniel Folkinshteyn
15a4b45801
rename listall and triggerrank to list and rank, to be more in conformance with normal plugin command naming practice.
2010-03-19 15:58:59 -04:00
Daniel Folkinshteyn
770d407d1c
in listall, put id in parentheses /outside/ the quotes.
2010-03-19 15:54:54 -04:00
nanotube
65ed84a45a
create info command for messageparser
2010-03-19 15:34:35 -04:00
Daniel F
4972472764
allow remove by id, if --id is specified.
2010-03-19 13:40:36 -04:00
Daniel F
7909015288
allow show by id with option --id
2010-03-19 13:34:50 -04:00
Daniel F
92389f69ef
list regexp id in listall (to be used for showing/removing regexp by id)
2010-03-19 13:24:45 -04:00
Daniel F
e2d16cb3a7
test regexp for validity before adding it.
2010-03-19 13:20:50 -04:00
Daniel F
f9cc5d5663
add lock and unlock command methods
2010-03-19 10:44:23 -04:00
Daniel F
adb53a0a35
preserve usage count upon overwriting an existing regexp entry.
2010-03-19 09:55:43 -04:00
Daniel Folkinshteyn
910ba732d2
update readme.txt for ability to use commands as trigger responses.
2010-03-19 00:06:37 -04:00
Daniel Folkinshteyn
76d25a193b
ignore messages addressed to bot directly, in the messageparser.
2010-03-17 23:54:28 -04:00
Daniel Folkinshteyn
629ede010a
forget about unicode, and just use text_factory str for sqlite to retrieve raw bytes out of text fields without conversions.
2010-03-17 13:19:07 -04:00
Daniel Folkinshteyn
6ceeace44d
process multiple matches of a regexp per message
2010-03-17 12:37:34 -04:00
Daniel Folkinshteyn
95aa56c694
fix sqlite3 import for python 2.4
2010-03-17 01:55:23 -04:00
Daniel Folkinshteyn
dbbef9ec43
use double quotes in listall.
2010-03-16 16:51:30 -04:00
Daniel Folkinshteyn
d72649c5c5
give messageparser ability to use arbitrary commands as trigger responses.
2010-03-16 16:49:55 -04:00
Daniel Folkinshteyn
a88353dd0d
Merge branch 'messageparser.sqlite3' into mergempsqlite3
2010-03-16 14:28:26 -04:00
Daniel Folkinshteyn
0e50249256
start factoid rankings from 1 not from 0
2010-03-15 23:12:35 -04:00
Daniel Folkinshteyn
f8ddba0d15
get messageparser to use sqlite3. should work now....
2010-03-15 20:06:24 -04:00
Daniel Folkinshteyn
3326212d55
fix typo (write-o, really) in string for show command
2010-03-15 17:40:57 -04:00
Daniel Folkinshteyn
0c87c523d2
use irc.reply instead of irc.error for conditions that are expected to normally occur on occasion,
...
also, add returns after error conditions (i assumed earlier that irc.error returned) - this fixes some bugs.
2010-03-15 17:32:02 -04:00
Daniel Folkinshteyn
f6a86a81ce
populate the readme with useful tutorial! :)
2010-03-15 17:17:11 -04:00
Daniel Folkinshteyn
f62be4b4a7
implement the messageparser plugin.
...
at the moment, it is constrained only to echo messages, rather than arbitrary commands, for triggers
maybe that'll change in the future...
2010-03-11 01:59:37 -05:00
Daniel Folkinshteyn
5b05944838
create stub of messageparser plugin
2010-03-10 01:27:00 -05:00
Daniel Folkinshteyn
d1c00ccbaf
remove rogue test-print
2010-03-08 14:49:58 -05:00
Daniel Folkinshteyn
9db1598a0e
sort keys in factoid search output by alphabetically by key name.
2010-03-05 14:51:25 -05:00
Daniel Folkinshteyn
fcd262cd4b
implement factoid usage counter
2010-03-05 14:08:11 -05:00
James Vega
397cbbe0d3
Internet: Use whois-servers.net for all whois lookups.
...
rs.internic.net seems to be broken and using $tld.whois-servers.net looks to
be working for everything.
Also need to update the line termination string to use '\r\n' instead of '\n'
since some servers are strict about receiving the former.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-03-03 08:33:44 -05:00
James Vega
4a9596608a
Include hostmasks in JOIN, PART, QUIT logs.
...
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-02-28 21:17:35 -05:00
James Vega
10f5a12b7e
Factoids: Prevent empty key or value when adding a factoid.
...
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-02-05 18:50:48 -05:00
James Vega
288d7c6e02
Update plugins to ignore all non-ACTION CTCP messages.
...
Also update commands.urlSnarfer to do the same, which allows us to revert
"Don't bother snarfing URLs from non-Action CTCP messages."
This reverts commit 3282e3407e
.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-01-28 08:14:44 -05:00
Jeremy Fincher
3282e3407e
Don't bother snarfing URLs from non-Action CTCP messages.
2010-01-28 06:35:53 -06:00
Štěpán Němec
9e15d03375
Filter plugin: improve the `uniud' replacements.
...
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-01-27 19:01:54 -05:00
Štěpán Němec
3a992ba78e
Format plugin: Delete stray `configure' definition from plugin.py.
...
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-01-15 21:57:07 -05:00
James Vega
408ab6f88a
Network: Properly parse WHOIS response
...
The 319 message that indicates which channel(s) a user is in prefix the
channel name with the modes (@, +, !, etc.) applied to that user. These need
to be stripped from the channel name before we feed it to
irc.state.channels.get(), otherwise when irc.state.channels.get() returns None
we assume the channel can't be private and leak information.
2010-01-10 20:17:10 -05:00
James Vega
3689460d0f
Use 0 when no results are returned for Google.fight
...
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-11-28 21:21:00 -05:00
James Vega
fbdc44ca52
Switch from using the various popen flavors to subprocess.Popen
...
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-11-22 14:31:58 -05:00
Daniel Folkinshteyn
e303cab7ae
work on getting moobotfactoids to work with sqlite3
...
note: needs sqlite3 version > 3.3.1, so that it is not restricted against cross-thread usage.
2009-11-18 23:16:21 -05:00
Daniel Folkinshteyn
b77c649c8a
factoids now works with sqlite3, all tests pass.
2009-11-18 12:04:52 -05:00
Daniel Folkinshteyn
5bf71395e7
another step toward sqlite3
2009-11-18 02:27:48 -05:00
Daniel Folkinshteyn
cc1f4ea015
some more mods toward getting sqlite3 to work
2009-11-18 02:03:44 -05:00
Daniel Folkinshteyn
11446c7cb5
some work in progress getting plugins to work with sqlite3
2009-11-18 01:48:11 -05:00
hairball
a594d0e95c
Small typos and doc fixes.
...
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-11-04 22:54:46 -05:00
James Vega
a453f56284
ShrinkUrl: Use tinyurl's api-create page to avoid screen-scraping.
...
Set snarfThrottle to 0 while testing since we know there's nothing other than
the test input that could be causing us to snarf. Fixes some intermittent
test failures due to fast snarf responses.
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-11-04 22:37:53 -05:00