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