Commit Graph

5951 Commits

Author SHA1 Message Date
Valentin Lorentz ca624d7ae6 RSS: Fix nondeterministic test failures
Caused by 'rss announce add' triggering headline announces, that would
delay the execution of the 'remove' commands.

Thanks to @mapreri and @Unit193 for help in reproducing the issue
and confirming the patch.
2021-08-22 19:23:05 +02:00
Valentin Lorentz 0c8e455b4e RSS: When deleting a named feed, preserve anonymous feed of the same URL. 2021-08-22 19:21:28 +02:00
Valentin Lorentz db7ef3f025 all: Add generic 'The Limnoria Contributors' to copyright notices.
No need to bother with details (that are all outdated / out of sync
anyway), just look up the git history.
2021-08-01 21:54:49 +02:00
Valentin Lorentz c008d1191c RSS: Fix crashes when the set of channels changed while iterating. 2021-07-31 14:33:34 +02:00
Valentin Lorentz 0af4af16d3 RSS: Fix random test failure
Closes GH-1479
2021-07-04 10:46:51 +02:00
James Lu 64ae28c0b8 Remove references to my old nick 2021-07-03 16:42:13 -07:00
Valentin Lorentz b8aa5aa33e User: Make @register automatically add the account tag
No need for '@nickauth nick add' right after registering anymore.
2021-06-30 21:28:17 +02:00
Valentin Lorentz c23227cdc7 MessageParser: Show error when the action has a syntax error
Instead of being silent
2021-06-28 23:10:36 +02:00
Valentin Lorentz 6b72672a1e Poll: Fix typo in documentation 2021-06-28 23:10:36 +02:00
James Lu a7216d290f Remove Spanish translations as requested by the author 2021-06-24 22:36:04 -07:00
Valentin Lorentz a7c4c9bd78 Poll: Document usage. 2021-06-19 16:56:17 +02:00
Valentin Lorentz 936d7ebfea Poll Disallow 0 as poll id. 2021-06-19 16:48:40 +02:00
Valentin Lorentz d919e2133d Poll: Initial commit with basic features. 2021-06-19 16:44:21 +02:00
Valentin Lorentz 3b25a94b46 Regenerate READMEs. 2021-06-19 16:44:21 +02:00
Valentin Lorentz 2293d1c129 Services: Update to the latest version of the draft/account-registration spec. 2021-06-15 20:35:55 +02:00
Valentin Lorentz 4b82934131 Services: Add @nickserv and @chanserv command, to message services directly
This is because the recommended method ('owner ircquote nickserv register mypassword bot@example.com')
does not work on charybdis, as Limnoria inserts a colon
before the trailing argument and Charybdis' m_alias module
does not parse commands using the IRC syntax, so it
considers the leading colon to be part of the email address.

The alternative would be to change the recommended command to:
'owner ircquote PRIVMSG nickserv :register mypassword bot@example.com'
but it is prone to typos, so I think we should avoid it.
2021-06-14 21:47:36 +02:00
Valentin Lorentz a4758146d8 Factoids: Fix NameErrors in HTTP callback. 2021-06-01 12:16:34 +02:00
Valentin Lorentz 4caf35f94b Dunno: Document command substitution 2021-06-01 10:43:05 +02:00
Mattia Rizzolo a0b1334034 increase the timeout for Fediverse's tests
At least in Debian CI they routinely timeout when they run in the
busiest server.

Signed-off-by: Mattia Rizzolo <mattia@mapreri.org>
2021-06-01 08:58:56 +02:00
Valentin Lorentz 2e2c243b8b RSS: Remove flaky test 2021-05-28 19:37:37 +02:00
Valentin Lorentz b8852eb9f3 RSS: Fix nondeterministic test failure 2021-05-28 19:15:56 +02:00
Valentin Lorentz 758f9bee34 RSS: Catch errors from update_feed(), just in case
feedparser should always catch the error, but someone reported it doesn't
catch this error on TLS cert issues:

```
Traceback (most recent call last):
  File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.8/threading.py", line 870, in run
    self._target(*self._args, **self._kwargs)
  File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/supybot/plugins/RSS/plugin.py", line 86, in newf
    f(*args, **kwargs)
  File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/supybot/plugins/RSS/plugin.py", line 351, in update_feeds
    self.update_feed_if_needed(feed)
  File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/supybot/plugins/RSS/plugin.py", line 337, in update_feed_if_needed
    self.update_feed(feed)
  File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/supybot/plugins/RSS/plugin.py", line 311, in update_feed
    d = feedparser.parse(feed.url, etag=feed.etag,
  File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/feedparser/api.py", line 214, in parse
    data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result)
  File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/feedparser/api.py", line 114, in _open_resource
    return http.get(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result)
  File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/feedparser/http.py", line 158, in get
    f = opener.open(request)
  File "/usr/lib/python3.8/urllib/request.py", line 525, in open
    response = self._open(req, data)
  File "/usr/lib/python3.8/urllib/request.py", line 542, in _open
    result = self._call_chain(self.handle_open, protocol, protocol +
  File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.8/urllib/request.py", line 1393, in https_open
    return self.do_open(http.client.HTTPSConnection, req,
  File "/usr/lib/python3.8/urllib/request.py", line 1354, in do_open
    r = h.getresponse()
  File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
    response.begin()
  File "/usr/lib/python3.8/http/client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.8/socket.py", line 669, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3.8/ssl.py", line 1241, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/lib/python3.8/ssl.py", line 1099, in read
    return self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out
```

So let's catch the error just in case, so it doesn't block all other
feeds.
2021-05-28 18:48:35 +02:00
Valentin Lorentz 3415cd08a1 RSS: Add test checking exception from a feed doesn't affect other feeds. 2021-05-28 18:38:06 +02:00
Valentin Lorentz 7c68b2cb53 RSS: Fix crash in @rss list 2021-05-28 17:56:59 +02:00
Valentin Lorentz c3f39fc93b callbacks, Misc, Relay: Fix when the message prefix is just a nick
<user> and <host> are optional in https://datatracker.ietf.org/doc/html/rfc1459#section-2.3.1

Closes GH-1451.
2021-05-26 17:50:29 +02:00
Valentin Lorentz e59e0f6908 irclib: Fix target computation
It mistakenly used the bot's nick as target when the message is in private,
so 'more' after a private message always answered the user did not send
a command before (because said command was attributed to the bot)
2021-05-26 00:30:27 +02:00
Valentin Lorentz 710d16f301 Admin: Fix python 3.4 support. 2021-05-25 19:24:21 +02:00
Valentin Lorentz fd97f78f93 Admin: Fix @acmd 2021-05-25 09:22:24 +02:00
Valentin Lorentz 742f4f825d Add the option to disable password login.
Actually resolves GH-1140, finally.
2021-05-23 15:33:38 +02:00
Valentin Lorentz 14e637f4af SedRegex: Fix NameError in config setup 2021-05-22 18:51:35 +02:00
Valentin Lorentz fb16e8b6c2 Network: Fix IPv6 parsing 2021-05-22 18:51:22 +02:00
Valentin Lorentz 7af8918f41 Channel: Fix Nameerror in @alert.
Closes GH-1452
2021-05-17 18:24:37 +02:00
Valentin Lorentz e3fce56800 Relay: Don't relay QUIT/NICK if the sender isn't in the relayed channel. 2021-05-03 20:02:33 +02:00
Valentin Lorentz ca369afe59 Relay: Send the right network in the display name (was dest instead of source) 2021-05-02 18:34:49 +02:00
Valentin Lorentz fc2e34956e Relay: Implement +draft/display-name specification.
https://github.com/ircv3/ircv3-specifications/pull/452
2021-05-02 17:14:20 +02:00
Valentin Lorentz 97a7aa304e RSS: Make @remove completely clean up feeds 2021-05-01 14:29:09 +02:00
Valentin Lorentz 556bd788b5 RSS: Default to setting announces per channel+network, instead of just per channel
The default behavior was to announce feeds on all channels with the same name,
which is rarely what was expected.
Instead, this limits it to the current network.
2021-05-01 13:31:34 +02:00
Valentin Lorentz 435f8de73a RSS: Fix bug in @remove that prevented it from fully deleting aliased feeds. 2021-05-01 13:27:56 +02:00
Valentin Lorentz e96633c1e3 RSS: Forbid dots in feed names.
They confuse the registry
2021-04-28 20:04:58 +02:00
David Macek 3d21c7cbcb Services: Keep per-network state separate
Until now, only `waitingJoins` was stored separately per network, while
`channels`, `sentGhost` and `identified` had one common value per plugin
instance.  Instead of making everything a dictionary indexed by network
name like `waitingJoins`, let's bundle all the state together in a class
and store *its* instances in such a dictionary.

This fixes at least one race condition, for which a test case was added.
Even with `noJoinsUntilIdentified` set, the bot would let joins through
as long as *any* one network has already finished identifying.
2021-04-27 19:52:58 +02:00
David Macek 8a4e8c2a37 Services: Reset configured passwords in tests
I didn't observe any error with the current set of tests but adding
another one that used "services password" caused oen of these tests
to fail.  Given that tests shouldn't leave traces in global state,
let's reset the configured passwords in finally blocks.
2021-04-24 21:13:53 +02:00
David Macek abac8307ac Admin: Merge tests with the same name into one 2021-04-24 21:03:13 +02:00
David Macek 4d2efc65ef Remove some unused names 2021-04-24 21:01:40 +02:00
David Macek e740953068 Fix some typos 2021-04-24 21:01:07 +02:00
Valentin Lorentz fec6959acb all plugins: regenerate READMEs 2021-04-22 00:29:15 +02:00
Valentin Lorentz c7d85e73d7 httpserver, Fediverse: show an error message on 404 2021-04-18 16:25:37 +02:00
Valentin Lorentz a209b73248 Fediverse: Remove duplicate documentation 2021-04-18 15:36:18 +02:00
Valentin Lorentz 82fbfcffa4 all plugins: regenerate READMEs 2021-04-17 20:09:33 +02:00
Valentin Lorentz b0cdf474a8 Fediverse: Move Secure Fetch documentation to the 'Usage' section 2021-04-17 20:08:33 +02:00
Valentin Lorentz 3c1c4a69e9 callbacks: Make snarfers' output paginatable with @more
by moving the 'smart' reply() method from NestedCommandsIrcProxy
to ReplyIrcProxy.

There is no reason only commands should have a paginated output
and not snarfers defined in PluginRegexp.
2021-04-16 23:38:44 +02:00
Valentin Lorentz cd02444f87 supybot-plugin-doc: Add labels for all command and config variables
So they can be referenced from elsewhere in the doc.
2021-04-06 00:33:07 +02:00
Valentin Lorentz 66ba7cb020 Plugin: Only show the first paragraph; as the whole help can be very long. 2021-04-05 17:42:40 +02:00
Valentin Lorentz 833af36b08 all plugins: auto-generate READMEs
Starting with this commit, there should be no "original" text
in READMEs.
Instead, the entire text should be in docstrings, and READMEs
should be automatically generated from these docstrings.

Motivation:

* The same help is available both via IRC and in the README
  (although the README can be more detailed, as only the first
  paragraph will be shown on IRC)
* This will allow auto-generating plugin help on docs.limnoria.net
  using the same content as the README, as it's sourced from the
  docstrings

Additionally, this converts all READMEs from Markdown to ReST,
because the documentation already uses ReST, and other docstrings
in the codebase are in ReST for this reason.
2021-04-05 17:42:31 +02:00
Valentin Lorentz 113fc74ca1 Relay: Mention other plugins in the README. 2021-04-05 15:54:13 +02:00
Valentin Lorentz 21657f31ee Aka, Alias: Remove mentions of Alias in the Aka documentation, and explain Alias is deprecated 2021-04-05 15:00:02 +02:00
Valentin Lorentz 49eef1cd7d Misc: Make @help mention '@plugin help' when relevant. 2021-04-05 14:39:41 +02:00
Valentin Lorentz 24f20dcb86 Factoids, Services: Fix crash when imported by supybot-plugin-doc 2021-04-05 11:30:59 +02:00
Richard 911f875c1f PluginDownloader: Change default branch from master to HEAD
Many people are renaming their default branches from master to main or
something else (I just renamed mine). Using HEAD works no matter what
the default branch is named.
2021-04-01 20:10:17 +02:00
Valentin Lorentz a003eff7a5 Config: Document network-specific variables in @list output 2021-04-01 20:10:17 +02:00
Valentin Lorentz 91a4083ae1 Misc: Clamp the number of lines returned by @more to the draft/multiline max-lines value, if any. 2021-04-01 20:10:17 +02:00
Valentin Lorentz 7cb3ae12da Misc: Make @more reply in batches when possible. 2021-04-01 20:10:17 +02:00
Valentin Lorentz f390ade16d Anonymous: Add CLIENTTAGDENY test 2021-03-18 20:28:15 +01:00
Valentin Lorentz ac0d7952a7 Anonymous: Add @react command
Gated behind supybot.protocols.irc.experimentalExtensions, as usual.

Spec: https://ircv3.net/specs/client-tags/react
2021-03-18 20:20:09 +01:00
Valentin Lorentz 544f137c64 Anonymous: Simplify/modernize @internationalizeDocstring and var setting in test. 2021-03-18 19:56:30 +01:00
Valentin Lorentz 7861040c37 Merge branch 'logtoirc' into testing 2021-03-17 21:22:29 +01:00
Valentin Lorentz f1a5ab4866 String: Add unicodename and unicodesearch commands. 2021-03-11 22:49:13 +01:00
Valentin Lorentz 54342765cd LogToIrc: Make variables channel- and network-specific when relevant 2021-03-11 20:20:53 +01:00
Valentin Lorentz 7359ddce90 LogToIrc: better error handling 2021-03-11 00:40:43 +01:00
Valentin Lorentz f0b4332908 LogToIrc: Update __init__/die signatures. 2021-03-11 00:40:43 +01:00
Valentin Lorentz 6d880c9a6f LogToIrc: Move IrcHandler to its own module, it shouldn't be reloaded. 2021-03-11 00:40:43 +01:00
Valentin Lorentz 436277a9ed LogToIrc: Run 2to3 2021-03-11 00:40:43 +01:00
Valentin Lorentz e9ef8b22c0 LogToIrc: Split into modules, like modern plugins 2021-03-11 00:40:43 +01:00
Valentin Lorentz d08dd24e43 LogToIrc: Resurect from from before the Darcs migration.
Last commit: da614f5561
2021-03-10 22:24:12 +01:00
Valentin Lorentz c0527b6859 String: update docstrings of ord/chr, we're using unicode now 2021-03-10 22:19:35 +01:00
Valentin Lorentz ce03729f20 ShrinkUrl: Improve error messages when opening the database. 2021-03-09 23:13:16 +01:00
Valentin Lorentz 36800ed4bc ShrinkUrl: Fix tinyurl.com test 2021-03-09 23:12:54 +01:00
Valentin Lorentz 4aca6e3d5a Add support for receiving commands from draft/multiline batches. 2021-03-04 21:34:25 +01:00
Valentin Lorentz 975a9101f4 Services: Fix conditional on supybot.protocols.irc.experimentalExtensions
It was always true-ish because we tested the variable itself instead
of its value.
2021-03-04 21:30:07 +01:00
Valentin Lorentz 8b497af30b Services: Add support for REGISTER responses in nested batches. 2021-03-04 18:48:15 +01:00
Valentin Lorentz 78dc45e99e Aka: eliminate race condition in tests?
Sometimes (very rarely), the test errors with:

```
======================================================================
FAIL: testHistsearch (Aka.test.AkaChannelTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/supybot/test.py", line 214, in runTest
    originalRunTest()
  File "/usr/lib/python3/dist-packages/supybot/plugins/Aka/test.py", line 67, in testHistsearch
    self.assertResponse('histsearch .*', '@echo foo')
  File "/usr/lib/python3/dist-packages/supybot/test.py", line 402, in assertResponse
    self.assertEqual(m.args[1], expectedResponse,
AssertionError: '@aka add histsearch "last --from [cif true[80 chars]"]]"' != '@echo foo'
- @aka add histsearch "last --from [cif true \"echo test\" \"echo test\"] --regexp [concat \"m/$1/\" [re s/g// \"@2\"]]"
+ @echo foo
 : '@echo foo' != '@aka add histsearch "last --from [cif true \\"echo test\\" \\"echo test\\"] --regexp [concat \\"m/$1/\\" [re s/g// \\"@2\\"]]"'
```

ie. histsearch returns the 'aka add' message instead of the 'echo foo'
one.

My guess is that if they happen too closely to each other, they get
added to the history in the wrong order (how? it's not threaded)

So this commit works around the issue by making the regexp unambiguous.
2021-02-21 00:18:03 +01:00
Valentin Lorentz 85549bf0c3 Services: Fix typo in docstring 2021-01-30 19:41:26 +01:00
Valentin Lorentz c016ed5bfd Services: Add support for batches as reply to REGISTER/VERIFY.
Oragono uses them.
2021-01-25 22:03:08 +01:00
Valentin Lorentz 1c6c1cb16a Services: Add initial implementation of the @register and @verify commands.
Using this early draft specification:
https://gist.github.com/edk0/bf3b50fc219fd1bed1aa15d98bfb6495
2021-01-25 21:57:12 +01:00
Valentin Lorentz 7110b8f74e Relay: Set msg.channel before passing it to _sendToOthers.
_sendToOthers expects msg.channel to be 'in otherIrc.state.channels',
but IrcMsg objects don't have their 'channel' attribute set until they
are passed through irclib, so it was left unset, which means messages
were never sent at all.

Regression introduced in c1ae3f5c81.
2021-01-15 21:25:02 +01:00
Valentin Lorentz 81a7530577 Network: add @capabilities command. 2020-11-09 21:45:01 +01: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 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 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 38b0541f04 Autocomplete: fix typo in README. 2020-09-27 15:24:05 +02:00
Valentin Lorentz 6da0e7fc5f Math: Fix test on Python 3.10 (nightly) 2020-09-19 10:38:07 +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 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 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 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 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 a84eabf146 Factoids: Add --author filtering to @search. 2020-07-14 18:16:10 +02:00
Gordon Shumway 6e47278b9f
Google: Set User-Agent override. (#1426)
With a custom (globally-configured) user-agent, Google may serve a different page, which breaks this plugin.

This override disables this custom user-agent and uses a predefined one, which is known to work.
2020-07-14 14:44:43 +02:00
Gordon Shumway e5a04aaf13 DDG: Add region test. 2020-07-06 22:34:29 +02:00
oddluck 1c1ba1119d DDG: Add region and safeSearch configs. 2020-07-06 22:34:29 +02:00
Gordon Shumway 902677a378 DDG: Fix redirect detection. 2020-07-06 22:34:29 +02:00
Valentin Lorentz 76edd3189c Herald: Use time.monotonic instead of time.time.
To prevent jumping backward and forward on system clock changes.
2020-07-03 21:00:43 +02:00
Gordon Shumway 9081f5678b Herald: Throttle default heralds.
Fixes https://github.com/ProgVal/Limnoria/issues/1372
2020-07-03 08:39:05 +02:00
Valentin Lorentz 138957676e DDG: better document the transitions in the parser. 2020-07-01 20:06:29 +02:00
Valentin Lorentz 427cf82d6b DDG: Add debug prints in the parser. 2020-07-01 20:05:23 +02:00
Gordon Shumway 59f1441d23 Google: Fix plugin. 2020-07-01 10:37:22 +02:00
Gordon Shumway 01f166a224 Google: Fix plugin. 2020-07-01 10:37:22 +02:00
Valentin Lorentz 9be5676dfd DDG: Update lite search URL.
Duckduckgo started redirecting https://duckduckgo.com/lite to https://lite.duckduckgo.com/lite
so it was mistakenly interpreted as a !bang.
Changing the initial URL fixes this false detection.
2020-07-01 10:33:26 +02:00
Valentin Lorentz ef59a033e3 Channel: add support for MODES= with no value in ISUPPORT.
Oragono uses that.
2020-06-27 07:51:16 +02:00
Valentin Lorentz 0e2b0a96c8 SedRegex: Log error exceptions from the replacer. 2020-06-20 12:38:44 +02:00
Valentin Lorentz 88d0a3a79f NickAuth: Add WHOX test. 2020-06-12 19:29:08 +02:00
Valentin Lorentz 99e8b598d0 NickAuth: Add test for extended-join. 2020-06-12 19:11:29 +02:00
Valentin Lorentz 99cb656df0 NickAuth: Detect extended-join based on capability.
It's more reliable than just checking the number of arguments
(eg. if a network decides to add its own set of arguments in
a way incompatible with extended-join).
2020-06-12 19:11:15 +02:00
Valentin Lorentz dd865583e7 NickAuth: cleanups. 2020-06-12 18:49:02 +02:00
Valentin Lorentz 2ceb60762e Seen: Don't internalize IrcString (again). 2020-06-05 00:41:18 +02:00
Valentin Lorentz aa2f9202ec Google: Fix false positives on embedded thumbnails (eg. Youtube results). 2020-05-28 19:07:08 +02:00
Valentin Lorentz 847e51a7ec plugins: Fix name mismatch of typeSubstitution in getCommandHelp.
Bug introduced in 4046a1b201.
2020-05-27 21:19:09 +02:00
Valentin Lorentz 8b9ac3540d plugins: Fix AttributeError in getCommandHelp.
Introduced in commit 4046a1b201.
2020-05-27 20:30:39 +02:00
Valentin Lorentz 2924845de4 Google: Update, with a proper HTML parser.
Hopefully it will be more robust than the regexp.
2020-05-24 18:57:27 +02:00
Valentin Lorentz ed87de1527 Filter: add support for upper-case letters. 2020-05-23 13:32:26 +02:00
Valentin Lorentz b4d21127b1 Filter: Add uwu. 2020-05-23 12:10:40 +02:00
Valentin Lorentz dde35a844d Seen: Don't internalize IrcString.
It's a bug, and it would mess case-insensitive comparison anyway.
2020-05-22 08:38:42 +02:00
James Lu ac4ca4950d DDG: update plugin metadata 2020-05-21 23:11:38 -07:00
James Lu 2b567c5ef9 Owner: remove obsolete note about stock plugins on ImportError
Limnoria has not run 2to3 as part of the build process for many years now.

This reverts part of 1b2617bf8e.
2020-05-21 23:06:20 -07:00
Valentin Lorentz 2682e4cb48 Seen, ChannelUserDictionary: Internalize channel names.
They are not many of them, but they are used a lot so they take
up a surprising amount of memory.
2020-05-17 21:09:00 +02:00
Valentin Lorentz 08f4c781cb ChannelLogger: Make relayed message rewriting optional. 2020-05-17 21:05:59 +02:00
Valentin Lorentz 75f7479bf4 Config: Fix name clash with the expected 'reset' method. 2020-05-17 12:46:46 +02:00
Valentin Lorentz 2fe9bedb86 Fediverse: Remove nick prefix from snarfer output. 2020-05-16 23:15:11 +02:00