Valentin Lorentz
bf90a7c94d
callbacks: Make reply() send multiline batches when supybot.reply.mores.instant > 1
2021-04-01 20:10:17 +02:00
Valentin Lorentz
d5d22985f5
irclib: Remove special-casing of the last instant message in _sendReply
...
There is no reason for it to be special; and this special-casing would be
annoying when we add support for outgoing multiline batches.
2021-04-01 20:10:17 +02:00
Valentin Lorentz
de29218bdb
irclib: Make NestedCommandsIrcProxy._replyOverhead count in bytes instead of chars
...
It was, once again, a bug to count characters, because they
might contain multi-byte characters, and truncation happens
after the 512th byte.
2021-04-01 20:10:17 +02:00
Valentin Lorentz
8a3efe4379
irclib: Split _sendReply from NestedCommandsIrcProxy.reply
...
This function was getting uncomfortably big.
2021-04-01 20:10:17 +02:00
Valentin Lorentz
567618392f
Add tests + fix bugs
2021-04-01 20:10:17 +02:00
Valentin Lorentz
99a6a7cde9
raise exceptions instead of logging, so we get a helpful traceback
2021-04-01 20:10:16 +02:00
Valentin Lorentz
c7939d3eb5
[wip] typo
2021-04-01 20:10:16 +02:00
Valentin Lorentz
26f2d9a292
[wip] idea for ordering batches in Irc.queue
2021-04-01 20:10:16 +02:00
Valentin Lorentz
e19436a4ba
[wip] support outgoing batches
2021-04-01 20:10:16 +02:00
Valentin Lorentz
8b90884fa0
irclib: Copy messages before echoing them
...
Fixes a bug triggered by Relay when it relays between three or more networks.
2021-04-01 20:09:28 +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
d60cc5c92a
irclib: add method getClientTagDenied
...
To allow plugins to check if they should send a tag or not.
2021-03-18 19:56:30 +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
2990fcd302
README+setup: Update supported Python versions
2021-03-13 13:15:41 +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
0919b9f58a
ircmsgs: Fix function docstrings.
2021-03-11 19:46:05 +01:00
Valentin Lorentz
cb7a395444
irclib: truncate outgoing messages to 512 bytes, not 512 chars
2021-03-11 19:02:55 +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
9bfa1458ef
httpserver: improve error handling when binding ports
...
1. better error messages
2. try binding other ports even if one fails
2021-03-09 23:14:23 +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
11e79e44c5
Remove the '(XX more messages)' when the next message is sent immediately after
...
It's pointless and looks stupid.
It will look even more stupid when we enable multiline, because the
suffixes will be in the middle of the concatenated message.
2021-03-05 21:19:02 +01:00
Valentin Lorentz
f98542e884
Add testReplyInstant
...
I'm going to mess with instant replies to add support for multiline,
so it's good to have a safety net.
2021-03-05 21:11:43 +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
f8c5221efd
do43x: add the current nick to the list of tried nicks.
...
The original nick was never added to the list...
2021-03-04 21:29:23 +01:00
Valentin Lorentz
af5364b0dc
.travis.yml: Disable optional dependencies on py3.6, python-cryptography no longer supports it.
2021-03-04 20:33:35 +01:00
Valentin Lorentz
de9b518e5c
.travis.yml: try to fix irctest run
2021-03-04 20:09:37 +01:00
Valentin Lorentz
8b497af30b
Services: Add support for REGISTER responses in nested batches.
2021-03-04 18:48:15 +01:00
Valentin Lorentz
6f6dad8f7b
Add proper support for nested batches.
2021-03-03 23:32:00 +01:00
Valentin Lorentz
9719bb799e
irclib: Send the bot user mode when advertized by the server
...
It is enabld by default in order to be a good netizen,
but can be overridden by admins if needed.
References:
*
* https://github.com/ircv3/ircv3-specifications/pull/439
2021-02-28 11:11:29 +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
18baff976a
.travis.yml: Add use releases for python 3.8 and 3.9
2021-01-27 18:19:23 +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
e54751f9c9
Make the email regexp less strict.
...
The former one disallowed too many valid address, eg. those containing
quotes or square brackets.
2021-01-25 19:49:08 +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
aceb7baeb2
.travis.yml: Allow failures for pypy3 + opt deps.
...
'cryptography' can't be installed because of errors thrown by gcc.
2021-01-12 00:55:48 +01:00
Valentin Lorentz
772ec8d6a9
When getting STS policy over insecure connection, reuse the exact same IP address
...
Otherwise, if some IP addresses don't work (eg. all odd ones), the bot will
consecutively fail because it can't connect, then connect + get STS + reconnect,
then fail again, then connect + get STS, etc.
2021-01-11 23:22:21 +01:00
Valentin Lorentz
ba77de0946
Try all IP addresses of a hostname.
...
Fixes a regression in ecc2c32950
that caused
Socket.py to ignore the IP address entirely after computing it, and
to call getSocket() and connect() with the hostname instead.
2020-12-05 14:26:52 +01:00