Commit Graph

11783 Commits

Author SHA1 Message Date
Lars Kellogg-Stedman d24130f46d
resolve warnings about 'is not' and integer comparisons (#1435)
running supybot-adduser (or supybot-reset-password) with a recent
python would result in the warning:

> ```
> /usr/local/bin/supybot-adduser:59: SyntaxWarning: "is not" with a literal. Did you mean "!="?
> if len(args) is not 1:
> ```

This commits corrects the syntax.
`
2020-10-29 12:22:34 -07:00
Valentin Lorentz 76b5a42428 supybot.defaultIgnore shouldn't ignore registered users.
Even if they are not trusted. This fixes a regression in
97016b9c55.

This happens because 'user._checkCapability' raises a KeyError
when the user has neither this cap or the anticap; which was mistakenly
caught here by the 'except KeyError' expecting to catch non-existing
users.
(And that why 'try' blocks should be limited to as few lines as possible.)
2020-10-26 00:19:57 +01:00
Valentin Lorentz 160bcc8b6b Revert "irclib: Fill the nick and prefix of simulated echo messages."
This reverts commit 1fe414764c.

I initially wrote that commit so that plugins with echoMessage=True can
get the nick/prefix from the message (eg. the SkypeRelay plugin in my
personal repo).
Unfortunately, this breaks any test that does equality comparison on
between the result of getMsg()/takeMsg() and an IrcMsg object they
crafted themselves.

Additionally, the filled in nick and prefix might be inaccurate if the
bot changes nick/host at the same time. So instead plugins should check
for the None value.

(Also, editing IrcMsgs on the fly like this isn't great, and the commit
forgot to reset the `_str` attribute.)
2020-10-22 20:04:23 +02:00
James Lu 5ee63ebe96 SedRegex: test "nick, " prefix for explicit reference as well as "nick: " 2020-10-18 13:44:05 -07:00
James Lu 6c138d66ba SedRegex: follow config preference for strictRfc checking
Also add some tests to check that nicks containing the sed separator character are handled correctly.
2020-10-18 13:44:05 -07:00
Valentin Lorentz 1fe414764c irclib: Fill the nick and prefix of simulated echo messages. 2020-10-17 14:22:48 +02:00
Valentin Lorentz 5195ff8e12 Web: Add new @location command, to follow HTTP redirects.
Useful to un-tinify URLs.
2020-10-13 22:28:52 +02:00
James Lu d52e2aa829 SedRegex: rename SearchNotFound -> SearchNotFoundError 2020-10-12 19:50:53 -07:00
James Lu b05fe01d66 SedRegex: reword "search not found" error
"Search not found in the last X *messages*" is a bit confusing because this is really counting the entire history, which includes all other lines of IRC communication (this means pings, /NAMES replies and so on).
2020-10-12 19:48:56 -07:00
James Lu 9adb4f0e8c SedRegex: ignore regexp-like messages sent before the plugin is active
Reported by fred` at #limnoria.

This adds a new message tag applied to all messages SedRegex has seen, in addition to the one for marking messages parsed as a regexp.
SedRegex will now look through the message history and check that all messages without the "seen" tag are not in fact a regexp, before
marking it as seen so that it doesn't do repeated work.
2020-10-12 19:45:18 -07:00
James Lu ffa24bf56e SedRegex: add a no match test case 2020-10-12 18:53:54 -07:00
Valentin Lorentz c04b31ae32 RSS: include channel name in 'feed is announced but does not exist' error log. 2020-10-10 11:51:56 +02:00
Valentin Lorentz 4bd5d8eb33 RSS: Fix announce removal to work with net+chan-specific config
It only removed the value from the chan-specific value.
2020-10-10 11:51:56 +02:00
mogad0n df6ebc78a0
Add command @scheduler remind
This is a safe command for admins to allow as it's limited to text reminders,
unlike the equivalent scheduler.add (+ misc.echo) which usually needs to be
restricted to prevent abuse
2020-10-07 21:42:53 +02:00
Valentin Lorentz 4213d95356 plugin setup: declare the long_description is in markdown
Else PyPI rejects it because it can't parse it as ReST.
2020-10-07 19:46:56 +02:00
Valentin Lorentz 16b7fd9f37 Misc: Fix log message on invalid commands in private
It showed 'Not replying to <command> in None,', since channel is None in
private (unlike the former msg.args[0], which was the bot's nick).

I wasn't careful enough when I replaced msg.args[0] with msg.channel
across the codebase.
2020-09-30 10:25:22 +02:00
Valentin Lorentz 48b24769c2 irclib: Document classes better, especially instance attributes. 2020-09-27 15:51:01 +02:00
Valentin Lorentz 38b0541f04 Autocomplete: fix typo in README. 2020-09-27 15:24:05 +02:00
Valentin Lorentz 5d80b2eec9 irclib: Fix crash when MOTD is sent again later in the connection.
This can happen with this ZNC module: https://wiki.znc.in/Missingmotd
or if a plugin sends a 'MOTD' command.
2020-09-19 17:08:52 +02:00
Valentin Lorentz 0a6bb49fe6 irclib: Fix crash on CAP NEW.
Turns out, it wasn't tested so it never worked...
2020-09-19 16:55:51 +02:00
Valentin Lorentz 6da0e7fc5f Math: Fix test on Python 3.10 (nightly) 2020-09-19 10:38:07 +02:00
Valentin Lorentz 49e03decc4 .travis.yml: don't install opt deps on py 3.4 and 3.5.
feedparser 6 doesn't support these versions.
2020-09-19 10:29:41 +02:00
Valentin Lorentz 0102d64cf4 RSS: fix tests with feedparser 6.
Mocks the urllib API it uses instead of an internal function.
2020-09-19 10:15:23 +02:00
Valentin Lorentz f4d6bd11be registry: forbid direct access to Regexp.setValue.
This is not a regression; this was already forbidden before
23417b0675, and this commit was not
tagged/released yet at the moment I'm writing this one.
2020-09-15 09:59:08 +02:00
Valentin Lorentz ac94c5291e registry: fix Regexp initialization when the default value is not None. 2020-09-15 09:57:15 +02:00
Valentin Lorentz 864315cc5f Config: Don't prepend @ to config value names if their only children are networks. 2020-09-09 15:23:58 +02:00
Valentin Lorentz bdbb74f046 BadWords: Re-allow words with a space (aka 'phrases')
I disallowed it in f3f628ddba because they
couldn't be deserialized properly.

This commit adds a new 'phrases' config var in addition to 'words',
that is comma-separated instead of space-separated.
2020-09-05 22:59:09 +02:00
Valentin Lorentz 23417b0675 registry: Fix regression preventing default None value for Regexp. 2020-09-05 22:20:38 +02:00
Valentin Lorentz 6a3be33fcd registry: Don't use an internal state for Regexp, it breaks net- and chan- specific values. 2020-09-05 21:40:40 +02:00
Valentin Lorentz f3f628ddba BadWords: disallow adding words with a space in them.
Deserialization splits on spaces, so they are not preserved properly.
2020-09-05 21:37:32 +02:00
Valentin Lorentz 97016b9c55 Exempt trusted users from being ignored.
Closes GH-66.
2020-09-05 16:42:28 +02:00
Valentin Lorentz 77682cc50b ChannelLogger: Add tests for non-relayed messages when rewriteRelayed is True. 2020-08-30 14:52:45 +02:00
Valentin Lorentz 01dc289cd6 ChannelLogger: write tests for relayed privmsg 2020-08-30 14:42:10 +02:00
Valentin Lorentz 7887001ea3 ChannelLogger: write tests for privmsg and notice. 2020-08-30 14:36:33 +02:00
Valentin Lorentz a33af98af1 ChannelLogger: add tests for getLog. 2020-08-30 12:19:36 +02:00
Valentin Lorentz 811ccfe3bf ChannelLogger: update comment 2020-08-29 22:53:25 +02:00
Valentin Lorentz 532d38d6da ChannelLogger: Fix typo in variable name.
Bug introduced in f253da049d.
2020-08-29 22:49:06 +02:00
Valentin Lorentz 6f5d8c3011 Autocomplete (+ Fediverse): configure Black. 2020-08-29 18:44:32 +02:00
Valentin Lorentz 7710edb5fe Autocomplete: flake8 2020-08-29 18:39:03 +02:00
Valentin Lorentz d0eb48c90e Autocomplete: more readable test failures. 2020-08-29 18:38:57 +02:00
Valentin Lorentz 6f34f377e5 Autocomplete: return only the common prefix + one word. 2020-08-29 18:38:39 +02:00
Valentin Lorentz efb4d476a5 Autocomplete: Only return the end of the current word (or the next one if the current word is finished) 2020-08-29 18:19:00 +02:00
Valentin Lorentz fbf9f0166d Autocomplete: Fix name of response tag. 2020-08-29 16:42:19 +02:00
Valentin Lorentz a55fbab591 Autocomplete: Initial implementation.
This plugin implements the first version of
https://github.com/ircv3/ircv3-specifications/pull/415
2020-08-29 16:33:29 +02:00
Valentin Lorentz fe84bfbbb6 callbacks: add comments to findCallbacksForArgs. 2020-08-29 16:29:40 +02:00
Valentin Lorentz f253da049d ChannelLogger: rewrite relayed messages echoed by the server
The former code worked only with emulated echo-message, as it depends
on internal tags.
In case echo-message (and labeled-response) is enabled, rely on
remembering the label instead.
2020-08-23 16:34:59 +02:00
Valentin Lorentz 91d2a2860f ChannelLogger: Fix regression preventing outgoing messages from being logged.
Since eb1e27e20b, IrcCallback.__call__ filters out
privmsgs and notices sent by the bot itself unless echoMessage=True is set.
2020-08-23 16:32:47 +02:00
Valentin Lorentz 5dc72d2b34 Rename IrcCallback.echo_message to IrcCallback.echoMessage.
For consistency with 'alwaysCall' and 'noIgnore'.
2020-08-23 16:27:22 +02:00
Valentin Lorentz 761fc2353e utils.net: Do not disable TLS certificate check when authorityCertificate is set.
It makes sense that manually configuring a CA overrides this
value which defaults to False.
2020-08-01 21:46:26 +02:00
Valentin Lorentz 57da6d04e2 utils.net: always check fingerprints if they are set, even if verifyCertificates is False.
It makes sense that manually configuring fingerprints overrides this
value which defaults to False.
2020-08-01 21:45:08 +02:00