fcb342c | Valentin Lorentz | 15 December 2019, 19:19:17 UTC | test: Mock calls to time.sleep() The tests now take 7 seconds instead of 30. | 15 December 2019, 19:20:42 UTC |
a6392c8 | James Lu | 15 December 2019, 19:18:09 UTC | test: choose a random free port for tests using the HTTP server Closes #1392. | 15 December 2019, 19:20:37 UTC |
8491d0b | Valentin Lorentz | 15 December 2019, 17:43:51 UTC | Web: Lower log level when title could not be found. | 15 December 2019, 17:43:51 UTC |
dc2068d | Valentin Lorentz | 15 December 2019, 16:26:47 UTC | Web: Remove leading space if the prefix is empty. | 15 December 2019, 16:27:47 UTC |
143cd9d | Richard | 13 December 2019, 19:01:48 UTC | Services: Fix typo in doInvite() (#1394) | 13 December 2019, 19:01:48 UTC |
130ceed | Valentin Lorentz | 09 December 2019, 20:34:21 UTC | Update supybot-plugin-doc to work with current version of the registry. Closes GH-1388. | 09 December 2019, 20:34:21 UTC |
a86df1f | Valentin Lorentz | 09 December 2019, 20:27:09 UTC | Remove dead code from Group that belongs in Value. | 09 December 2019, 20:27:09 UTC |
83114e5 | Valentin Lorentz | 05 December 2019, 20:11:01 UTC | src/callbacks.py: use network-specific values. Closes GH-1393 | 05 December 2019, 20:51:25 UTC |
1ed47f8 | Valentin Lorentz | 05 December 2019, 20:10:31 UTC | Request msgid capability. | 05 December 2019, 20:11:35 UTC |
981a3b2 | Mattia Rizzolo | 27 November 2019, 15:59:11 UTC | QuoteGrabs: fix SyntaxWarning (#1391) SyntaxWarning: "is" with a literal. Did you mean "=="? Signed-off-by: Mattia Rizzolo <mattia@mapreri.org> | 27 November 2019, 15:59:11 UTC |
a1ee580 | Valentin Lorentz | 24 November 2019, 11:59:38 UTC | Make getLocaleFromRegistryCache reload existing locales. The core locale is loaded before this function is called, so it needs to reload it for non-en locales to be loaded. | 24 November 2019, 11:59:38 UTC |
63b0d7e | Valentin Lorentz | 24 November 2019, 11:47:03 UTC | Update core fr translation. | 24 November 2019, 11:47:03 UTC |
0828b20 | Valentin Lorentz | 24 November 2019, 11:46:10 UTC | Add fallback if getting supybot.language from registry cache failed. | 24 November 2019, 11:46:10 UTC |
423a387 | Valentin Lorentz | 24 November 2019, 11:04:21 UTC | Get locale name on startup from registry cache instead of parsing config file. Parsing the config file needlessly requires an extra read of it, and is brittle (extra spaces, etc.) It was especially broken as there was a newline character at the end of currentLocale, which made everything fail shamefully. | 24 November 2019, 11:04:21 UTC |
a8b6698 | Valentin Lorentz | 23 November 2019, 17:48:58 UTC | Add config supybot.reply.format.list.maximumItems to limit the size of format('%L', ...). | 23 November 2019, 17:48:58 UTC |
1a17074 | Valentin Lorentz | 22 November 2019, 17:17:44 UTC | Web: Add early returns on exception when snarfing titles. Closes GH-1390. | 22 November 2019, 17:17:53 UTC |
9291fbd | James Lu | 11 November 2019, 20:00:48 UTC | All plugins: set Limnoria contributors as maintainer | 16 November 2019, 19:41:13 UTC |
1858eaf | James Lu | 11 November 2019, 19:55:29 UTC | Plugin: support showing __maintainer__ field in the 'author' command | 16 November 2019, 19:41:13 UTC |
a4701b2 | James Lu | 11 November 2019, 19:53:30 UTC | Plugin: accept author name in 'contributors' command | 16 November 2019, 19:41:13 UTC |
7854db7 | James Lu | 11 November 2019, 19:09:50 UTC | Better formatting in supybot.Author if some fields are missing | 16 November 2019, 19:41:13 UTC |
bace9cb | Valentin Lorentz | 15 November 2019, 20:24:31 UTC | MoobotFactoids: Fix support of commands sent in private. Regression from c1ae3f5c81cc8cf4effc7670e99c9270e31a1c9c. | 15 November 2019, 20:24:31 UTC |
bc663b1 | Valentin Lorentz | 15 November 2019, 20:14:46 UTC | Nicer error message in getChannel/makeChannelFilename when channel is None. | 15 November 2019, 20:14:46 UTC |
f852877 | Valentin Lorentz | 11 November 2019, 18:42:34 UTC | RSS: Register feed config in config.py instead of plugin.py. So they are not dropped if plugin.py fails to load before feedparser is not installed. Closes GH-1387. | 11 November 2019, 18:42:34 UTC |
8001de6 | Valentin Lorentz | 11 November 2019, 17:06:45 UTC | Scheduler: Use assertRegexp instead of assertNotRegexp in tests. It avoids self negatives. | 11 November 2019, 17:06:59 UTC |
b2f6c3c | Valentin Lorentz | 11 November 2019, 17:06:07 UTC | test: Don't overwrite the main Schedule in the driver list. Closes GH-1385. | 11 November 2019, 17:06:07 UTC |
5718eaf | Valentin Lorentz | 11 November 2019, 14:29:17 UTC | Scheduler: Use default timeout for assertResponse. Needed for slow/busy computers like Travis, apparently. | 11 November 2019, 14:29:20 UTC |
ad66719 | Valentin Lorentz | 11 November 2019, 14:06:06 UTC | Scheduler: Use mocking to make tests faster. 40s -> less than 10s. Also some timeout tweaks that might fix GH-1385. | 11 November 2019, 14:06:06 UTC |
1a69a7b | Valentin Lorentz | 11 November 2019, 11:38:27 UTC | Math: Fix test on Pypy. | 11 November 2019, 11:38:27 UTC |
78a50c8 | Valentin Lorentz | 11 November 2019, 11:12:10 UTC | Math: Display a nicer error in case of MemoryError. | 11 November 2019, 11:12:10 UTC |
2dddfef | Valentin Lorentz | 09 November 2019, 17:38:40 UTC | Fix log on SASL failure. Broken by 04b55805b8175e0f29d0f4d77dbae2b91b96d5d1. | 09 November 2019, 17:38:40 UTC |
6a9462b | Valentin Lorentz | 09 November 2019, 17:27:07 UTC | Fix reset of capabilities_ls. Broken by 0014b206ada2cc1fbabe497a0048e2bfed608511. | 09 November 2019, 17:27:07 UTC |
3848ae7 | Valentin Lorentz | 09 November 2019, 14:24:37 UTC | Math: Rewrite calc functions with a proper evaluator. Instead of hacking around eval(), which everyone knows is a bad idea even with prior expression sanitizing. | 09 November 2019, 14:49:31 UTC |
5e2343f | Valentin Lorentz | 08 November 2019, 19:53:04 UTC | Update doc of capabilities.default to mention 'channel capability setdefault'. | 08 November 2019, 19:53:04 UTC |
04b5580 | Valentin Lorentz | 02 November 2019, 19:52:58 UTC | Log SASL mechanism on failure. Closes GH-1014. | 02 November 2019, 19:52:58 UTC |
813f688 | Valentin Lorentz | 02 November 2019, 17:50:20 UTC | Config: Add : prefix to network-specific values listed by 'config list'. | 02 November 2019, 17:50:20 UTC |
322923c | Valentin Lorentz | 02 November 2019, 17:47:45 UTC | Config: make 'config list' exclude pseudo-children of network-specific variables. | 02 November 2019, 17:49:10 UTC |
9e58b2c | Valentin Lorentz | 01 November 2019, 21:21:51 UTC | Owner: Fix @upkeep reply on recent Pypy versions. Because their gc.collect() function returns None. | 01 November 2019, 21:21:51 UTC |
10ccfbb | Valentin Lorentz | 01 November 2019, 21:18:32 UTC | Remove early return in upkeep() in case sys.stdout is replaced. We don't want flushing to be entirely skipped just because of that. | 01 November 2019, 21:18:32 UTC |
57dee45 | Valentin Lorentz | 01 November 2019, 20:39:53 UTC | .travis.yml: Add pypy3 to build matrix. | 01 November 2019, 20:39:53 UTC |
7466058 | Rodrigo Nascimento Hernandez | 01 November 2019, 08:06:45 UTC | Web: Catch more errors in getTitle. | 01 November 2019, 08:06:45 UTC |
3648751 | Valentin Lorentz | 28 October 2019, 17:17:05 UTC | MoobotFactoids: Don't rely on unspecified order of sqlite3 results. Closes GH-1383. | 28 October 2019, 17:17:13 UTC |
cf954cf | Valentin Lorentz | 28 October 2019, 17:16:04 UTC | MoobotFactoids: Fix test to actually detect that sqlite3 is installed. It works in the test suite because other plugins do the right import, but we need to do it here as well if we want supybot-test to run on this plugin alone. | 28 October 2019, 17:17:13 UTC |
103210e | Valentin Lorentz | 28 October 2019, 17:08:09 UTC | Explicitly include test/ in release tarballs. Closes GH-1384. distutils whitelists 'test/test*.py', which unfortunately excludes 'test/__init__.py', which is needed by supybot-test. | 28 October 2019, 17:17:13 UTC |
9eecede | James Lu | 27 October 2019, 19:59:37 UTC | Fill in author info for plugins missing it | 27 October 2019, 19:59:37 UTC |
9268356 | Valentin Lorentz | 25 October 2019, 21:07:31 UTC | Split 'CAP REQ' commands to not exceed 512 bytes. | 25 October 2019, 21:07:31 UTC |
0014b20 | Valentin Lorentz | 25 October 2019, 20:40:51 UTC | Reset capability set state on reconnection. | 25 October 2019, 20:40:51 UTC |
cfbbed3 | Valentin Lorentz | 25 October 2019, 20:31:02 UTC | Truncate incoming lines to 512-2, not 500. | 25 October 2019, 20:31:09 UTC |
71cc414 | Valentin Lorentz | 22 October 2019, 15:57:39 UTC | Fix conditional on CTCP in urlSnarfer. Broken in 8bb31a54e719af4deaa52b28c22792880492f711. ( https://github.com/ProgVal/Limnoria/commit/8bb31a54e719af4deaa52b28c22792880492f711\#diff-44309956f4d4fbbe0b8499c3d849080fL209-R212 ) | 22 October 2019, 15:57:46 UTC |
d3a2964 | James Lu | 19 October 2019, 19:01:47 UTC | Plugin: add missing substitution, check for supybot.authors.unknown explicitly | 19 October 2019, 19:02:14 UTC |
35a64ec | James Lu | 19 October 2019, 18:32:30 UTC | Plugin: update tests I'm taking the liberty of adding myself to supybot.authors here. | 19 October 2019, 18:34:24 UTC |
e3d8987 | James Lu | 19 October 2019, 18:27:11 UTC | Plugin: update plugin description in __init__.py Also remove some outdated comments. | 19 October 2019, 18:27:39 UTC |
75a96ff | James Lu | 19 October 2019, 18:17:35 UTC | Plugin: show individual contributions in 'contributors [nick]' as a list Remove special handling of one word contributions as commands, which was never clearly documented and is prone to false positives. | 19 October 2019, 18:17:35 UTC |
672652d | James Lu | 19 October 2019, 18:09:55 UTC | Plugin: refactor the first half of 'contributors [nick]' | 19 October 2019, 18:10:42 UTC |
65e3e18 | James Lu | 19 October 2019, 17:45:12 UTC | Plugin: simplify the 'contributors' command - Remove author sorting; it's not obvious that this is being done anyways. - Format author and contributors as separate sentences; conjunctions are messy for code and very language-specific. | 19 October 2019, 17:47:33 UTC |
930da6a | James Lu | 19 October 2019, 17:17:53 UTC | Use a real invalid email in supybot.authors.unknown | 19 October 2019, 17:20:38 UTC |
e7f0335 | James Lu | 19 October 2019, 17:16:35 UTC | Don't repeat nick in supybot.Author if nick and name are the same This is the case e.g. for quantumlemur's plugins. | 19 October 2019, 17:20:38 UTC |
7ac2828 | James Lu | 19 October 2019, 17:12:42 UTC | supybot-plugin-create: CVS is dead, stop mentioning it | 19 October 2019, 17:20:38 UTC |
18f9a34 | James Lu | 19 October 2019, 16:57:13 UTC | Throw out mungeEmail for supybot.Author This has limited value these days, because 1) the email info for authors is most often in a public VCS already 2) it makes using the actual contact info harder. | 19 October 2019, 17:20:35 UTC |
00b2e9c | Louis-Philippe Véronneau | 18 October 2019, 19:44:33 UTC | Remove the /debian directory. This is not really a native Debian package and this directory hasn't been touched in years. The actual Debian packaging work is done on salsa.debian.org. | 18 October 2019, 20:03:33 UTC |
b54d8f8 | James Lu | 17 October 2019, 19:30:07 UTC | regexp_wrapper: return None instead of False when search times out (#1379) This allows plugins to detect whether a search timed out or did not match, which are two distinct outcomes. | 17 October 2019, 19:30:07 UTC |
27e7d6a | Johannes Löthberg | 10 October 2019, 15:27:34 UTC | Aka: Add web UI (#1373) * utils.web: Import html escaping functions Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> * Aka: Add web interface for browsing Akas Fixes #1226. Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> * httpserver: Actually handle KeyError in unhook Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> * test: FakeHTTPConnection: Don't decode data in send BaseHTTPRequestHandler expects to get bytes, so we can't decode the sent data. Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> * test: HTTPPluginTestCase: Use BytesIO instead of StringIO BaseHTTPRequestHandler expects bytes, not strings. Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> * test: HTTPPluginTestCase: Rewind wfile to 0 before reading the response Otherwise the read pointer is at the end of the file. Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> * Aka: Add basic web UI tests Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> | 10 October 2019, 15:27:34 UTC |
68539da | jesopo | 10 October 2019, 14:46:36 UTC | Format: use string.capwords() - not .title() (#1378) * use string.capwords() - not .title(). closes #1366 * add test case for "@format title" that checks handling apostrophes * `assertResponse` evidently needs the relevant subcommand | 10 October 2019, 14:46:36 UTC |
3c23faf | James Lu | 06 October 2019, 18:42:31 UTC | RSS: add 'announce channels' command to list channels a feed is announced to Closes #1322. | 06 October 2019, 18:46:21 UTC |
ba68783 | Johannes Löthberg | 06 October 2019, 15:21:12 UTC | plugins/Config: Reply with success on setdefault Signed-off-by: Johannes Löthberg <johannes@kyriasis.com> | 06 October 2019, 15:43:58 UTC |
beb1000 | James Lu | 05 October 2019, 23:40:37 UTC | Network: send whois requests using the original nick case Fixes #1350. This works around an edge case in charybdis / ircd-seven where remote whois requests to a UID are not accepted if it is given in a different case. | 05 October 2019, 23:40:37 UTC |
8b2cbbc | Valentin Lorentz | 05 October 2019, 20:29:00 UTC | Use a monotonic time for registry cache. So an old cache does not take precedence over a newly set value. I noticed this bug because of the time going backward in tests because of the time.time mock introduced in dcf55cf6deb90f2498e53068175562aa36d315cc, but this may happen in production systems too. Also adds another deprecation warning for python < 3.3. | 05 October 2019, 20:29:11 UTC |
702cfaa | Valentin Lorentz | 05 October 2019, 13:57:28 UTC | RSS: Fix __repr__ formatter. | 05 October 2019, 13:57:28 UTC |
dcf55cf | Valentin Lorentz | 05 October 2019, 13:57:01 UTC | RSS: Use an explicit timeout for assertNoResponse, because it defaults to 0. Which means there may be a command/update thread running and returning after assertNoResponse returns. In particular, that's an issue when assertNoResponse is called right before setting feedparser._open_resource, because the running thread might still be holding the lock but have fetched the new version already, so the thread announces the new feed elements earlier than expected. | 05 October 2019, 13:57:01 UTC |
a466580 | Valentin Lorentz | 05 October 2019, 10:12:46 UTC | News + RSS: Mock time.time() instead of using time.sleep() in tests. Saves 40s over the ~5min test suite. | 05 October 2019, 10:22:30 UTC |
3c42ce0 | Valentin Lorentz | 28 September 2019, 08:33:54 UTC | Only clear users db if the filename is set. | 28 September 2019, 08:33:54 UTC |
bcbaa97 | Valentin Lorentz | 28 September 2019, 08:33:10 UTC | Revert "Deduplicate (de)serialization code shared by UsersDictionary and ChannelsDictionary." This reverts commit a4f8e3f64734f1cd3331cb380e00ba8fe8bdf65e. | 28 September 2019, 08:33:10 UTC |
5bfee2e | Valentin Lorentz | 26 September 2019, 21:00:01 UTC | Fix typo in doc. | 26 September 2019, 21:00:01 UTC |
a4f8e3f | Valentin Lorentz | 26 September 2019, 20:48:05 UTC | Deduplicate (de)serialization code shared by UsersDictionary and ChannelsDictionary. | 26 September 2019, 20:48:05 UTC |
7d218ec | Valentin Lorentz | 26 September 2019, 20:47:04 UTC | Document unpreserve.Reader (expected format + method hooks). | 26 September 2019, 20:47:04 UTC |
84c1f15 | Valentin Lorentz | 20 September 2019, 19:23:49 UTC | Don't temporarily set msg.channel to invalid values. This causes issue when multiple command threads deal with the same message. | 20 September 2019, 19:25:32 UTC |
6c5072c | jesopo | 18 September 2019, 18:27:02 UTC | only raise in commands.process() when a raise was wrapped (#1370) | 18 September 2019, 18:27:02 UTC |
219ac6d | Valentin Lorentz | 15 September 2019, 06:03:12 UTC | Include plugins setup.py in installed files / release tarballs. | 15 September 2019, 06:03:12 UTC |
8539357 | Valentin Lorentz | 15 September 2019, 06:03:00 UTC | Include README.md in installed files / release tarballs. | 15 September 2019, 06:03:00 UTC |
40837db | Valentin Lorentz | 15 September 2019, 06:02:10 UTC | Don't mutate server list while iterating on it. It causes hanging at bot/test stops. | 15 September 2019, 06:02:10 UTC |
656222e | Valentin Lorentz | 14 September 2019, 12:35:43 UTC | ChannelLogger: Fix filename escaping. | 14 September 2019, 12:35:43 UTC |
af60529 | Valentin Lorentz | 14 September 2019, 10:15:57 UTC | ChannelLogger: Fix test broken by previous merge. | 14 September 2019, 10:15:57 UTC |
573921c | Valentin Lorentz | 14 September 2019, 10:10:47 UTC | Merge branch 'netconf-and-ircmsgs-channel' into testing | 14 September 2019, 10:10:47 UTC |
67c2bac | Valentin Lorentz | 08 September 2019, 19:35:35 UTC | Set msg.channel in ReplyIrcProxy and NestedCommandsIrcProxy. Needed when plugins use a self.Proxy with a crafted message; else the called commands will assume the message was sent in private. | 08 September 2019, 19:35:35 UTC |
de9cea8 | Valentin Lorentz | 08 September 2019, 17:05:13 UTC | ChannelLogger: Fix NameError on 'irc'. | 08 September 2019, 17:22:30 UTC |
f143e97 | Valentin Lorentz | 08 September 2019, 12:46:56 UTC | Interpret empty server tag values as missing tag values. As required by https://ircv3.net/specs/extensions/message-tags | 08 September 2019, 12:47:05 UTC |
88524be | Valentin Lorentz | 06 September 2019, 18:15:18 UTC | ChannelLogger + Karka + all DB plugins: Sanitize channel names when used in filenames. | 06 September 2019, 18:42:13 UTC |
b166f4a | Valentin Lorentz | 31 August 2019, 15:43:13 UTC | Network: Make the 'network' argument of @disconnect mandatory. Closes GH-161. Otherwise, if it's provided and the network doesn't exist (or the bot isn't currently connected to it), it's interpreted as being a quit message and disconnects from the current network. | 31 August 2019, 15:43:16 UTC |
0413304 | Valentin Lorentz | 26 August 2019, 20:24:14 UTC | Nickometer: Use non-euclidian division as was originally intended. I accidentally broke it in 88c2c130cac98e478bc1966003f38e213e032e45, thinking the operands were both integers. | 26 August 2019, 20:24:14 UTC |
b65d785 | Valentin Lorentz | 25 August 2019, 12:00:11 UTC | Services: Add support for network-specific password. | 25 August 2019, 12:08:11 UTC |
68de4f8 | Valentin Lorentz | 25 August 2019, 08:24:57 UTC | Config: Prevent accidental leak of private values on public channels. | 25 August 2019, 08:26:47 UTC |
c07086d | Valentin Lorentz | 25 August 2019, 08:25:14 UTC | Config: Add command '@config network'. | 25 August 2019, 08:25:14 UTC |
2f4644f | Valentin Lorentz | 25 August 2019, 08:24:57 UTC | Config: Prevent accidental leak of private values on public channels. | 25 August 2019, 08:24:57 UTC |
0b5bd62 | Valentin Lorentz | 24 August 2019, 22:07:24 UTC | Add test for simple registry value inheritance. | 24 August 2019, 22:07:29 UTC |
e878279 | Valentin Lorentz | 24 August 2019, 22:07:11 UTC | py2.6 compat for cac3de71b1fe8b851ef75b30b52ab712cfa2f922. | 24 August 2019, 22:07:11 UTC |
7e1a1a2 | Valentin Lorentz | 24 August 2019, 22:06:35 UTC | Fix fallback of Group.__getattr__ on protected attributes. | 24 August 2019, 22:06:35 UTC |
cac3de7 | Valentin Lorentz | 24 August 2019, 21:37:47 UTC | Add test for escaping registry key names. | 24 August 2019, 21:37:47 UTC |
e9bf05b | Valentin Lorentz | 24 August 2019, 21:37:23 UTC | Don't unregister subtree if only the child is unset. Because now, grandchildren may have set values. | 24 August 2019, 21:37:23 UTC |
633eea0 | Valentin Lorentz | 24 August 2019, 21:35:46 UTC | Config: Fix test failure when another test set this value before. | 24 August 2019, 21:35:46 UTC |
c1ae3f5 | Valentin Lorentz | 24 August 2019, 15:50:05 UTC | all plugins: Use msg.channel instead of msg.args[0] + give network name to self.registryValue. | 24 August 2019, 21:35:01 UTC |
9326331 | Valentin Lorentz | 24 August 2019, 13:39:17 UTC | Merge branch 'ircmsg-channel' into netconf-and-ircmsgs-channel | 24 August 2019, 13:39:17 UTC |