Valentin Lorentz
314fad36eb
Modernize tests
...
Thanks to https://pypi.org/project/teyit/
2022-11-20 19:33:23 +01:00
Valentin Lorentz
fd248dc521
Channel: Fix documentation, --exact cannot be combined
2022-11-20 19:07:44 +01:00
Valentin Lorentz
d7d97d3b93
Google: Remove broken commands
2022-11-10 01:48:49 +01:00
James Lu
73a23e220f
IrcState: fix typo in attribute docs
...
capabilities_acq -> capabilities_ack
2022-11-06 18:38:24 -08:00
Valentin Lorentz
4da1291876
URL: Lazily deserialize records from the end in @last
...
Before this commit, the plugin first fetched a list of all
(deserialized) records in a list, then reversed the list, and iterated
on the reverse list.
This proved to be slow, with most of the time being spent in
`dbi.DB._newRecord` (which essentially deserializes one list of CSV).
After this commit, the list is reversed first, then the plugin iterates
on its generator, which calls `_newRecord` on records as they are
requested.
This means that when there are many URLs in the database, `@last` does
not need to waste time deserializing most records, when the result is
near the end (and if the result is the first record, then it does
exactly as much work as before).
2022-10-30 20:46:35 +01:00
Valentin Lorentz
f4ac7f88fe
RSS: Don't crash on invalid variable name
...
It's confusing not to have feedback on IRC when a variable name
is typoed.
2022-10-28 22:41:43 +02:00
Valentin Lorentz
77805ff36e
irclib: Abort authentication when server fails SCRAM challenge
...
Will be tested by irctest:
https://github.com/progval/irctest/pull/179
2022-10-28 15:00:58 +02:00
Valentin Lorentz
e9a29e9159
irclib: Fix crashes on ecdsa/scram signature failures
2022-10-28 14:57:57 +02:00
Valentin Lorentz
b0525bcf42
Double default peekSize
...
We bumped it to 8kB in 2015, but it is starting to be an issue again.
2022-10-28 14:22:44 +02:00
Valentin Lorentz
2cfc821203
Web: Allow configuring higher peekSize on Youtube
2022-10-28 14:18:52 +02:00
Valentin Lorentz
009b900100
Make TimeoutQueue.iter() actually expire items
...
It is functionally fine not to, but causes objects to never be freed
if iter() is the only method called on the queue (ie. no
enqueue/dequeue, len(), ...)
2022-10-24 23:43:52 +02:00
Valentin Lorentz
2c5dc405fc
test: Revert generic 'The Limnoria Contributors' in copyright notices
...
I forgot to include these in 63eb6672ea
(This is fine because noone but me touched these files since the initial
change in db7ef3f025
).
2022-10-24 23:41:26 +02:00
Valentin Lorentz
47253e032e
Add test for structures.TimeoutQueue.__iter__
2022-10-24 23:21:11 +02:00
Valentin Lorentz
d0a484c11c
Sort remaining nondeterministc sets of values
...
Closes GH-1516
2022-10-20 18:35:58 +02:00
Valentin Lorentz
dc94f8dc68
registry: Default to sorting sets of values
...
Not sorting them causes the config file to change when the bot writes
it, because order is nondeterministic.
This is usually fine, but can be annoying when configs are deployed
with Ansible.
Closes GH-1516
2022-10-14 23:15:11 +02:00
Valentin Lorentz
8c17505221
User: Sort output of @capabilities
...
It's more readable than a random order.
2022-10-13 21:46:50 +02:00
Valentin Lorentz
a6aa5530dd
Ensure files written with AtomicFile are read in UTF8
...
With some locale configurations (not that uncommon on CentOS), open() may
default to non-UTF8 encodings (eg. ANSI_X3.4-1968).
This is usually not an issue, because we use open() both for writing and
reading. However, AtomicFile implicitly enforces UTF8; which needs to be
mirrored when reading.
2022-10-06 09:49:42 +02:00
James Lu
b1cfb87e71
String: allow multi-character inputs in "ord" and "unicodename"
...
This allows them to support emoji ZWJ sequences, which render like one character but are actually multiple.
2022-10-06 08:31:22 +02:00
Valentin Lorentz
35bf599856
utils/web: Add <br/> to the list of block elements
...
It should always be replaced with a space.
2022-09-20 07:51:46 +02:00
Valentin Lorentz
169824a9d2
Math: make @icalc
fail early when result is too large
...
This avoids inconsistent errors between CPython 3.10.7 and older
versions; and the result would not be readable anyway.
Closes GH-1517.
2022-09-18 20:06:34 +02:00
Valentin Lorentz
acdae12bbd
Bump CI version from 3.11.0-alpha.2 to 3.11.0-rc.2
2022-09-18 20:06:34 +02:00
Valentin Lorentz
bc3a441888
Poll: Make answers case-insensitive
2022-09-18 19:25:48 +02:00
Valentin Lorentz
200acdfa93
registry: Normalize values before checking they are valid
...
Otherwise, normalization is useless, and gives a surprising error message,
such as:
```
<user> config plugins.rss.sortfeeditems oldestfirst
<bot> Error: Valid values include 'asInFeed', 'oldestFirst', 'newestFirst', 'outdatedFirst', and 'updatedFirst', not 'oldestFirst'.
```
2022-09-07 12:31:22 +02:00
Valentin Lorentz
86b389618f
MessageParser: Ignore chathistory batches
...
To be consistent with commands and PluginRegexp (snarfers)
2022-08-16 00:23:33 +02:00
Valentin Lorentz
fccb4f705b
RSS: Log feed URL when feedparser.parse raises exceptions
2022-08-07 19:17:15 +02:00
Valentin Lorentz
4db32e24a5
Ctcp: Fix 'RuntimeError: dictionary changed size during iteration'
2022-08-06 15:09:10 +02:00
Valentin Lorentz
0780624450
Time: Fix typo
2022-08-06 15:08:51 +02:00
Valentin Lorentz
b8dce0d7db
Time: Skip new assertions on Python 3.6 so testSeconds passes
2022-08-02 13:16:21 +02:00
Valentin Lorentz
8f837a676d
Time: Add support for omitting space in @seconds
2022-08-02 13:01:08 +02:00
Valentin Lorentz
cd0f9f2628
Polls: Make nick matching case-insensitive
...
This prevents the same nick from voting twice by changing
the capitalization
2022-07-31 09:04:27 +02:00
Valentin Lorentz
28c52c2818
Poll: Add @poll list command
2022-07-30 21:25:47 +02:00
Valentin Lorentz
2afa3c49a1
Fediverse: run black
2022-07-30 21:23:10 +02:00
Valentin Lorentz
ef081746b1
commands: Silence noisy logging of command evaluation
2022-07-29 10:29:48 +02:00
Valentin Lorentz
ee60431396
Add debug logging when skipping SASL mechanisms
...
It is useful to figure out what you forgot to configure
2022-07-29 10:03:39 +02:00
Valentin Lorentz
f549ec12c6
Add debug logging of SASL mechanisms
2022-07-29 09:45:09 +02:00
Valentin Lorentz
796f717d09
requirements.txt: Classify and provide a rationale for each dependency
2022-07-20 18:31:24 +02:00
Valentin Lorentz
7b9a944603
Remove dependency on 'mock'
...
It is a backport of unittest.mock for Python versions before 3.3,
which we do not support anymore.
2022-07-20 18:25:27 +02:00
Valentin Lorentz
461c091b94
Fediverse: Hide channel actor on PeerTube
2022-07-20 18:15:51 +02:00
Valentin Lorentz
34f8842273
Fediverse: Add support for descriptions with line breaks
2022-07-20 18:10:14 +02:00
Valentin Lorentz
2df2bc28d0
Fediverse: Add support for videos
2022-07-20 17:57:29 +02:00
Valentin Lorentz
d67fb2a8b2
Autocomplete, Fediverse, Geography, Poll: Run Black
2022-07-20 17:53:09 +02:00
pratyushd
5d8f59bf80
add conditional to respond acc to kick being true or not ( #1512 )
...
Co-authored-by: Pratyush Desai <pratyush.desai@liberta.casa>
2022-07-13 21:02:28 +02:00
964acac058
for #1490 extend usage examples
2022-07-13 08:56:30 +02:00
James Lu
65d88440c2
supybot-plugin-doc: default to RST
...
None of the current maintainers are sure what stx is??
2022-07-09 14:24:13 -07:00
James Lu
95f6b1698e
Aka, Alias: replace obsolete LastFM example
2022-07-09 14:15:57 -07:00
James Lu
988fe08945
.gitignore: add doc-* paths from supybot-plugin-doc
2022-07-09 14:15:33 -07:00
Valentin Lorentz
96b7f51e71
callbacks: Ignore chathistory batches in PluginRegexp
...
This is consistent with what we already do with commands; and generally
makes sense, as we don't want to re-send titles and others when cycling
on UnrealIRCd (which includes a chathistory batch when joining when
chmode +H is set, despite umode +B)
2022-07-06 22:07:37 +02:00
Valentin Lorentz
3ecb37de10
test_callbacks: Add PluginRegexpTestCase.testReply to check basic behavior
2022-07-06 22:05:30 +02:00
Valentin Lorentz
6a943b8342
test_callbacks: Fix PluginRegexpTestCase to actually check regexp callbacks
2022-07-06 22:04:33 +02:00
James Lu
d00113e92d
PluginDownloader: replace automatic 2to3 step with a simple warning
...
The previous heuristic runs into false positives when imports are merged in __init__.py
More broadly though, it's unlikely automatic 2to3 is particularly useful in 2022 - plugins that were written ~10 years ago are unlikely to work even if syntax errors are fixed.
2022-06-23 22:31:17 +02:00