Commit Graph

73 Commits

Author SHA1 Message Date
Valentin Lorentz
43aada5b33 Store ignored hostmasks in Expiring HostmaskSet to prevent their pattern cache from expiring too soon
See e0fdcb67c0 for the rationale
(tl;dr: prevents triggering a degenerate case of the LRU cache when
there are over 1000 ignore masks)
2021-05-30 19:35:05 +02:00
Valentin Lorentz
86b1741fdd Fix nondeterministic test on Python < 3.7. 2021-05-27 22:36:27 +02:00
Valentin Lorentz
e0fdcb67c0 Store IrcUser hostmasks in HostmaskSet to prevent their pattern cache from expiring
When the number of hostmasks exceeds 1000 (the hardcoded size of
_patternCache and _hostmaskPatternEqualCache), this triggers
a pathological case in the LRU caches, that causes all calls to be
a cache miss.
This means that on every IRC message received, ircdb.checkIgnored triggers
a recompilation of *all* user hostmasks, which is very expensive
computationally.

This commit stores them in their own cache to prevent them from
expiring.
2021-05-27 22:15:52 +02:00
Valentin Lorentz
9891b0fca4 Replace failUnless/failIf with assertTrue/assertFalse.
The old names are deprecated.
2020-01-26 11:14:18 +01:00
Valentin Lorentz
8bb31a54e7 Strip statusmsg chars in core to determine the actual channel.
Use msg.channel if relevant, otherwise strip them locally.
2019-08-24 14:52:59 +02:00
Valentin Lorentz
d4cac026d4 Remove '+' from the default chantypes.
It's more likely to be a statusmsg than chantype.
2019-08-04 21:52:40 +02:00
Valentin Lorentz
a03a89730a Fix bugs in wrapping IRC messages. 2019-01-06 16:48:11 +01:00
Valentin Lorentz
93b0476751 Fix text wrapping when colors cross message boundaries. 2019-01-05 23:47:56 +01:00
Valentin Lorentz
0d627c05b7 Do not break UTF-8 characters in long words. Closes GH-1333. 2018-04-14 22:31:30 +02:00
Valentin Lorentz
f26f098d82 supybot-wizard: Warn if run with ~/.local/bin as CWD. 2018-04-11 11:57:12 +02:00
Valentin Lorentz
2472e857c7 Fix test on Python 3. 2018-02-02 00:19:37 +01:00
Valentin Lorentz
39dacf6e5b Fix Python 2 support. 2018-02-01 23:21:18 +01:00
Valentin Lorentz
030ce5e6d4 Fix previous commit. 2018-02-01 22:37:24 +01:00
Valentin Lorentz
63a17f7491 Rewrite text wrapping to count line size in bytes instead of characters.
Also, fix shitty comparisons that were done in reverse.
2018-02-01 21:32:14 +01:00
James Lu
37a42b0e3b ircutils: split ! and @ in hostmasks from the right
This fixes /names parsing when ! is a prefix character and userhost-in-names is enabled: previously, strings such as "!@user!ident@some.host" were incorrectly split into "" for nick and "@user!ident@some.host" for ident@host.
2017-12-17 04:21:35 -05:00
James Lu
1b0c2ab95a ircutils: add $network to standard substitutions 2016-03-14 20:30:11 -07:00
Valentin Lorentz
15d59d1153 Handle AUTHENTICATE line splitting. 2015-12-10 20:08:53 +01:00
jacksonmj
8eb5d4f240 Add support for italics
New functions:
ircutils.italic to add
ircutils.stripItalic to remove

And remove italics in ircutils.stripFormatting.
2015-08-21 21:44:11 +00:00
Valentin Lorentz
cb6669015e Make ircutils.standardSubstitute accept None as irc and msg. (Preliminary for GH-1041.) 2015-02-07 08:15:42 +01:00
Valentin Lorentz
720b6d23eb Fix to global hostmask. Fix bug #SF3088559 and submitted as patch #SF3163843 2011-01-22 10:17:32 +01:00
James Vega
f7cedae9ad Update ircutils.standardSubstitute to use string.Template
In the process, deprecate utils.str.perlVariableSubstitute.

Since string.Template doesn't support callable values though, we also
sub-class IrcDict and override __getitem__ to call the value if it is
callable.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2009-10-15 22:16:29 -04:00
James Vega
5c197471c6 Fix the tests for mircColor and sorted (Thanks dcraven) 2007-05-08 18:40:48 +00:00
James Vega
a3e4fc5b1d Change the modeline to use softtabstop instead of tabstop. 2006-02-11 15:52:51 +00:00
Jeremy Fincher
cede4a4a97 Fixed bug in ircutils.isNick, which allowed nicks to start with dashes. 2005-08-02 02:47:42 +00:00
James Vega
9971e991fe Fix the modelines. 2005-03-23 20:07:45 +00:00
Jeremy Fincher
895cd3e48e Resurrected the test suite with the new supybot-test program and RCS. 2005-01-23 19:42:25 +00:00
Jeremy Fincher
3d3b1498fe Changed copyright years on test files 2005-01-24 21:27:34 +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
3736f6d582 I wrote this to show someone an example of a test, but figured I'd commit it since it's written. 2005-01-04 03:46:55 +00:00
James Vega
23397b44b4 Remove #! lines. 2004-09-20 15:25:47 +00:00
Jeremy Fincher
59d084abef Added a test for isnick always rejecting spaces in nick. 2004-09-13 00:42:10 +00:00
Jeremy Fincher
fbb348b6e7 Copyright updates. Again, more is left to be done, but this is my part. 2004-08-23 13:14:06 +00:00
Jeremy Fincher
127e9f3ccf Fixed a bug in stripFormatting. 2004-08-08 02:07:11 +00:00
James Vega
115a3a88ec move isCtcp to ircmsgs and fix up a couple things with Infobot 2004-07-31 03:45:25 +00:00
Jeremy Fincher
f9c61271ea w00, less path mungingEXCLAIMEXCLAIM 2004-07-24 05:18:26 +00:00
Jeremy Fincher
a4386a6798 Updated to make mircColors an IrcDict, and clean up the limplementation of mircColor function. 2004-07-22 22:30:24 +00:00
Jeremy Fincher
c064aa1155 Let's make sure to zfill those digits before we mircColor. 2004-07-22 20:57:46 +00:00
James Vega
315810d08e yay! no more stray whitespace 2004-07-21 19:36:35 +00:00
Jeremy Fincher
2377a4a83c Automatically convert non-strings to strings with safeArgument. 2004-07-19 22:33:58 +00:00
Jeremy Fincher
8274d5dfb9 Fixed strictRfc appropriately. 2004-04-29 11:41:05 +00:00
James Vega
e87c31aea4 ircutils.strip{Bold,Reverse,Underline,Formatting} 2004-04-15 21:15:57 +00:00
James Vega
0027117e8c Fix some coloring/formatting bugs we had 2004-04-13 01:01:17 +00:00
James Vega
b2153c83fb unColor is now working. Added a colorstrip outfilter to Filter to close RFE
#863599
2004-04-09 03:59:12 +00:00
Jeremy Fincher
bfd5066ec9 Added some more better handling for channel modes. 2004-02-16 03:44:11 +00:00
Jeremy Fincher
487fb3cc2f Made separateModes int the argument if it can. 2004-02-16 00:51:29 +00:00
Jeremy Fincher
5d3a3437db Fixed G-LiTe's bug with -l. 2004-02-11 06:57:35 +00:00
Jeremy Fincher
9def8a49bd Hmm, didn't define keys. 2004-02-05 07:32:20 +00:00
Jeremy Fincher
fd132f20ad Added setdefault and get to IrcDict. 2004-01-19 22:29:55 +00:00
Jeremy Fincher
29426e2f1d Moved isIP* to utils from ircutils. 2004-01-16 17:33:51 +00:00