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 |
81968d9 | Valentin Lorentz | 24 August 2019, 13:39:10 UTC | Merge branch 'network-config' into netconf-and-ircmsgs-channel | 24 August 2019, 13:39:10 UTC |
8bb31a5 | Valentin Lorentz | 24 August 2019, 12:14:33 UTC | Strip statusmsg chars in core to determine the actual channel. Use msg.channel if relevant, otherwise strip them locally. | 24 August 2019, 12:52:59 UTC |
5b40b51 | Valentin Lorentz | 18 August 2019, 08:09:11 UTC | Limit statusmsg prefix stripping to PRIVMSG and NOTICE. | 18 August 2019, 08:09:11 UTC |
7a7cdb9 | Valentin Lorentz | 17 August 2019, 20:23:51 UTC | Add a 'channel' attribute to IrcMsg objects. It's nicer to use 'irc.channel' instead of 'irc.args[0]', and .channel provides the actual channel name (stripped of the statusmsg prefix), so it can be used by plugins when they want to use the actual channel name. | 17 August 2019, 20:23:51 UTC |
4f024cb | Valentin Lorentz | 15 August 2019, 10:22:43 UTC | Add network-specific config values. | 15 August 2019, 10:22:43 UTC |
d4cac02 | Valentin Lorentz | 04 August 2019, 19:28:45 UTC | Remove '+' from the default chantypes. It's more likely to be a statusmsg than chantype. | 04 August 2019, 19:52:40 UTC |
696254f | Valentin Lorentz | 04 August 2019, 16:11:28 UTC | Use irc.isChannel instead of ircutils.isChannel when possible. It's aware of the network's 'chantypes'. | 04 August 2019, 19:52:40 UTC |
bf7db13 | Valentin Lorentz | 31 July 2019, 21:00:55 UTC | Disallow mutating commands in Aka/Alias/Scheduler by default. It's too easy to abuse these commands when owners don't know they have to set the appropriate anticapabilities; so let's set the anticapabilities by default. | 31 July 2019, 21:00:55 UTC |
dba0ae3 | Valentin Lorentz | 22 July 2019, 19:39:41 UTC | Google: update scraping regexp | 22 July 2019, 19:39:41 UTC |
540b827 | Valentin Lorentz | 28 May 2019, 17:37:47 UTC | Google: Update for Google's new HTML layout. Closes GH-1365 | 28 May 2019, 17:37:52 UTC |
76699ec | Valentin Lorentz | 08 May 2019, 19:19:53 UTC | Add support for 'message-tags' capability, to receive TAGMSGs. | 08 May 2019, 19:19:53 UTC |
f0e7567 | James Lu | 20 March 2019, 04:35:03 UTC | PluginDownloader: update my repo name | 20 March 2019, 04:35:03 UTC |
6b213f0 | Valentin Lorentz | 06 March 2019, 14:29:09 UTC | Later: Add option senderHostname. | 06 March 2019, 14:29:09 UTC |
71dbd39 | Valentin Lorentz | 22 February 2019, 23:10:10 UTC | Revert changes to the structure of sdist packages. c87aacb690c9b9b24487c64e28a1cfa51605b572 b882d1cc00924e2cd7b9cb6769e7c637a7fdd1f2 b1db15c0562ff9f719570842358b7e6d2605a209 | 22 February 2019, 23:12:06 UTC |
e7b076a | jesopo | 22 February 2019, 18:06:08 UTC | `startwith` -> `startswith` | 22 February 2019, 19:31:07 UTC |
61d9596 | jesopo | 22 February 2019, 17:00:46 UTC | Support `[ipv6]:port` format | 22 February 2019, 19:31:07 UTC |
c87aacb | Valentin Lorentz | 21 February 2019, 21:43:09 UTC | Fix prefix commit. | 21 February 2019, 21:43:09 UTC |
b882d1c | Valentin Lorentz | 21 February 2019, 21:34:31 UTC | Fix PyPI packages. It was broken by b1db15c0562ff9f719570842358b7e6d2605a209. | 21 February 2019, 21:34:31 UTC |
61f03ff | Gordon Shumway | 14 February 2019, 19:23:11 UTC | Add oddluck's repo | 14 February 2019, 19:55:10 UTC |
6d938e0 | Valentin Lorentz | 07 February 2019, 21:10:24 UTC | Fix test for pypy 3. | 07 February 2019, 21:10:24 UTC |
233deee | Valentin Lorentz | 07 February 2019, 20:35:39 UTC | Fix previous commit for py2 and pypy. | 07 February 2019, 20:35:39 UTC |
969b9ed | Valentin Lorentz | 07 February 2019, 20:00:56 UTC | Make utils.python.collect_extra_debug_data support objects with __slots__. | 07 February 2019, 20:00:56 UTC |
0f82f89 | Valentin Lorentz | 01 February 2019, 20:02:57 UTC | Web: Fix encoding issue on Python 2. Closes GH-1359. | 01 February 2019, 20:02:57 UTC |
624553c | Valentin Lorentz | 27 January 2019, 08:10:06 UTC | irclib: Don't return the same nick twice when duplicates in supybot.nick.alternates + supybot.nick. It migt crash on: 'assert newNick != self.nick' | 27 January 2019, 08:10:06 UTC |
d20e418 | cottongin | 15 January 2019, 20:13:24 UTC | adds supybot-reset-password script | 15 January 2019, 20:45:26 UTC |
a6839dd | cottongin | 08 January 2019, 21:59:34 UTC | Create supybot-reset-password Adds ability to reset passwords for bot users from the shell | 08 January 2019, 22:04:01 UTC |
b051537 | Valentin Lorentz | 06 January 2019, 17:08:15 UTC | Add support for Python 3.8/nightly. | 06 January 2019, 17:08:15 UTC |
7adc958 | Valentin Lorentz | 06 January 2019, 17:06:44 UTC | Fix SyntaxWarnings on Python 3.8 | 06 January 2019, 17:06:44 UTC |
f7d0042 | Valentin Lorentz | 06 January 2019, 16:19:42 UTC | travis: Mix Trusty and Xenial depending on Python version. | 06 January 2019, 16:19:42 UTC |
8f503f8 | Valentin Lorentz | 06 January 2019, 16:09:18 UTC | temporarily rollback travis config. | 06 January 2019, 16:09:18 UTC |
a03a897 | Valentin Lorentz | 06 January 2019, 15:48:04 UTC | Fix bugs in wrapping IRC messages. | 06 January 2019, 15:48:11 UTC |
922012a | James Lu | 06 January 2019, 09:56:24 UTC | .travis.yml: use dist: xenial for Python 3.7+ to be installable | 06 January 2019, 09:56:41 UTC |
93b0476 | Valentin Lorentz | 05 January 2019, 22:47:56 UTC | Fix text wrapping when colors cross message boundaries. | 05 January 2019, 22:47:56 UTC |
b2f2b01 | Valentin Lorentz | 02 January 2019, 13:49:08 UTC | MANIFEST.in: add .travis.yml and requirements.txt. | 02 January 2019, 13:49:08 UTC |
ad04b5d | Valentin Lorentz | 02 January 2019, 13:47:59 UTC | .travis.yml: python 3.7 is was released. | 02 January 2019, 13:47:59 UTC |
05c86fc | Valentin Lorentz | 02 January 2019, 13:41:08 UTC | Add MANIFEST.in, to include license and makefile in the sdist. | 02 January 2019, 13:41:08 UTC |
e2b334a | Valentin Lorentz | 02 January 2019, 13:32:22 UTC | Fix broken links in CONTRIBUTING.md. | 02 January 2019, 13:32:22 UTC |
b1db15c | Valentin Lorentz | 02 January 2019, 13:29:32 UTC | Add a symlink supybot pointing to src/ + move locales/ to src/ This looks like a more standard source tree, and allows for running tests without installing. | 02 January 2019, 13:29:32 UTC |
4693537 | Valentin Lorentz | 02 January 2019, 10:26:55 UTC | Clarify warning. | 02 January 2019, 10:26:55 UTC |
2ee0be3 | Valentin Lorentz | 02 January 2019, 09:55:36 UTC | setup: Add DeprecationWarning for Python 2. | 02 January 2019, 09:55:36 UTC |
fcf30a5 | Valentin Lorentz | 29 December 2018, 22:36:57 UTC | Fix FutureWarning related to nested sets. See https://bugs.python.org/issue30349 | 29 December 2018, 22:36:57 UTC |
2c7c83b | Valentin Lorentz | 19 December 2018, 08:38:07 UTC | Success: Declare __slots__ Required since 1ac7812d7a0c02dd440094ac5d8e035a4564a7a5. | 19 December 2018, 08:38:07 UTC |
0640059 | Valentin Lorentz | 15 December 2018, 21:15:12 UTC | Prevent commands.process from trying to increase heap size. Closes GH-1353. | 15 December 2018, 21:15:12 UTC |
c7716de | James Lu | 14 October 2018, 19:41:43 UTC | RSS: add a quick test for a malformed feed that has no entries (Only both of these combined gives new output so far.) | 14 October 2018, 19:42:15 UTC |
2fdc433 | James Lu | 14 October 2018, 19:38:10 UTC | RSS: show soft errors set by feedparser when no entries are found Hopefully this will ease debugging - e.g. a bad TLS certificate will now show "Error: Couldn't get RSS feed. Parser error: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:720)>" instead of only a generic message. | 14 October 2018, 19:41:22 UTC |
c1d3bad | Valentin Lorentz | 06 October 2018, 06:13:06 UTC | Raise error even if supybot.replies.(generic)noCapability is empty. | 06 October 2018, 06:13:11 UTC |
11dd504 | Valentin Lorentz | 06 October 2018, 06:11:31 UTC | Fix MITM warning. | 06 October 2018, 06:13:10 UTC |