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 |
0780624 | Valentin Lorentz | 06 August 2022, 13:08:51 UTC | Time: Fix typo | 06 August 2022, 13:08:51 UTC |
b8dce0d | Valentin Lorentz | 02 August 2022, 11:16:21 UTC | Time: Skip new assertions on Python 3.6 so testSeconds passes | 02 August 2022, 11:16:21 UTC |
8f837a6 | Valentin Lorentz | 02 August 2022, 10:59:27 UTC | Time: Add support for omitting space in @seconds | 02 August 2022, 11:01:08 UTC |
cd0f9f2 | Valentin Lorentz | 31 July 2022, 07:04:27 UTC | Polls: Make nick matching case-insensitive This prevents the same nick from voting twice by changing the capitalization | 31 July 2022, 07:04:27 UTC |
28c52c2 | Valentin Lorentz | 30 July 2022, 19:25:47 UTC | Poll: Add @poll list command | 30 July 2022, 19:25:47 UTC |
2afa3c4 | Valentin Lorentz | 30 July 2022, 19:23:10 UTC | Fediverse: run black | 30 July 2022, 19:23:10 UTC |
ef08174 | Valentin Lorentz | 29 July 2022, 08:29:48 UTC | commands: Silence noisy logging of command evaluation | 29 July 2022, 08:29:48 UTC |
ee60431 | Valentin Lorentz | 29 July 2022, 08:03:39 UTC | Add debug logging when skipping SASL mechanisms It is useful to figure out what you forgot to configure | 29 July 2022, 08:03:39 UTC |
f549ec1 | Valentin Lorentz | 29 July 2022, 07:45:09 UTC | Add debug logging of SASL mechanisms | 29 July 2022, 07:45:09 UTC |
796f717 | Valentin Lorentz | 20 July 2022, 16:31:24 UTC | requirements.txt: Classify and provide a rationale for each dependency | 20 July 2022, 16:31:24 UTC |
7b9a944 | Valentin Lorentz | 20 July 2022, 16:25:27 UTC | Remove dependency on 'mock' It is a backport of unittest.mock for Python versions before 3.3, which we do not support anymore. | 20 July 2022, 16:25:27 UTC |
461c091 | Valentin Lorentz | 20 July 2022, 16:15:51 UTC | Fediverse: Hide channel actor on PeerTube | 20 July 2022, 16:15:51 UTC |
34f8842 | Valentin Lorentz | 20 July 2022, 16:09:41 UTC | Fediverse: Add support for descriptions with line breaks | 20 July 2022, 16:10:14 UTC |
2df2bc2 | Valentin Lorentz | 20 July 2022, 15:53:00 UTC | Fediverse: Add support for videos | 20 July 2022, 15:57:29 UTC |
d67fb2a | Valentin Lorentz | 20 July 2022, 15:52:40 UTC | Autocomplete, Fediverse, Geography, Poll: Run Black | 20 July 2022, 15:53:09 UTC |
5d8f59b | pratyushd | 13 July 2022, 19:02:28 UTC | add conditional to respond acc to kick being true or not (#1512) Co-authored-by: Pratyush Desai <pratyush.desai@liberta.casa> | 13 July 2022, 19:02:28 UTC |
964acac | Pratyush Desai | 13 July 2022, 06:20:44 UTC | for #1490 extend usage examples | 13 July 2022, 06:56:30 UTC |
65d8844 | James Lu | 09 July 2022, 21:24:13 UTC | supybot-plugin-doc: default to RST None of the current maintainers are sure what stx is?? | 09 July 2022, 21:24:13 UTC |
95f6b16 | James Lu | 09 July 2022, 21:15:57 UTC | Aka, Alias: replace obsolete LastFM example | 09 July 2022, 21:15:57 UTC |
988fe08 | James Lu | 09 July 2022, 21:15:33 UTC | .gitignore: add doc-* paths from supybot-plugin-doc | 09 July 2022, 21:15:33 UTC |
96b7f51 | Valentin Lorentz | 06 July 2022, 20:07:37 UTC | 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) | 06 July 2022, 20:07:37 UTC |
3ecb37d | Valentin Lorentz | 06 July 2022, 20:05:30 UTC | test_callbacks: Add PluginRegexpTestCase.testReply to check basic behavior | 06 July 2022, 20:05:30 UTC |
6a943b8 | Valentin Lorentz | 06 July 2022, 20:04:33 UTC | test_callbacks: Fix PluginRegexpTestCase to actually check regexp callbacks | 06 July 2022, 20:04:33 UTC |
d00113e | James Lu | 23 June 2022, 20:12:13 UTC | 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. | 23 June 2022, 20:31:17 UTC |
8ccf2c7 | James Lu | 23 June 2022, 20:09:23 UTC | PluginDownloader: drop legacy Python 2-only repos Most of these haven't been updated in ~10 years and are unlikely to work out of the box today (obsolete web APIs, etc.) | 23 June 2022, 20:31:17 UTC |
b3443a5 | Valentin Lorentz | 22 June 2022, 18:31:53 UTC | setup: Fix install of subpackages when pip-installed from git repositories It seems setuptools needs to be explicitly told to include subpackages in this case. | 22 June 2022, 18:31:59 UTC |
d04e816 | SamStrongTalks | 17 June 2022, 14:44:12 UTC | Add ability to exclude channel from self censoring (#1508) | 17 June 2022, 14:44:12 UTC |
6379a9d | Valentin Lorentz | 17 June 2022, 07:11:35 UTC | supybot-reset-password: Update help string to match the man page | 17 June 2022, 07:11:35 UTC |
a65960b | Valentin Lorentz | 17 June 2022, 07:06:58 UTC | Add missing man page for supybot-reset-password. | 17 June 2022, 07:09:20 UTC |
fd04fcc | Valentin Lorentz | 16 June 2022, 22:29:38 UTC | i18n: Validate value of supybot.language | 16 June 2022, 22:29:38 UTC |
93370b6 | Valentin Lorentz | 16 June 2022, 21:43:34 UTC | utils: Rewrite i18n initialization The previous implementation was messy and needlessly complicated This simplifies the logic and removes hackiness by making utils/str.py handle internationalization logic itself, instead of bending over backwards to load logic from the parent package at import time. | 16 June 2022, 22:05:51 UTC |
4a620bf | Valentin Lorentz | 16 June 2022, 20:35:01 UTC | Socket: Use the right variable to initialize the reconnect delay | 16 June 2022, 20:35:08 UTC |
94d669e | Valentin Lorentz | 28 May 2022, 11:53:05 UTC | Make the minimum reconnect delay configurable | 28 May 2022, 11:53:05 UTC |
32198d4 | Valentin Lorentz | 27 April 2022, 20:15:43 UTC | i18n: Skip fuzzy strings The German translation currently has at least one fuzzy string with a missing %s; and several translations are completely wrong. | 27 April 2022, 20:15:43 UTC |
109f938 | Valentin Lorentz | 22 April 2022, 16:30:31 UTC | Implement +draft/channel-context | 22 April 2022, 16:30:31 UTC |
1d4a43e | Valentin Lorentz | 16 April 2022, 10:05:43 UTC | AutoMode: Fix crash on servers without ISUPPORT PREFIX | 16 April 2022, 10:05:43 UTC |
94c7c7d | Valentin Lorentz | 08 April 2022, 11:02:31 UTC | supybot-plugin-create: Remove fallback for missing supybot.i18n It is unlikely new plugins will be used on stock Supybot or Gribble. | 08 April 2022, 11:02:31 UTC |
9ec4eb9 | Valentin Lorentz | 08 April 2022, 10:44:42 UTC | irclib: Fix assertion failure on InspIRCd when Sigyn plugin is loaded | 08 April 2022, 10:44:42 UTC |
eb6fc93 | Valentin Lorentz | 04 April 2022, 21:29:47 UTC | Web: Fix matching for youtube | 04 April 2022, 21:29:47 UTC |
21ea999 | Valentin Lorentz | 04 April 2022, 20:07:06 UTC | Time: Add support for UTC offsets as tztime arguments. | 04 April 2022, 20:07:06 UTC |
4f3d6fc | Valentin Lorentz | 04 April 2022, 20:06:19 UTC | Geograpy: Fix formatting of negative non-integral offsets (and improve others) | 04 April 2022, 20:06:19 UTC |
088d0f5 | Valentin Lorentz | 17 March 2022, 21:29:10 UTC | irclib: Catch exception from outFilter, as with inFilter | 17 March 2022, 21:29:10 UTC |
862fca1 | Valentin Lorentz | 06 March 2022, 12:38:10 UTC | conf: Use imports instead of sys.modules to detect module availability `conf.supybot.databases()` may be called without any plugin supporting sqlite3 being loaded yet, which causes `sqlite3` to be missing from `sys.modules`; so it wouldn't be used by plugins loaded afterward. | 06 March 2022, 12:39:47 UTC |
d58d8d4 | Valentin Lorentz | 06 March 2022, 12:37:01 UTC | conf: Prioritize sqlite3 over sqlalchemy in supybot.databases It's usually a better choice for plugins that implement both | 06 March 2022, 12:39:41 UTC |
9e995d8 | Valentin Lorentz | 06 March 2022, 12:35:37 UTC | conf: Remove 'sqlite' module from supybot.databases It is wholy replaced by 'sqlite3', now | 06 March 2022, 12:39:19 UTC |
80b26c0 | PeGaSuS | 06 March 2022, 11:30:02 UTC | Fix typo in conf.py (#1501) Fixed typo that lead to a wrong variable name being pointed out | 06 March 2022, 11:30:02 UTC |
66d986e | Valentin Lorentz | 03 March 2022, 21:16:37 UTC | Web: Add overrides to support Youtube and Reddit; remove Twitter from tests. | 03 March 2022, 21:16:53 UTC |
76f7ece | Valentin Lorentz | 19 February 2022, 20:18:24 UTC | Fediverse: Update tests broken by previous commit | 19 February 2022, 20:18:24 UTC |
78bdc46 | Valentin Lorentz | 19 February 2022, 20:00:15 UTC | htmlToText: Don't replace inline element tags with spaces They are not meant to be displayed like this, so they look weird sometimes. For example, Mastodon splits long links between spans, so the Fediverse plugin always displayed them broken. | 19 February 2022, 20:00:51 UTC |
bc76f7e | Valentin Lorentz | 17 February 2022, 11:17:42 UTC | Fix utils.time.iana_timezone on python < 3.9 | 17 February 2022, 11:18:13 UTC |
4e60d88 | Valentin Lorentz | 16 February 2022, 20:27:26 UTC | Misc: Make @last handle --regexp in a single process for all messages Spawning one process for each message was a little silly, considering there can be thousands of messages. Plus, some instances do reach the timeout after running for a few weeks, so we really need to fix this. Ideally, `regexp_wrapper` should also be removed from other plugins (Todo, Notes, ...) as they have the same issues, but this will do for now. | 16 February 2022, 20:27:28 UTC |
4b892c2 | Valentin Lorentz | 05 February 2022, 23:14:47 UTC | all: Update .pot and .po files | 05 February 2022, 23:14:47 UTC |
f13d275 | Valentin Lorentz | 05 February 2022, 23:11:38 UTC | sandbox/update_pot.py: Run msgmerge as well | 05 February 2022, 23:12:42 UTC |
24f0e21 | Valentin Lorentz | 05 February 2022, 23:03:13 UTC | sandbox/update_pot.py: Also generate .pot file for the core | 05 February 2022, 23:11:20 UTC |
736430d | Valentin Lorentz | 05 February 2022, 22:51:04 UTC | Modernize sandbox/update_plugins_messagespot.py | 05 February 2022, 22:51:04 UTC |
5b7b2bd | Valentin Lorentz | 05 February 2022, 22:37:39 UTC | Fix chmods | 05 February 2022, 22:37:39 UTC |
dacaefd | Valentin Lorentz | 05 February 2022, 16:32:11 UTC | supybot-plugin-create: Create setup.py | 05 February 2022, 16:32:11 UTC |
498290f | Valentin Lorentz | 03 February 2022, 18:56:59 UTC | wizard: Fix mixup of sasl username and password | 03 February 2022, 18:56:59 UTC |
0ed743b | James Lu | 29 January 2022, 01:47:58 UTC | Format: allow empty substrings in 'replace' This allows for easy substring removal without having to use regex. | 29 January 2022, 01:50:31 UTC |
c7fa33b | Valentin Lorentz | 26 January 2022, 18:03:13 UTC | setup.py: Use the website's URL instead of the repo's | 26 January 2022, 18:03:47 UTC |
da549e4 | Valentin Lorentz | 16 January 2022, 19:45:41 UTC | Geography: Print current UTC offset next to timezones. | 16 January 2022, 19:45:41 UTC |
880efbb | Valentin Lorentz | 16 January 2022, 18:44:22 UTC | Merge branch 'geography' into testing | 16 January 2022, 18:44:22 UTC |
1643cb1 | Valentin Lorentz | 11 January 2022, 19:38:44 UTC | registry.Regexp: Better safeguard against misuses of _setValue() | 11 January 2022, 19:38:44 UTC |
28b28fe | Valentin Lorentz | 11 January 2022, 19:38:14 UTC | Config: Fix crash happening since the previous commit | 11 January 2022, 19:38:14 UTC |
dcca9f9 | Valentin Lorentz | 11 January 2022, 19:13:39 UTC | RSS: Make feed announces actually network-specific .getSpecific() always returned the channel-specific but non-network-specific var, unless the channel-specific and network-specific one was manually set. | 11 January 2022, 19:13:39 UTC |
40155ed | Valentin Lorentz | 09 January 2022, 13:10:15 UTC | Fix syntax DeprecationWarning. | 09 January 2022, 13:10:15 UTC |
74f8665 | Valentin Lorentz | 01 January 2022, 17:11:36 UTC | Remove fallbacks for old Python versions. | 01 January 2022, 17:11:36 UTC |
181e34b | Valentin Lorentz | 01 January 2022, 16:44:17 UTC | setup.py + CI: Remove support for Python 3.4 and 3.5 | 01 January 2022, 16:49:12 UTC |
7fade19 | Valentin Lorentz | 23 December 2021, 19:09:49 UTC | Google: Update suggestions in the deprecation warning 1. DDG is now built-in 2. GoogleCSE is actually limited to site-specific search | 23 December 2021, 19:09:49 UTC |
caa5aa3 | Valentin Lorentz | 19 December 2021, 20:11:26 UTC | Config: Replace inconsistent terminology | 19 December 2021, 20:11:26 UTC |
3f77c53 | Valentin Lorentz | 19 December 2021, 19:53:08 UTC | utils/structures: Fix typos, remove unused code | 19 December 2021, 19:53:11 UTC |
8053d74 | Valentin Lorentz | 18 December 2021, 18:38:49 UTC | setup.py: Fix typo | 18 December 2021, 18:38:49 UTC |
ac379eb | Valentin Lorentz | 18 December 2021, 17:37:46 UTC | supybot-wizard: Ask for SASL username and password | 18 December 2021, 17:37:46 UTC |
d1191d1 | Valentin Lorentz | 18 December 2021, 17:37:26 UTC | setup.py: Remove 3.4 and 4.5 from the classifiers | 18 December 2021, 17:37:26 UTC |
49c7c30 | Valentin Lorentz | 18 December 2021, 17:36:48 UTC | setup.py: Remove reference to supybot from the short description | 18 December 2021, 17:36:48 UTC |
e223b50 | Valentin Lorentz | 07 December 2021, 22:30:16 UTC | utils.time: Add support for timezones without a slash. eg. UTC, CET, ... | 07 December 2021, 22:30:16 UTC |
ed9dffd | Valentin Lorentz | 04 December 2021, 02:19:12 UTC | supybot-plugin-doc: Remove extra space + regenerate all READMEs. | 04 December 2021, 02:19:12 UTC |
2d22417 | Valentin Lorentz | 04 December 2021, 02:08:09 UTC | supybot-plugin-doc: Fix exceptions raised while exiting the script. | 04 December 2021, 02:08:09 UTC |
828fff9 | Valentin Lorentz | 04 December 2021, 01:50:28 UTC | supybot-plugin-doc: Add missing newlines + regenerate all READMEs. | 04 December 2021, 01:50:28 UTC |
ef0cd48 | Valentin Lorentz | 03 December 2021, 17:03:27 UTC | registry: Better explain String.__str__ | 03 December 2021, 17:03:27 UTC |
fba5ed5 | Valentin Lorentz | 03 December 2021, 16:59:53 UTC | Fix crash caused by registry.Json.__str__ returning non-str objects | 03 December 2021, 17:02:14 UTC |
f1824fc | Valentin Lorentz | 03 December 2021, 16:28:05 UTC | Config: Fix crash when reseting registry.Pattern | 03 December 2021, 16:28:05 UTC |
baa8cda | Valentin Lorentz | 03 December 2021, 15:51:15 UTC | Fix bypassed cache invalidation checks, causing '@config reload' to be partially ignored `registry.Value.__call__()` is a wrapper around access to `registry.Value.value`, that checks if the value was set before the latest call to `registry.open_registry`; and updates the `value` if needed. When accessing `registry.Value.value` directly, this cache can't be invalidated, causing the old value to still be used, until the next call to `registry.Value.__call__()`. | 03 December 2021, 15:56:06 UTC |
c0d033f | Valentin Lorentz | 28 November 2021, 16:59:59 UTC | Math: Fix crash in @convert on small/large single-digit numbers str() converts them to the exponent notation, which makes split('.')[1] crash, since there is no decimal part in the exponent notation when there is a single significant digit. | 28 November 2021, 17:00:58 UTC |
2d5c807 | Valentin Lorentz | 25 November 2021, 23:55:31 UTC | MessageParser: Fix crash (and unexpected behavior) when matching backslashes Closes GH-1497. | 25 November 2021, 23:55:44 UTC |
068488c | Valentin Lorentz | 20 November 2021, 13:41:42 UTC | Fix sdists created by newer setuptools versions. This caused the PyPI package to be broken since I upgraded my computer from Debian bullseye | 20 November 2021, 13:41:42 UTC |
dd3678e | Valentin Lorentz | 19 November 2021, 08:53:31 UTC | Remove Travis badges | 19 November 2021, 08:53:31 UTC |
63a97fc | Valentin Lorentz | 18 November 2021, 12:17:39 UTC | Owner: Ignore commands when they are in a chathistory batch. | 18 November 2021, 12:17:39 UTC |
2236c75 | Valentin Lorentz | 17 November 2021, 22:26:06 UTC | irclib: Request draft/account-registration Servers might reject the REGISTER command if it's not ACKed. | 17 November 2021, 22:26:06 UTC |
d2091e8 | Valentin Lorentz | 11 November 2021, 18:07:31 UTC | Geography: Always prefer IANA timezones over UTC offsets Even if the UTC offsets are given on a more specific entity, they are usually worthless to us (eg. DST). | 11 November 2021, 18:07:36 UTC |
76b9d6f | Valentin Lorentz | 09 November 2021, 22:38:31 UTC | Geography: Properly handle missing timezones | 09 November 2021, 22:38:31 UTC |
93a407a | Valentin Lorentz | 09 November 2021, 22:10:55 UTC | Geography: Add 'localtime' command | 09 November 2021, 22:10:59 UTC |