bdb80b1 | Valentin Lorentz | 15 July 2021, 20:19:03 UTC | Switch from Travis-CI to Github Actions Travis is dead now. Closes GH-1481. | 15 July 2021, 20:19:03 UTC |
0f10110 | Valentin Lorentz | 14 July 2021, 21:55:31 UTC | Socket: Fix cascading crash when Socket.run() crashes. When a driver's run() method crashes, supybot.drivers.run() marks it as dead and sets its 'irc' attribute to None. This would be fine for "normal" independent drivers (like Socket used to be), because this driver would never be called again. But now that we use select(), some other thread may hold a reference to this driver in a select() call frame, and call the dead driver's '_read()' method when there is data to be read from the socket. There is already a safeguard in '_read()' in the case the socket could be read from, but this safeguard was missing from _handleSocketError. This caused the "live" driver's select() to crash, which propagagated to its run(), which caused the driver to be marked as dead, etc. Eventually, all drivers could die, and we end up with the dreadful "Schedule is the only remaining driver, why do we continue to live?" in an infinite loop. | 14 July 2021, 21:55:31 UTC |
e19282a | Valentin Lorentz | 14 July 2021, 21:42:35 UTC | Actually parse weird hostmasks like RFC1459 recommends Thanks to @Noisytoot for pointing out the RFC actually specific them with this: <user> ::= <nonwhite> { <nonwhite> } | 14 July 2021, 21:43:11 UTC |
5baf87d | Valentin Lorentz | 14 July 2021, 21:25:11 UTC | ircutils: Improve robustness when faced with invalid hostmasks eg. @ in nicks, which happened on pissnet earlier today. | 14 July 2021, 21:25:11 UTC |
0af4af1 | Valentin Lorentz | 04 July 2021, 08:46:51 UTC | RSS: Fix random test failure Closes GH-1479 | 04 July 2021, 08:46:51 UTC |
64ae28c | James Lu | 03 July 2021, 23:42:13 UTC | Remove references to my old nick | 03 July 2021, 23:42:13 UTC |
b8aa5aa | Valentin Lorentz | 30 June 2021, 19:27:36 UTC | User: Make @register automatically add the account tag No need for '@nickauth nick add' right after registering anymore. | 30 June 2021, 19:28:17 UTC |
c23227c | Valentin Lorentz | 28 June 2021, 21:10:21 UTC | MessageParser: Show error when the action has a syntax error Instead of being silent | 28 June 2021, 21:10:36 UTC |
6b72672 | Valentin Lorentz | 23 June 2021, 09:37:37 UTC | Poll: Fix typo in documentation | 28 June 2021, 21:10:36 UTC |
1952dae | Mikaela Suomalainen | 25 June 2021, 22:43:26 UTC | src/conf.py: fix typo in supybot.reply.error.withNotice Co-authored-by: MetaNova <MetaNova@users.noreply.github.com> Co-authored-by: Val Lorentz <progval+github@progval.net> | 25 June 2021, 23:23:36 UTC |
a7216d2 | James Lu | 25 June 2021, 05:36:04 UTC | Remove Spanish translations as requested by the author | 25 June 2021, 05:36:04 UTC |
6490484 | Tim Gates | 20 June 2021, 23:07:50 UTC | Fix a few simple typos (#1476) Closes #1475 | 20 June 2021, 23:07:50 UTC |
65ab65c | Valentin Lorentz | 20 June 2021, 21:59:51 UTC | irclib: Fix crashes when ERROR is part of a batch. | 20 June 2021, 21:59:51 UTC |
a7c4c9b | Valentin Lorentz | 19 June 2021, 14:56:10 UTC | Poll: Document usage. | 19 June 2021, 14:56:17 UTC |
936d7eb | Valentin Lorentz | 19 June 2021, 14:48:40 UTC | Poll Disallow 0 as poll id. | 19 June 2021, 14:48:40 UTC |
d919e21 | Valentin Lorentz | 19 June 2021, 14:39:23 UTC | Poll: Initial commit with basic features. | 19 June 2021, 14:44:21 UTC |
3b25a94 | Valentin Lorentz | 19 June 2021, 14:44:15 UTC | Regenerate READMEs. | 19 June 2021, 14:44:21 UTC |
2293d1c | Valentin Lorentz | 15 June 2021, 18:34:50 UTC | Services: Update to the latest version of the draft/account-registration spec. | 15 June 2021, 18:35:55 UTC |
67a39a3 | Clark Boylan | 14 June 2021, 21:15:43 UTC | Fix joins to many channels (#1473) * Fix joins to many channels If you have enough channels that the 512 byte message limit on the JOIN message is hit then limnoria was losing the channel that put it over the limit and not including it in the next JOIN message. This resulted in losing one channel for every JOIN message that pushed us over 512 bytes. We fix this by generating the JOIN message immediately after resetting the channels list to ensure we include the channel that pushed us over the limit. Then the next time through our JOIN msg construction we'll add subsequent channels without forgetting the one that pushed us over. * Add test for channel join lists This adds a test for the issue that is fixed in the previous commit. We ensure that when JOINs are split over multiple messages we JOIN to all channels that were part of the input list and don't forget any of them. | 14 June 2021, 21:15:43 UTC |
4b82934 | Valentin Lorentz | 14 June 2021, 19:47:36 UTC | Services: Add @nickserv and @chanserv command, to message services directly This is because the recommended method ('owner ircquote nickserv register mypassword bot@example.com') does not work on charybdis, as Limnoria inserts a colon before the trailing argument and Charybdis' m_alias module does not parse commands using the IRC syntax, so it considers the leading colon to be part of the email address. The alternative would be to change the recommended command to: 'owner ircquote PRIVMSG nickserv :register mypassword bot@example.com' but it is prone to typos, so I think we should avoid it. | 14 June 2021, 19:47:36 UTC |
c8053da | Valentin Lorentz | 12 June 2021, 19:03:15 UTC | Socket: Silence TLS warning for Tor hidden services. They are already end-to-end encrypted and don't need TLS. | 12 June 2021, 19:03:15 UTC |
69c948b | Valentin Lorentz | 08 June 2021, 19:20:52 UTC | irclib: fix _getTarget when to= is given and self.private=True | 08 June 2021, 19:56:42 UTC |
8a52902 | Valentin Lorentz | 08 June 2021, 17:41:25 UTC | irclib: Fix overhead computation by using the real target computation algo | 08 June 2021, 19:56:08 UTC |
225c249 | Valentin Lorentz | 05 June 2021, 13:50:00 UTC | irclib: Fix crash on SASL authentication failure | 05 June 2021, 13:50:05 UTC |
ac4083e | Valentin Lorentz | 05 June 2021, 08:29:21 UTC | README: Synchronize description with the website. | 05 June 2021, 08:29:21 UTC |
aaca81c | Valentin Lorentz | 02 June 2021, 14:51:09 UTC | drivers: Fix log message when the STS policy uses the same port as configured. | 02 June 2021, 14:51:09 UTC |
a475814 | Valentin Lorentz | 01 June 2021, 10:16:34 UTC | Factoids: Fix NameErrors in HTTP callback. | 01 June 2021, 10:16:34 UTC |
4caf35f | Valentin Lorentz | 01 June 2021, 08:42:53 UTC | Dunno: Document command substitution | 01 June 2021, 08:43:05 UTC |
a0b1334 | Mattia Rizzolo | 01 June 2021, 05:32:31 UTC | increase the timeout for Fediverse's tests At least in Debian CI they routinely timeout when they run in the busiest server. Signed-off-by: Mattia Rizzolo <mattia@mapreri.org> | 01 June 2021, 06:58:56 UTC |
43aada5 | Valentin Lorentz | 30 May 2021, 17:06:19 UTC | Store ignored hostmasks in Expiring HostmaskSet to prevent their pattern cache from expiring too soon See e0fdcb67c09b26a79bbb3cbb2244d18149c5b0c2 for the rationale (tl;dr: prevents triggering a degenerate case of the LRU cache when there are over 1000 ignore masks) | 30 May 2021, 17:35:05 UTC |
698dfc2 | Valentin Lorentz | 29 May 2021, 09:44:19 UTC | httpserver: Hide well-known callback from the index Closes GH-1460. | 29 May 2021, 09:44:22 UTC |
2e2c243 | Valentin Lorentz | 28 May 2021, 17:37:37 UTC | RSS: Remove flaky test | 28 May 2021, 17:37:37 UTC |
b8852eb | Valentin Lorentz | 28 May 2021, 17:15:56 UTC | RSS: Fix nondeterministic test failure | 28 May 2021, 17:15:56 UTC |
758f9be | Valentin Lorentz | 28 May 2021, 16:48:33 UTC | RSS: Catch errors from update_feed(), just in case feedparser should always catch the error, but someone reported it doesn't catch this error on TLS cert issues: ``` Traceback (most recent call last): File "/usr/lib/python3.8/threading.py", line 932, in _bootstrap_inner self.run() File "/usr/lib/python3.8/threading.py", line 870, in run self._target(*self._args, **self._kwargs) File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/supybot/plugins/RSS/plugin.py", line 86, in newf f(*args, **kwargs) File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/supybot/plugins/RSS/plugin.py", line 351, in update_feeds self.update_feed_if_needed(feed) File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/supybot/plugins/RSS/plugin.py", line 337, in update_feed_if_needed self.update_feed(feed) File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/supybot/plugins/RSS/plugin.py", line 311, in update_feed d = feedparser.parse(feed.url, etag=feed.etag, File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/feedparser/api.py", line 214, in parse data = _open_resource(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/feedparser/api.py", line 114, in _open_resource return http.get(url_file_stream_or_string, etag, modified, agent, referrer, handlers, request_headers, result) File "/home/falso/virtualenv/limnoria/lib/python3.8/site-packages/feedparser/http.py", line 158, in get f = opener.open(request) File "/usr/lib/python3.8/urllib/request.py", line 525, in open response = self._open(req, data) File "/usr/lib/python3.8/urllib/request.py", line 542, in _open result = self._call_chain(self.handle_open, protocol, protocol + File "/usr/lib/python3.8/urllib/request.py", line 502, in _call_chain result = func(*args) File "/usr/lib/python3.8/urllib/request.py", line 1393, in https_open return self.do_open(http.client.HTTPSConnection, req, File "/usr/lib/python3.8/urllib/request.py", line 1354, in do_open r = h.getresponse() File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse response.begin() File "/usr/lib/python3.8/http/client.py", line 307, in begin version, status, reason = self._read_status() File "/usr/lib/python3.8/http/client.py", line 268, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "/usr/lib/python3.8/socket.py", line 669, in readinto return self._sock.recv_into(b) File "/usr/lib/python3.8/ssl.py", line 1241, in recv_into return self.read(nbytes, buffer) File "/usr/lib/python3.8/ssl.py", line 1099, in read return self._sslobj.read(len, buffer) socket.timeout: The read operation timed out ``` So let's catch the error just in case, so it doesn't block all other feeds. | 28 May 2021, 16:48:35 UTC |
3415cd0 | Valentin Lorentz | 28 May 2021, 16:38:06 UTC | RSS: Add test checking exception from a feed doesn't affect other feeds. | 28 May 2021, 16:38:06 UTC |
7c68b2c | Valentin Lorentz | 28 May 2021, 15:56:59 UTC | RSS: Fix crash in @rss list | 28 May 2021, 15:56:59 UTC |
86b1741 | Valentin Lorentz | 27 May 2021, 20:36:03 UTC | Fix nondeterministic test on Python < 3.7. | 27 May 2021, 20:36:27 UTC |
e0fdcb6 | Valentin Lorentz | 27 May 2021, 20:13:44 UTC | Store IrcUser hostmasks in HostmaskSet to prevent their pattern cache from expiring When the number of hostmasks exceeds 1000 (the hardcoded size of _patternCache and _hostmaskPatternEqualCache), this triggers a pathological case in the LRU caches, that causes all calls to be a cache miss. This means that on every IRC message received, ircdb.checkIgnored triggers a recompilation of *all* user hostmasks, which is very expensive computationally. This commit stores them in their own cache to prevent them from expiring. | 27 May 2021, 20:15:52 UTC |
a5cd870 | Valentin Lorentz | 27 May 2021, 19:36:43 UTC | irclib: Refactor hostmaskPatternEqual to expose compileHostmaskPattern. This clarifies the code a bit. And I want to store compiled patterns in ircdb.User in a future commit, so they can outlive the LRU cache. | 27 May 2021, 19:36:43 UTC |
711db72 | Valentin Lorentz | 26 May 2021, 23:08:33 UTC | Socket: Fix crash non-TLS connections when using a SOCKS proxy | 26 May 2021, 23:08:33 UTC |
3bedc86 | Valentin Lorentz | 26 May 2021, 22:08:02 UTC | Socket: Disable resolution when using a SOCKS proxy 1. Avoids leaking DNS queries 2. necessary for onion services | 26 May 2021, 22:08:02 UTC |
cca1156 | Valentin Lorentz | 26 May 2021, 21:43:23 UTC | drivers: Log SOCKS proxy on connecting | 26 May 2021, 21:43:23 UTC |
c3f39fc | Valentin Lorentz | 26 May 2021, 15:50:11 UTC | callbacks, Misc, Relay: Fix when the message prefix is just a nick <user> and <host> are optional in https://datatracker.ietf.org/doc/html/rfc1459#section-2.3.1 Closes GH-1451. | 26 May 2021, 15:50:29 UTC |
e59e0f6 | Valentin Lorentz | 25 May 2021, 22:30:27 UTC | irclib: Fix target computation It mistakenly used the bot's nick as target when the message is in private, so 'more' after a private message always answered the user did not send a command before (because said command was attributed to the bot) | 25 May 2021, 22:30:27 UTC |
710d16f | Valentin Lorentz | 25 May 2021, 16:59:02 UTC | Admin: Fix python 3.4 support. | 25 May 2021, 17:24:21 UTC |
fa3707e | Mikaela Suomalainen | 25 May 2021, 12:11:01 UTC | src/conf.py: add :port to explanation of networks.X.socksproxy | 25 May 2021, 16:58:35 UTC |
fd97f78 | Valentin Lorentz | 24 May 2021, 22:13:00 UTC | Admin: Fix @acmd | 25 May 2021, 07:22:24 UTC |
1455a83 | Valentin Lorentz | 24 May 2021, 22:12:36 UTC | Merge branch 'nopassword' into testing | 24 May 2021, 22:12:36 UTC |
d913032 | Valentin Lorentz | 24 May 2021, 15:21:43 UTC | ircdb: Fix 'IrcUser.nicks' on non-lowercase network names This dict was filled with IrcString keys, which is hashed as lowercase, so when queried with a non-lowercase string, the key would not be found, and lead to very confusing errors. | 24 May 2021, 15:21:57 UTC |
742f4f8 | Valentin Lorentz | 23 May 2021, 13:25:33 UTC | Add the option to disable password login. Actually resolves GH-1140, finally. | 23 May 2021, 13:33:38 UTC |
04facad | Valentin Lorentz | 22 May 2021, 16:51:54 UTC | Move official channel from Freenode to Libera.Chat | 22 May 2021, 16:51:54 UTC |
14e637f | Valentin Lorentz | 22 May 2021, 16:51:35 UTC | SedRegex: Fix NameError in config setup | 22 May 2021, 16:51:35 UTC |
fb16e8b | Valentin Lorentz | 22 May 2021, 16:51:22 UTC | Network: Fix IPv6 parsing | 22 May 2021, 16:51:22 UTC |
7af8918 | Valentin Lorentz | 17 May 2021, 16:24:33 UTC | Channel: Fix Nameerror in @alert. Closes GH-1452 | 17 May 2021, 16:24:37 UTC |
8559ea9 | Valentin Lorentz | 17 May 2021, 16:24:21 UTC | httpserver: Fix pointless tracebacks because doGet does not accept the 'form' argument | 17 May 2021, 16:24:21 UTC |
db99332 | Valentin Lorentz | 07 May 2021, 18:10:57 UTC | callback: Fix AssertionError when action is given with implicit noLengthCheck | 07 May 2021, 18:10:57 UTC |
e3fce56 | Valentin Lorentz | 03 May 2021, 18:02:33 UTC | Relay: Don't relay QUIT/NICK if the sender isn't in the relayed channel. | 03 May 2021, 18:02:33 UTC |
ca369af | Valentin Lorentz | 02 May 2021, 16:34:49 UTC | Relay: Send the right network in the display name (was dest instead of source) | 02 May 2021, 16:34:49 UTC |
fc2e349 | Valentin Lorentz | 02 May 2021, 15:14:20 UTC | Relay: Implement +draft/display-name specification. https://github.com/ircv3/ircv3-specifications/pull/452 | 02 May 2021, 15:14:20 UTC |
97a7aa3 | Valentin Lorentz | 01 May 2021, 12:29:09 UTC | RSS: Make @remove completely clean up feeds | 01 May 2021, 12:29:09 UTC |
556bd78 | Valentin Lorentz | 01 May 2021, 11:31:34 UTC | RSS: Default to setting announces per channel+network, instead of just per channel The default behavior was to announce feeds on all channels with the same name, which is rarely what was expected. Instead, this limits it to the current network. | 01 May 2021, 11:31:34 UTC |
435f8de | Valentin Lorentz | 01 May 2021, 11:27:56 UTC | RSS: Fix bug in @remove that prevented it from fully deleting aliased feeds. | 01 May 2021, 11:27:56 UTC |
e96633c | Valentin Lorentz | 28 April 2021, 18:04:45 UTC | RSS: Forbid dots in feed names. They confuse the registry | 28 April 2021, 18:04:58 UTC |
3d21c7c | David Macek | 24 April 2021, 18:33:53 UTC | Services: Keep per-network state separate Until now, only `waitingJoins` was stored separately per network, while `channels`, `sentGhost` and `identified` had one common value per plugin instance. Instead of making everything a dictionary indexed by network name like `waitingJoins`, let's bundle all the state together in a class and store *its* instances in such a dictionary. This fixes at least one race condition, for which a test case was added. Even with `noJoinsUntilIdentified` set, the bot would let joins through as long as *any* one network has already finished identifying. | 27 April 2021, 17:52:58 UTC |
177c202 | Valentin Lorentz | 24 April 2021, 19:21:57 UTC | irclib: Fix crash caused by 4d2efc65ef26f4c49d893a520c36830e600dad56. dynamicScope inspects the stack looking for this variable, so we need to keep it. | 24 April 2021, 19:21:57 UTC |
8a4e8c2 | David Macek | 24 April 2021, 18:33:40 UTC | Services: Reset configured passwords in tests I didn't observe any error with the current set of tests but adding another one that used "services password" caused oen of these tests to fail. Given that tests shouldn't leave traces in global state, let's reset the configured passwords in finally blocks. | 24 April 2021, 19:13:53 UTC |
151fcf8 | David Macek | 24 April 2021, 17:48:05 UTC | Don't throttle when delay is exactly equal If throttle time is set to 0.0 (e.g. in tests) and the reported time since last dequeue is also 0.0 (maybe because the timer resolution is too low), takeMsg would throttle. This would make tests fail because they expect messages immediately. This issue was observed on Windows 10 20H2 with both a mingw-w64 Python v3.8.9 from MSYS2 and several version of official Python v3.x. Confirmed at least as far back as aa98d987a7f4db6e57b5b8489ca714d98c6b8452. Since it's a non-integer comparison, the change shouldn't have any observable effect in normal operation. | 24 April 2021, 19:04:42 UTC |
dce969e | David Macek | 24 April 2021, 17:38:29 UTC | tests: Pass setUp arguments ChannelPluginTestCase#setUp accepts the same parameters as its super-method PluginTestCase#setUp, but it didn't pass the arguments down the line. Now it does. | 24 April 2021, 19:03:48 UTC |
abac830 | David Macek | 24 April 2021, 17:35:11 UTC | Admin: Merge tests with the same name into one | 24 April 2021, 19:03:13 UTC |
4d2efc6 | David Macek | 24 April 2021, 17:31:24 UTC | Remove some unused names | 24 April 2021, 19:01:40 UTC |
e740953 | David Macek | 24 April 2021, 17:30:00 UTC | Fix some typos | 24 April 2021, 19:01:07 UTC |
fec6959 | Valentin Lorentz | 21 April 2021, 22:29:15 UTC | all plugins: regenerate READMEs | 21 April 2021, 22:29:15 UTC |
e16c10f | Valentin Lorentz | 21 April 2021, 22:26:30 UTC | supybot-plugin-doc: Recursively document *all* groups Not just groups that are values themselves. | 21 April 2021, 22:28:40 UTC |
c7d85e7 | Valentin Lorentz | 18 April 2021, 14:25:37 UTC | httpserver, Fediverse: show an error message on 404 | 18 April 2021, 14:25:37 UTC |
a209b73 | Valentin Lorentz | 18 April 2021, 13:36:18 UTC | Fediverse: Remove duplicate documentation | 18 April 2021, 13:36:18 UTC |
82fbfcf | Valentin Lorentz | 17 April 2021, 18:09:33 UTC | all plugins: regenerate READMEs | 17 April 2021, 18:09:33 UTC |
b0cdf47 | Valentin Lorentz | 17 April 2021, 18:08:33 UTC | Fediverse: Move Secure Fetch documentation to the 'Usage' section | 17 April 2021, 18:08:33 UTC |
3c1c4a6 | Valentin Lorentz | 16 April 2021, 21:38:44 UTC | callbacks: Make snarfers' output paginatable with @more by moving the 'smart' reply() method from NestedCommandsIrcProxy to ReplyIrcProxy. There is no reason only commands should have a paginated output and not snarfers defined in PluginRegexp. | 16 April 2021, 21:38:44 UTC |
24ca278 | Valentin Lorentz | 16 April 2021, 20:48:40 UTC | Reorganize the kwargs of _sendReply I think it's more readable and modular this way | 16 April 2021, 21:11:02 UTC |
ab3dbcf | Valentin Lorentz | 16 April 2021, 20:43:50 UTC | Fix computation of message overhead in multiline batches. | 16 April 2021, 21:09:01 UTC |
6b1460e | Valentin Lorentz | 11 April 2021, 14:35:39 UTC | Log loading times for each plugin It makes it easier to debug long startup times. | 11 April 2021, 14:35:42 UTC |
fd873fa | Valentin Lorentz | 11 April 2021, 11:24:10 UTC | httpserver: Don't serve_forever when documenting 1. it binds the port, which is useless while documenting 2. in some circumstances, it prevents supybot-plugin-doc from exiting (because the server threads are still running) | 11 April 2021, 11:24:10 UTC |
9869136 | Valentin Lorentz | 11 April 2021, 08:37:36 UTC | src/setup: Add support for ReST readmes by default | 11 April 2021, 08:38:05 UTC |
cd02444 | Valentin Lorentz | 05 April 2021, 20:56:40 UTC | supybot-plugin-doc: Add labels for all command and config variables So they can be referenced from elsewhere in the doc. | 05 April 2021, 22:33:07 UTC |
4fc6580 | Valentin Lorentz | 05 April 2021, 19:32:43 UTC | callbacks: Document replySuccess() and error() | 05 April 2021, 20:47:44 UTC |
f11684a | Valentin Lorentz | 05 April 2021, 18:34:49 UTC | callbacks: Add/improve method docstrings | 05 April 2021, 18:34:49 UTC |
66ba7cb | Valentin Lorentz | 05 April 2021, 15:32:26 UTC | Plugin: Only show the first paragraph; as the whole help can be very long. | 05 April 2021, 15:42:40 UTC |
833af36 | Valentin Lorentz | 05 April 2021, 15:29:49 UTC | all plugins: auto-generate READMEs Starting with this commit, there should be no "original" text in READMEs. Instead, the entire text should be in docstrings, and READMEs should be automatically generated from these docstrings. Motivation: * The same help is available both via IRC and in the README (although the README can be more detailed, as only the first paragraph will be shown on IRC) * This will allow auto-generating plugin help on docs.limnoria.net using the same content as the README, as it's sourced from the docstrings Additionally, this converts all READMEs from Markdown to ReST, because the documentation already uses ReST, and other docstrings in the codebase are in ReST for this reason. | 05 April 2021, 15:42:31 UTC |
76b6c56 | Valentin Lorentz | 05 April 2021, 15:33:37 UTC | supybot-plugin-doc: Fix various edge case issues in the ReST output | 05 April 2021, 15:40:57 UTC |
113fc74 | Valentin Lorentz | 05 April 2021, 13:54:13 UTC | Relay: Mention other plugins in the README. | 05 April 2021, 13:54:13 UTC |
21657f3 | Valentin Lorentz | 05 April 2021, 12:50:30 UTC | Aka, Alias: Remove mentions of Alias in the Aka documentation, and explain Alias is deprecated | 05 April 2021, 13:00:02 UTC |
49eef1c | Valentin Lorentz | 05 April 2021, 12:39:41 UTC | Misc: Make @help mention '@plugin help' when relevant. | 05 April 2021, 12:39:41 UTC |
9323302 | Valentin Lorentz | 05 April 2021, 11:41:29 UTC | Socket: Recover from socks.GeneralProxyError exceptions. | 05 April 2021, 11:41:29 UTC |
16fc2ae | Valentin Lorentz | 05 April 2021, 10:27:31 UTC | supybot-plugin-doc: Add option --output-filename It can be used like this to generate README.rst files: ``` supybot-plugin-doc --plugins-dir plugins/ --format rst --output-filename='plugins/$name/README.$format' ``` | 05 April 2021, 10:27:33 UTC |
524e409 | Valentin Lorentz | 05 April 2021, 10:25:44 UTC | supybot-plugin-doc: Fix bugs with --plugins-dir | 05 April 2021, 10:26:47 UTC |
6b9de3d | Valentin Lorentz | 05 April 2021, 10:25:17 UTC | supybot-plugin-doc: Add explicit target for each plugin reference It can be useful to reference it from elsewhere in the doc | 05 April 2021, 10:26:47 UTC |
5b98503 | Valentin Lorentz | 05 April 2021, 09:32:09 UTC | supybot-plugin-doc: Add config option for the page title | 05 April 2021, 09:32:09 UTC |
a7fb46f | Valentin Lorentz | 05 April 2021, 09:31:27 UTC | supybot-plugin-doc: Update value of supybot.databases Required for Aka, etc. | 05 April 2021, 09:31:43 UTC |
24f20dc | Valentin Lorentz | 05 April 2021, 09:30:59 UTC | Factoids, Services: Fix crash when imported by supybot-plugin-doc | 05 April 2021, 09:30:59 UTC |
c28d517 | Valentin Lorentz | 02 April 2021, 18:53:38 UTC | irclib: Copy messages before altering them at all Fixes a bug triggered by Relay when it relays to a network that supports labeled-response and an other that doesn't | 02 April 2021, 18:54:21 UTC |