06c8858 | Valentin Lorentz | 18 November 2023, 21:02:36 UTC | Services: Improve error on missing password or NickServ nick | 18 November 2023, 21:02:36 UTC |
fffdd82 | Valentin Lorentz | 29 October 2023, 11:40:48 UTC | Fediverse: Catch URLErrors raised when checking webfinger support | 29 October 2023, 11:40:48 UTC |
689c633 | Valentin Lorentz | 29 October 2023, 11:32:33 UTC | Web: Fix crash on socket.timeout on snarfed URLs | 29 October 2023, 11:32:33 UTC |
3f9ab4b | Valentin Lorentz | 28 October 2023, 07:47:55 UTC | Web: Fix crash on trailing ';' in Content-Type | 28 October 2023, 07:47:55 UTC |
faa6474 | Valentin Lorentz | 27 October 2023, 09:30:57 UTC | Geography: Add support for OSM node ids | 27 October 2023, 09:31:06 UTC |
1fb0bbd | James Lu | 25 October 2023, 03:05:18 UTC | Fix recursive loop in limnoria_reset_password Closes GH-1565 | 25 October 2023, 03:05:18 UTC |
18699b0 | Valentin Lorentz | 17 October 2023, 18:13:56 UTC | Fix breakage of supybot.directories.data.web when it's a relative directory (the default) | 17 October 2023, 18:13:56 UTC |
15009ca | Valentin Lorentz | 17 October 2023, 18:04:42 UTC | Remove requirement for supybot.directories.data.web to be a subdir of supybot.directories.data | 17 October 2023, 18:04:42 UTC |
2008088 | Valentin Lorentz | 17 October 2023, 17:57:29 UTC | RSS: Copy $summary to $description on Atom feeds Otherwise $description would remain feedparser's default, which is unescaped <content>; but $description is the only usable one on RSS feeds. | 17 October 2023, 17:57:29 UTC |
04f0d70 | Valentin Lorentz | 17 October 2023, 17:00:03 UTC | RSS: Add support for $content/$summary_detail/$title_detail | 17 October 2023, 17:00:54 UTC |
edb13f6 | Valentin Lorentz | 17 October 2023, 16:59:46 UTC | httpserver: Fix incorrect path joining | 17 October 2023, 17:00:54 UTC |
e782421 | Valentin Lorentz | 17 October 2023, 16:59:16 UTC | Debug: Remove useless shebang | 17 October 2023, 17:00:54 UTC |
4ed318d | Aminda Suomalainen | 16 October 2023, 19:03:55 UTC | NickCapture: fix typo thus -> this | 16 October 2023, 19:10:34 UTC |
7cd700b | Matias Wilkman | 09 October 2023, 17:31:50 UTC | Seen: show when the target is currently in the channel (#1559) | 09 October 2023, 17:31:50 UTC |
ec9e731 | Matias Wilkman | 08 October 2023, 17:07:08 UTC | Ignore trailing whitespace when addressing the bot by nick at end (#1563) | 08 October 2023, 17:07:08 UTC |
5ccc035 | Matias Wilkman | 05 October 2023, 19:13:55 UTC | report channel counts and modes in status (#1562) | 05 October 2023, 19:13:55 UTC |
5828720 | Valentin Lorentz | 29 September 2023, 13:25:30 UTC | Socket: Fix hanging while TLS socket buffer is non-empty | 29 September 2023, 13:25:41 UTC |
a46a073 | Aminda Suomalainen | 29 September 2023, 09:32:15 UTC | .editorconfig: only apply indent_size and line_length for *.py | 29 September 2023, 09:43:04 UTC |
ecd0c92 | Aminda Suomalainen | 29 September 2023, 08:49:17 UTC | .editorconfig: configure text editors for Limnoria style guide | 29 September 2023, 09:43:04 UTC |
7581525 | Aminda Suomalainen | 29 September 2023, 08:48:13 UTC | .gitattributes: enable EOL normalization | 29 September 2023, 09:43:04 UTC |
cf4c4ca | Aminda Suomalainen | 29 September 2023, 08:23:19 UTC | requirements.txt: add ddate as an optional dependency for Time.ddate | 29 September 2023, 09:23:16 UTC |
119a93a | Valentin Lorentz | 24 September 2023, 17:58:10 UTC | PluginDownloader: Fix typo | 24 September 2023, 17:58:10 UTC |
b1657a8 | Valentin Lorentz | 24 September 2023, 17:55:44 UTC | Skip irctest on Python 3.7 It's no longer supported | 24 September 2023, 17:55:57 UTC |
fa01b01 | Matias Wilkman | 24 September 2023, 01:08:10 UTC | added a new repo for plugindownloader | 24 September 2023, 06:07:56 UTC |
850b4c3 | Valentin Lorentz | 22 September 2023, 11:30:08 UTC | MessageParser: Log and skip current regexp on error | 22 September 2023, 12:20:55 UTC |
91accc0 | famfo | 19 September 2023, 15:56:36 UTC | SedRegex: Implement changing of sed response per channel (#1556) Fixes #1433 Co-authored-by: Val Lorentz <progval+github@progval.net> Co-authored-by: James Lu <hello@jlu5.com> | 19 September 2023, 15:56:36 UTC |
5ab7c8a | Valentin Lorentz | 08 September 2023, 21:54:47 UTC | Services: I still didn't test that code | 08 September 2023, 21:54:47 UTC |
f905036 | Valentin Lorentz | 08 September 2023, 20:47:54 UTC | Services: Add missing import It's needed since acad80296a8a4f55557f23e0ef29fbc0533a6457 | 08 September 2023, 20:47:54 UTC |
9e82e3f | Eric Mertens | 03 September 2023, 04:06:54 UTC | Add command to manually initiate SASL | 05 September 2023, 18:13:21 UTC |
c66b973 | Valentin Lorentz | 05 September 2023, 06:29:56 UTC | SaslTestCase: Change config instead of messing with irc.sasl_next_mechanisms Changing the internal state will break in the next commit, which reorganizes SASL state initialization | 05 September 2023, 06:54:26 UTC |
81a5133 | Valentin Lorentz | 05 September 2023, 06:28:44 UTC | SaslTestCase: Use tearDown() method instead of finally: blocks It's much cleaner | 05 September 2023, 06:54:26 UTC |
f8dd8d7 | Valentin Lorentz | 04 September 2023, 18:05:55 UTC | supybot-test: Add --clean-after option | 04 September 2023, 18:07:42 UTC |
6b77859 | Valentin Lorentz | 04 September 2023, 16:24:16 UTC | --clean removes files before running tests, not after | 04 September 2023, 16:24:16 UTC |
8029e2b | Valentin Lorentz | 04 September 2023, 15:36:18 UTC | supybot-test: Ensure --clean doesn't leave 'backup' and 'test-logs' directories | 04 September 2023, 15:36:22 UTC |
acad802 | Valentin Lorentz | 29 August 2023, 20:49:18 UTC | Services: Update 'identified' state using SASL status Otherwise features like auto-opping are permanently unavailable when using SASL instead of NickServ IDENTIFY | 29 August 2023, 20:49:18 UTC |
5357f50 | Valentin Lorentz | 10 August 2023, 06:02:50 UTC | Geography: Replace Canada/Newfoundland with America/St_Johns in tests https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1040997 | 10 August 2023, 06:02:50 UTC |
71ae97e | Valentin Lorentz | 02 August 2023, 18:39:00 UTC | MessageParser: On syntax error, detail which action caused the error This can help users debug it. | 02 August 2023, 18:39:00 UTC |
bb3d456 | Valentin Lorentz | 26 July 2023, 12:21:30 UTC | RSS: Add support for feed attributes in template string See https://feedparser.readthedocs.io/en/latest/common-rss-elements.html#accessing-common-channel-elements | 26 July 2023, 12:21:34 UTC |
8168c52 | Valentin Lorentz | 26 July 2023, 12:20:45 UTC | RSS: Fix traceback in tests with new feedparser versions | 26 July 2023, 12:20:45 UTC |
2b4c5eb | Valentin Lorentz | 18 July 2023, 05:45:26 UTC | Fix crash when calling .reply(..., action=True) on ReplyIrcProxy instead of on NestedCommandIrcProxy. ReplyIrcProxy._sendReply expects action=True to imply noLengthCheck=True, but only NestedCommandIrcProxy.reply() enforces the latter, not ReplyIrcProxy.reply(). This crash was introduced in 3c1c4a69e9927bcc7265b1d77fd1ab49cb55090e by moving NestedCommandIrcProxy's .reply() to ReplyIrcProxy. | 18 July 2023, 05:46:51 UTC |
054ee6e | Valentin Lorentz | 11 July 2023, 19:34:49 UTC | Disable generic error reply when supybot.replies.error is empty | 11 July 2023, 19:34:49 UTC |
eb002a3 | Valentin Lorentz | 08 July 2023, 14:46:13 UTC | wizard: Check language is supported Otherwise it may raise InvalidRegistryValue on first start | 08 July 2023, 14:46:13 UTC |
8d1d4b8 | Valentin Lorentz | 08 July 2023, 14:42:15 UTC | Fix error message on invalid 'supybot.language' value | 08 July 2023, 14:42:26 UTC |
b374418 | James Lu | 01 July 2023, 03:07:45 UTC | irclib: fix mismatched arguments when logging IRCv3 cap responses | 01 July 2023, 03:07:45 UTC |
b4bf877 | James Lu | 01 July 2023, 02:40:49 UTC | Network: accept empty args in 'command' and 'cmdall' Closes GH-1541 | 01 July 2023, 02:40:49 UTC |
2902a85 | Val Lorentz | 10 June 2023, 06:28:08 UTC | Fix STS parsing and handling of unchecked-TLS connections (#1524) * ircutils: Fix incorrect log message on invalid STS policy * STS: fix confusion over what a secure connection is irclib computed 'secure_connection' when TLS is enabled and TLS certs are checked; but ircutils used the value to parse STS policies, which should only care about being TLS or not. This commit fixes the incorrect parsing on unchecked-TLS, and triggers a reconnect when a STS policy is encountered in this case, to force TLS certs to be checked before storing the policy. * Accept STS policies when reconnecting after getting it over cleartext ircutils.parseStsPolicy() was passed self.driver.ssl which is the configured value, even though the connection was forced to be TLS temporarily * ci: Lower timeout * Fix typo in test name Co-authored-by: James Lu <james@overdrivenetworks.com> --------- Co-authored-by: James Lu <james@overdrivenetworks.com> | 10 June 2023, 06:28:08 UTC |
97d6777 | Valentin Lorentz | 08 June 2023, 17:58:25 UTC | RSS: Sort entries in @rss responses as in announces | 08 June 2023, 17:58:50 UTC |
ac84fa4 | Valentin Lorentz | 04 June 2023, 20:47:46 UTC | ircquote: Use labeled-response when possible to reply to the user | 08 June 2023, 17:55:47 UTC |
6021f0e | Tasos Sahanidis | 04 June 2023, 19:51:27 UTC | String: Display regex error on invalid group reference (#1537) | 04 June 2023, 19:51:27 UTC |
416a05e | James Lu | 04 June 2023, 19:39:56 UTC | Route commands from Network.command back to the original network (#1540) Add a replyIrc parameter to ReplyIrcProxy to run a command on one network, but route the replies to another. This fixes a long standing issue where replies for remote commands are often lost to the void, as the nick of the caller may not exist on the target network (or worse, it could belong to a completely unrelated person). Closes GH-556. Co-authored-by: Val Lorentz <progval+git@progval.net> | 04 June 2023, 19:39:56 UTC |
654937e | James Lu | 27 May 2023, 03:27:39 UTC | botchk: move imports to top-level | 27 May 2023, 03:27:39 UTC |
21b7408 | Valentin Lorentz | 21 May 2023, 17:01:40 UTC | ci: Bump Python 3.12 version | 21 May 2023, 17:01:40 UTC |
8859e1c | Valentin Lorentz | 21 May 2023, 16:50:24 UTC | setup.py: Add Python 3.11 and 3.12 to classifiers. | 21 May 2023, 16:50:24 UTC |
3be1804 | James Lu | 28 April 2023, 01:36:50 UTC | botchk: fix syntax error | 28 April 2023, 01:36:50 UTC |
1690839 | Val Lorentz | 27 April 2023, 18:52:17 UTC | Merge pull request #1532 from progval/entrypoints Use setuptools 'entry_points' + add 'limnoria-*' CLIs in addition to 'supybot-*' | 27 April 2023, 18:52:17 UTC |
6f663e4 | Valentin Lorentz | 26 April 2023, 16:04:21 UTC | Merge branch 'testing' into entrypoints | 26 April 2023, 16:04:21 UTC |
295798a | Valentin Lorentz | 24 March 2023, 19:48:57 UTC | Stop testing pypy3.7 with optional dependencies one of the dependencies stopped supporting it (probably 'cryptography' as it's the only one not in pure-Python) | 24 March 2023, 19:49:14 UTC |
add9306 | Valentin Lorentz | 24 March 2023, 19:23:32 UTC | Socket: Clear buffers on reconnect | 24 March 2023, 19:23:32 UTC |
f518579 | Valentin Lorentz | 21 February 2023, 18:10:10 UTC | Request standard-replies capability Arbitrary standard-replies are already supported, this signals to servers that we do. | 21 February 2023, 18:10:11 UTC |
922b00c | Valentin Lorentz | 28 January 2023, 12:00:14 UTC | Fediverse: Use default headers Some instances behind Cloudflare block requests without a User-Agent header. | 28 January 2023, 12:00:16 UTC |
3f5a18e | Valentin Lorentz | 21 January 2023, 17:51:17 UTC | Remove unused import fallback on the 'mock' library | 21 January 2023, 17:51:17 UTC |
efed7d8 | Valentin Lorentz | 19 January 2023, 09:31:13 UTC | Move the 'ignore=False' trick from callbacks to Scheduler I fear putting it in callbacks would be overzealous and reset it within the processing of the same message, eg. when using conditional to set the 'ignore' tag before other nested commands run. | 19 January 2023, 09:31:13 UTC |
f409111 | Valentin Lorentz | 19 January 2023, 09:18:59 UTC | callbacks: Fix interference between Scheduler.repeat, Anonymous, and nested commands Specifically, the issue is with Anonymous using irc.noReply() in the first call, preventing nested commands' result from being used. Before this commit, the second and third responses in the test would be only "1" and "2" instead of "1 ['foo']" and "2 ['foo']". | 19 January 2023, 09:19:01 UTC |
b42596a | Valentin Lorentz | 12 January 2023, 21:24:04 UTC | Regenerate READMEs | 12 January 2023, 21:24:16 UTC |
02a0204 | Valentin Lorentz | 12 January 2023, 21:23:29 UTC | Services: Improve doc of plugins.Services.nicks | 12 January 2023, 21:24:16 UTC |
f5d39b0 | Val Lorentz | 28 December 2022, 22:15:30 UTC | Skip irctest on pypy-3.9 For some reason, it takes a whole hour to run | 28 December 2022, 22:15:30 UTC |
ef960be | Valentin Lorentz | 23 December 2022, 21:58:51 UTC | Add test for registry reloading | 28 December 2022, 16:06:02 UTC |
64b1469 | Valentin Lorentz | 21 December 2022, 21:01:32 UTC | ci: Bump Python versions | 28 December 2022, 14:12:54 UTC |
501770e | Valentin Lorentz | 28 December 2022, 13:54:48 UTC | Fediverse: Add support for missing host-meta document | 28 December 2022, 14:12:18 UTC |
21a2ace | James Lu | 09 July 2022, 20:39:44 UTC | Services: allow adjusting GHOST command Anope 2.x has renamed this to /ns recover Closes GH-1510 | 24 December 2022, 07:53:26 UTC |
d372d55 | Valentin Lorentz | 21 December 2022, 20:55:35 UTC | ci: Make Ubuntu versions explicit Github just migrated us to Ubuntu 22.04, but it can't run Python 3.6 on it | 23 December 2022, 21:33:59 UTC |
1a7c14f | Valentin Lorentz | 26 November 2022, 08:06:47 UTC | Web: Decode using the charset advertized in response headers And fall back to the sniffing when not present | 26 November 2022, 08:06:47 UTC |
e6c4da0 | Valentin Lorentz | 23 November 2022, 17:20:44 UTC | Channel: Fix and re-enable disabled tests | 23 November 2022, 18:25:22 UTC |
985ca23 | Valentin Lorentz | 20 November 2022, 19:08:04 UTC | Add tests for nicksToHostmasks | 23 November 2022, 18:25:12 UTC |
314fad3 | Valentin Lorentz | 20 November 2022, 18:32:38 UTC | Modernize tests Thanks to https://pypi.org/project/teyit/ | 20 November 2022, 18:33:23 UTC |
fd248dc | Valentin Lorentz | 20 November 2022, 18:07:44 UTC | Channel: Fix documentation, --exact cannot be combined | 20 November 2022, 18:07:44 UTC |
d7d97d3 | Valentin Lorentz | 10 November 2022, 00:48:29 UTC | Google: Remove broken commands | 10 November 2022, 00:48:49 UTC |
73a23e2 | James Lu | 07 November 2022, 02:38:22 UTC | IrcState: fix typo in attribute docs capabilities_acq -> capabilities_ack | 07 November 2022, 02:38:24 UTC |
4da1291 | Valentin Lorentz | 30 October 2022, 19:43:43 UTC | 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). | 30 October 2022, 19:46:35 UTC |
f4ac7f8 | Valentin Lorentz | 28 October 2022, 20:41:43 UTC | RSS: Don't crash on invalid variable name It's confusing not to have feedback on IRC when a variable name is typoed. | 28 October 2022, 20:41:43 UTC |
77805ff | Valentin Lorentz | 28 October 2022, 13:00:58 UTC | irclib: Abort authentication when server fails SCRAM challenge Will be tested by irctest: https://github.com/progval/irctest/pull/179 | 28 October 2022, 13:00:58 UTC |
e9a29e9 | Valentin Lorentz | 28 October 2022, 12:30:17 UTC | irclib: Fix crashes on ecdsa/scram signature failures | 28 October 2022, 12:57:57 UTC |
b0525bc | Valentin Lorentz | 28 October 2022, 12:19:09 UTC | Double default peekSize We bumped it to 8kB in 2015, but it is starting to be an issue again. | 28 October 2022, 12:22:44 UTC |
2cfc821 | Valentin Lorentz | 28 October 2022, 12:18:52 UTC | Web: Allow configuring higher peekSize on Youtube | 28 October 2022, 12:18:52 UTC |
009b900 | Valentin Lorentz | 24 October 2022, 21:43:50 UTC | 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(), ...) | 24 October 2022, 21:43:52 UTC |
2c5dc40 | Valentin Lorentz | 24 October 2022, 21:40:11 UTC | test: Revert generic 'The Limnoria Contributors' in copyright notices I forgot to include these in 63eb6672eac794a9c39dec87db3aa45147e06974 (This is fine because noone but me touched these files since the initial change in db7ef3f02517f9f2a3c56829a22b9fad3c36e374). | 24 October 2022, 21:41:26 UTC |
47253e0 | Valentin Lorentz | 24 October 2022, 21:21:11 UTC | Add test for structures.TimeoutQueue.__iter__ | 24 October 2022, 21:21:11 UTC |
d0a484c | Valentin Lorentz | 20 October 2022, 16:35:58 UTC | Sort remaining nondeterministc sets of values Closes GH-1516 | 20 October 2022, 16:35:58 UTC |
dc94f8d | Valentin Lorentz | 14 October 2022, 21:15:11 UTC | 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 | 14 October 2022, 21:15:11 UTC |
8c17505 | Valentin Lorentz | 13 October 2022, 19:46:50 UTC | User: Sort output of @capabilities It's more readable than a random order. | 13 October 2022, 19:46:50 UTC |
a6aa553 | Valentin Lorentz | 27 September 2022, 21:16:21 UTC | 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. | 06 October 2022, 07:49:42 UTC |
b1cfb87 | James Lu | 06 October 2022, 01:40:03 UTC | 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. | 06 October 2022, 06:31:22 UTC |
35bf599 | Valentin Lorentz | 20 September 2022, 05:51:46 UTC | utils/web: Add <br/> to the list of block elements It should always be replaced with a space. | 20 September 2022, 05:51:46 UTC |
169824a | Valentin Lorentz | 18 September 2022, 17:47:01 UTC | 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. | 18 September 2022, 18:06:34 UTC |
acdae12 | Valentin Lorentz | 18 September 2022, 17:32:35 UTC | Bump CI version from 3.11.0-alpha.2 to 3.11.0-rc.2 | 18 September 2022, 18:06:34 UTC |
bc3a441 | Valentin Lorentz | 18 September 2022, 17:25:48 UTC | Poll: Make answers case-insensitive | 18 September 2022, 17:25:48 UTC |
200acdf | Valentin Lorentz | 07 September 2022, 10:31:19 UTC | 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'. ``` | 07 September 2022, 10:31:22 UTC |
86b3896 | Valentin Lorentz | 15 August 2022, 22:23:33 UTC | MessageParser: Ignore chathistory batches To be consistent with commands and PluginRegexp (snarfers) | 15 August 2022, 22:23:33 UTC |
fccb4f7 | Valentin Lorentz | 07 August 2022, 16:50:14 UTC | RSS: Log feed URL when feedparser.parse raises exceptions | 07 August 2022, 17:17:15 UTC |
4db32e2 | Valentin Lorentz | 06 August 2022, 13:09:10 UTC | Ctcp: Fix 'RuntimeError: dictionary changed size during iteration' | 06 August 2022, 13:09:10 UTC |