jesopo
68539da7ab
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
2019-10-10 07:46:36 -07:00
James Lu
3c23faf1bd
RSS: add 'announce channels' command to list channels a feed is announced to
...
Closes #1322 .
2019-10-06 20:46:21 +02:00
Johannes Löthberg
ba6878375b
plugins/Config: Reply with success on setdefault
...
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2019-10-06 17:43:58 +02:00
James Lu
beb1000c7e
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.
2019-10-05 16:40:37 -07:00
Valentin Lorentz
8b2cbbc583
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.
2019-10-05 22:29:11 +02:00
Valentin Lorentz
702cfaaf97
RSS: Fix __repr__ formatter.
2019-10-05 15:57:28 +02:00
Valentin Lorentz
dcf55cf6de
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.
2019-10-05 15:57:01 +02:00
Valentin Lorentz
a4665803fa
News + RSS: Mock time.time() instead of using time.sleep() in tests.
...
Saves 40s over the ~5min test suite.
2019-10-05 12:22:30 +02:00
Valentin Lorentz
3c42ce0861
Only clear users db if the filename is set.
2019-09-28 10:33:54 +02:00
Valentin Lorentz
bcbaa979d5
Revert "Deduplicate (de)serialization code shared by UsersDictionary and ChannelsDictionary."
...
This reverts commit a4f8e3f64734f1cd3331cb380e00ba8fe8bdf65e.
2019-09-28 10:33:10 +02:00
Valentin Lorentz
5bfee2e72b
Fix typo in doc.
2019-09-26 23:00:01 +02:00
Valentin Lorentz
a4f8e3f647
Deduplicate (de)serialization code shared by UsersDictionary and ChannelsDictionary.
2019-09-26 22:48:05 +02:00
Valentin Lorentz
7d218ec8ce
Document unpreserve.Reader (expected format + method hooks).
2019-09-26 22:47:04 +02:00
Valentin Lorentz
84c1f1572d
Don't temporarily set msg.channel to invalid values.
...
This causes issue when multiple command threads deal with the same message.
2019-09-20 21:25:32 +02:00
jesopo
6c5072cfe0
only raise in commands.process() when a raise was wrapped ( #1370 )
2019-09-18 20:27:02 +02:00
Valentin Lorentz
219ac6d154
Include plugins setup.py in installed files / release tarballs.
2019-09-15 08:03:12 +02:00
Valentin Lorentz
853935743a
Include README.md in installed files / release tarballs.
2019-09-15 08:03:00 +02:00
Valentin Lorentz
40837dbda0
Don't mutate server list while iterating on it.
...
It causes hanging at bot/test stops.
2019-09-15 08:02:10 +02:00
Valentin Lorentz
656222e341
ChannelLogger: Fix filename escaping.
2019-09-14 14:35:43 +02:00
Valentin Lorentz
af6052997c
ChannelLogger: Fix test broken by previous merge.
2019-09-14 12:15:57 +02:00
Valentin Lorentz
573921c00f
Merge branch 'netconf-and-ircmsgs-channel' into testing
2019-09-14 12:10:47 +02:00
Valentin Lorentz
67c2bacd69
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.
2019-09-08 21:35:35 +02:00
Valentin Lorentz
de9cea89cf
ChannelLogger: Fix NameError on 'irc'.
2019-09-08 19:22:30 +02:00
Valentin Lorentz
f143e977d6
Interpret empty server tag values as missing tag values.
...
As required by https://ircv3.net/specs/extensions/message-tags
master-2019-09-08
2019-09-08 14:47:05 +02:00
Valentin Lorentz
88524beada
ChannelLogger + Karka + all DB plugins: Sanitize channel names when used in filenames.
2019-09-06 20:42:13 +02:00
Valentin Lorentz
b166f4ad5c
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.
2019-08-31 17:43:16 +02:00
Valentin Lorentz
0413304d53
Nickometer: Use non-euclidian division as was originally intended.
...
I accidentally broke it in 88c2c130cac98e478bc1966003f38e213e032e45,
thinking the operands were both integers.
2019-08-26 22:24:14 +02:00
Valentin Lorentz
b65d78518c
Services: Add support for network-specific password.
2019-08-25 14:08:11 +02:00
Valentin Lorentz
68de4f8ffd
Config: Prevent accidental leak of private values on public channels.
master-2019-08-25
2019-08-25 10:26:47 +02:00
Valentin Lorentz
c07086d7dc
Config: Add command '@config network'.
2019-08-25 10:25:14 +02:00
Valentin Lorentz
2f4644f7b3
Config: Prevent accidental leak of private values on public channels.
2019-08-25 10:24:57 +02:00
Valentin Lorentz
0b5bd625eb
Add test for simple registry value inheritance.
2019-08-25 00:07:29 +02:00
Valentin Lorentz
e878279e6a
py2.6 compat for cac3de71b1fe8b851ef75b30b52ab712cfa2f922.
2019-08-25 00:07:11 +02:00
Valentin Lorentz
7e1a1a23a9
Fix fallback of Group.__getattr__ on protected attributes.
2019-08-25 00:06:35 +02:00
Valentin Lorentz
cac3de71b1
Add test for escaping registry key names.
2019-08-24 23:37:47 +02:00
Valentin Lorentz
e9bf05bbab
Don't unregister subtree if only the child is unset.
...
Because now, grandchildren may have set values.
2019-08-24 23:37:23 +02:00
Valentin Lorentz
633eea0730
Config: Fix test failure when another test set this value before.
2019-08-24 23:35:46 +02:00
Valentin Lorentz
c1ae3f5c81
all plugins: Use msg.channel instead of msg.args[0] + give network name to self.registryValue.
2019-08-24 23:35:01 +02:00
Valentin Lorentz
9326331c60
Merge branch 'ircmsg-channel' into netconf-and-ircmsgs-channel
2019-08-24 15:39:17 +02:00
Valentin Lorentz
81968d9970
Merge branch 'network-config' into netconf-and-ircmsgs-channel
2019-08-24 15:39:10 +02:00
Valentin Lorentz
8bb31a54e7
Strip statusmsg chars in core to determine the actual channel.
...
Use msg.channel if relevant, otherwise strip them locally.
2019-08-24 14:52:59 +02:00
Valentin Lorentz
5b40b5136d
Limit statusmsg prefix stripping to PRIVMSG and NOTICE.
2019-08-18 10:09:11 +02:00
Valentin Lorentz
7a7cdb9f05
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.
2019-08-17 22:23:51 +02:00
Valentin Lorentz
4f024cb0b2
Add network-specific config values.
2019-08-15 12:22:43 +02:00
Valentin Lorentz
d4cac026d4
Remove '+' from the default chantypes.
...
It's more likely to be a statusmsg than chantype.
2019-08-04 21:52:40 +02:00
Valentin Lorentz
696254ff1b
Use irc.isChannel instead of ircutils.isChannel when possible.
...
It's aware of the network's 'chantypes'.
2019-08-04 21:52:40 +02:00
Valentin Lorentz
bf7db13f01
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.
2019-07-31 23:00:55 +02:00
Valentin Lorentz
dba0ae3771
Google: update scraping regexp
2019-07-22 21:39:41 +02:00
Valentin Lorentz
540b827213
Google: Update for Google's new HTML layout.
...
Closes GH-1365
master-2019-07-17
2019-05-28 19:37:52 +02:00
Valentin Lorentz
76699ec063
Add support for 'message-tags' capability, to receive TAGMSGs.
2019-05-08 21:19:53 +02:00