James Lu
1646ca25c2
SedRegex: skip testBoldReplacement on Python 2
...
I don't know why it breaks here and I don't really care.
From: b9481184cb
2020-01-01 21:55:58 -08:00
James Lu
dcadb7e73b
SedRegex: remove a duplicate test
...
From: 5e77c65a5f
2020-01-01 21:55:58 -08:00
James Lu
01e0c12641
SedRegex: use self.__class__ instead of __class__ in tests (Python 2 compat)
...
From: b53e6e40a0
2020-01-01 21:55:58 -08:00
James Lu
b01c50cd4d
SedRegex: add a bunch of test cases
...
Closes #53 .
From: a58785fa4a
2020-01-01 21:55:58 -08:00
James Lu
f40d8c530f
SedRegex: bump copyright year to 2017
...
From: 0ef8138ab3
2020-01-01 21:55:58 -08:00
James Lu
90ec8a6976
SedRegex: fix some replacement queries not working
...
From: 926454b01d
2020-01-01 21:55:58 -08:00
James Lu
6445e90ec7
SedRegex: also catch errors in the regexp_wrapper() step
...
E.g. sre_constants.error: invalid group reference
From: e137d29eb9
2020-01-01 21:55:58 -08:00
James Lu
5370296bbf
SedRegex: log the exact error name instead of "SedRegex error"
...
From: 406d7b1790
2020-01-01 21:55:58 -08:00
James Lu
dee2b6bdb3
SedRegex: require ending delimiter to prevent overzealous matching of replacement text
...
Closes #59 .
From: 414a4a4a16
2020-01-01 21:55:58 -08:00
James Lu
656d2172db
SedRegex: work around "nothing to replace" errors on < Python 2.7.6 again
...
From: 244a8c6bee
2020-01-01 21:55:58 -08:00
James Lu
889c6a1615
SedRegex: fix flag matching
...
From: db125ee5d1
2020-01-01 21:55:58 -08:00
James Lu
c1c423cc0d
SedRegex: add configuration / usage instructions
...
From: 9d0dce6ef5
2020-01-01 21:55:58 -08:00
James Lu
24ae250ac4
SedRegex: implement 's' regex flag to only match the caller's message
...
From: 87c79db3d0
2020-01-01 21:55:58 -08:00
James Lu
bd0b1158fc
SedRegex: allow free form flags and return them in _unpack_sed()
...
From: 423da9f996
2020-01-01 21:55:58 -08:00
James Lu
c1e2e2b8a6
SedRegex: sanitize against \n\r\t in output
...
From: 48445e256a
2020-01-01 21:55:58 -08:00
James Lu
00f26b0a73
SedRegex: only operate on messages from the current network
...
Reported by @jztech101.
The 'receivedBy' tag is now checked to match the current IRC object, which Works around ProgVal/Limnoria#1211 .
From: 84b94d589c
2020-01-01 21:55:58 -08:00
James Lu
fa13c68ebc
SedRegex: work around "nothing to repeat" errors on Python < 2.7.6
...
Source: https://stackoverflow.com/questions/3675144/regex-error-nothing-to-repeat and https://bugs.python.org/issue18647
From: 335fc6e3da
2020-01-01 21:55:58 -08:00
James Lu
1499141f09
Import SedRegex plugin as of 2a556a1b84
...
Co-authored-by: Michael Daniel Telatynski <postmaster@webdevguru.co.uk>
Co-authored-by: nyuszika7h <nyuszika7h@openmailbox.org>
2020-01-01 21:55:57 -08:00
Valentin Lorentz
12b6c9d60e
Config: Sort output of @list.
2019-12-24 02:43:31 +01:00
Valentin Lorentz
8491d0b944
Web: Lower log level when title could not be found.
2019-12-15 18:43:51 +01:00
Valentin Lorentz
dc2068deca
Web: Remove leading space if the prefix is empty.
2019-12-15 17:27:47 +01:00
Richard
143cd9d506
Services: Fix typo in doInvite() ( #1394 )
2019-12-13 11:01:48 -08:00
Valentin Lorentz
83114e5fbd
src/callbacks.py: use network-specific values.
...
Closes GH-1393
2019-12-05 21:51:25 +01:00
Mattia Rizzolo
981a3b245a
QuoteGrabs: fix SyntaxWarning ( #1391 )
...
SyntaxWarning: "is" with a literal. Did you mean "=="?
Signed-off-by: Mattia Rizzolo <mattia@mapreri.org>
2019-11-27 07:59:11 -08:00
Valentin Lorentz
1a1707420b
Web: Add early returns on exception when snarfing titles.
...
Closes GH-1390.
2019-11-22 18:17:53 +01:00
James Lu
9291fbd4a0
All plugins: set Limnoria contributors as maintainer
2019-11-16 11:41:13 -08:00
James Lu
1858eaf59e
Plugin: support showing __maintainer__ field in the 'author' command
2019-11-16 11:41:13 -08:00
James Lu
a4701b258c
Plugin: accept author name in 'contributors' command
2019-11-16 11:41:13 -08:00
Valentin Lorentz
bace9cb6c0
MoobotFactoids: Fix support of commands sent in private.
...
Regression from c1ae3f5c81
.
2019-11-15 21:24:31 +01:00
Valentin Lorentz
bc663b164c
Nicer error message in getChannel/makeChannelFilename when channel is None.
2019-11-15 21:14:46 +01:00
Valentin Lorentz
f85287771d
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.
2019-11-11 19:42:34 +01:00
Valentin Lorentz
8001de6960
Scheduler: Use assertRegexp instead of assertNotRegexp in tests.
...
It avoids self negatives.
2019-11-11 18:06:59 +01:00
Valentin Lorentz
5718eafc07
Scheduler: Use default timeout for assertResponse.
...
Needed for slow/busy computers like Travis, apparently.
2019-11-11 15:29:20 +01:00
Valentin Lorentz
ad6671966c
Scheduler: Use mocking to make tests faster.
...
40s -> less than 10s.
Also some timeout tweaks that might fix GH-1385.
2019-11-11 15:06:06 +01:00
Valentin Lorentz
1a69a7b892
Math: Fix test on Pypy.
2019-11-11 12:38:27 +01:00
Valentin Lorentz
78a50c81bd
Math: Display a nicer error in case of MemoryError.
2019-11-11 12:12:10 +01:00
Valentin Lorentz
3848ae78de
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.
2019-11-09 15:49:31 +01:00
Valentin Lorentz
813f688858
Config: Add : prefix to network-specific values listed by 'config list'.
2019-11-02 18:50:20 +01:00
Valentin Lorentz
322923c957
Config: make 'config list' exclude pseudo-children of network-specific variables.
2019-11-02 18:49:10 +01:00
Valentin Lorentz
9e58b2c936
Owner: Fix @upkeep reply on recent Pypy versions.
...
Because their gc.collect() function returns None.
2019-11-01 22:21:51 +01:00
Rodrigo Nascimento Hernandez
7466058c8f
Web: Catch more errors in getTitle.
2019-11-01 09:06:45 +01:00
Valentin Lorentz
3648751911
MoobotFactoids: Don't rely on unspecified order of sqlite3 results. Closes GH-1383.
2019-10-28 18:17:13 +01:00
Valentin Lorentz
cf954cf500
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.
2019-10-28 18:17:13 +01:00
James Lu
9eecedee93
Fill in author info for plugins missing it
2019-10-27 12:59:37 -07:00
James Lu
d3a2964705
Plugin: add missing substitution, check for supybot.authors.unknown explicitly
2019-10-19 12:02:14 -07:00
James Lu
35a64eca38
Plugin: update tests
...
I'm taking the liberty of adding myself to supybot.authors here.
2019-10-19 11:34:24 -07:00
James Lu
e3d89875ae
Plugin: update plugin description in __init__.py
...
Also remove some outdated comments.
2019-10-19 11:27:39 -07:00
James Lu
75a96ffa17
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.
2019-10-19 11:17:35 -07:00
James Lu
672652d780
Plugin: refactor the first half of 'contributors [nick]'
2019-10-19 11:10:42 -07:00
James Lu
65e3e18fe2
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.
2019-10-19 10:47:33 -07:00
James Lu
18f9a342b3
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.
2019-10-19 10:20:35 -07:00
Johannes Löthberg
27e7d6a9ac
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>
2019-10-10 17:27:34 +02:00
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
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
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
de9cea89cf
ChannelLogger: Fix NameError on 'irc'.
2019-09-08 19:22:30 +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 88c2c130ca
,
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.
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
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
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
4f024cb0b2
Add network-specific config values.
2019-08-15 12:22:43 +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
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
2019-05-28 19:37:52 +02:00
James Lu
f0e75679fe
PluginDownloader: update my repo name
2019-03-19 21:35:03 -07:00
Valentin Lorentz
6b213f0686
Later: Add option senderHostname.
2019-03-06 15:29:09 +01:00
Gordon Shumway
61f03ff0ed
Add oddluck's repo
2019-02-14 20:55:10 +01:00
Valentin Lorentz
0f82f89eec
Web: Fix encoding issue on Python 2. Closes GH-1359.
2019-02-01 21:02:57 +01:00
Valentin Lorentz
fcf30a5601
Fix FutureWarning related to nested sets.
...
See https://bugs.python.org/issue30349
2018-12-29 23:36:57 +01:00
Valentin Lorentz
2c7c83b07d
Success: Declare __slots__
...
Required since 1ac7812d7a
.
2018-12-19 09:38:07 +01:00
James Lu
c7716de887
RSS: add a quick test for a malformed feed that has no entries
...
(Only both of these combined gives new output so far.)
2018-10-14 12:42:15 -07:00
James Lu
2fdc433cb3
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.
2018-10-14 12:41:22 -07:00
James Lu
9ba21a1cad
Unix: fix a typo in sysuname & sysuptime's command descriptions
...
runnning -> running
2018-09-30 18:03:29 -07:00
Valentin Lorentz
be36591760
Fix test.
2018-09-11 07:33:16 +02:00
Valentin Lorentz
1f400e4020
Fix Python 3.7 support, and run Travis tests on 3.7.
...
Travis' "nightly" python is actually older than 3.7.0 (3.7.0a4+)
2018-09-10 00:57:04 +02:00
Laurent Kislaire
fb3c8978b5
Small fix on french translation ( #1344 )
2018-08-31 17:50:14 -07:00
James Lu
2242aadde9
Web: add trailing space for snarferPrefix at runtime
...
Before, the trailing space in the default snarferPrefix value disappears after a reload because spaces at the end of config lines are ignored.
2018-07-22 04:01:21 +00:00
Valentin Lorentz
00b8b6b51e
Later: Add support for hostmasks.
2018-07-05 19:48:43 +02:00
Valentin Lorentz
50c41f5862
Fix previous commit on python 2.
2018-06-27 11:10:14 +02:00
Valentin Lorentz
1840b94453
Later: load the db with utf8 encoding (the default for AtomicFile).
2018-06-27 00:54:58 +02:00
Valentin Lorentz
01e4427057
Config: Fix previous commit.
2018-05-29 22:46:56 +02:00
Valentin Lorentz
c2b6305c46
Config: Support arbitrarily many channels for '@config channel'.
2018-05-29 22:17:28 +02:00
Valentin Lorentz
2d084f4deb
Math: Convert the output of factorial() to a float.
2018-05-10 06:20:55 +02:00
Valentin Lorentz
cd479717b8
Web: Add supybot.plugins.snarfMultipleUrls. Also, fix Web's test cases.
2018-04-14 21:50:32 +02:00
Tasos Sahanidis
b900a369a4
RSS: Fix feeds with missing description or title
...
An AttributeError would be raised when a blacklist or a whitelist
would be set on feeds that miss either a title or a description.
2018-03-13 23:50:47 +01:00
Valentin Lorentz
e2180a1e08
Add variable supybot.plugins.Web.snarferPrefix.
2018-03-02 01:26:00 +01:00
Valentin Lorentz
9c1d46d151
Add channel-specific config variables that are only settable by the owner.
2018-02-06 14:20:37 +01:00
Valentin Lorentz
030ce5e6d4
Fix previous commit.
2018-02-01 22:37:24 +01:00
James Lu
55723c2161
Services: fix rejoin-on-kickban with atheme 7.x
...
- Adjust _chanRe to only match channels, as atheme also puts the target nick in bold
- Look for "unbanned <botnick>" messages in ChanServ notices (after stripping formatting)
This likely fixes GH-166. atheme has been using this format since at least 2005[1],
so it's possible that Supybot's rejoin-on-ban had never worked with it.
[1]: 4017c0da85 (diff-ba2bdc02ba7b29fd7e4931cafe63baa0R218)
2018-01-27 13:22:21 -08:00
James Lu
add3ceb4e7
Services: do not send the bot's nick in ChanServ commands
...
On Atheme, Anope, and oftc-ircservices, /cs unban, invite, op, and voice
implicitly assume the caller if no nick is given. However, certain combinations
such as /cs invite *with* a nick are not supported on atheme per
https://github.com/atheme/atheme/issues/568 , and cause rejoin-on-kick to +i
channels to fail.
This fixes one part of GH-1118.
2018-01-27 13:22:15 -08:00
James Lu
eb1cb9bd76
Services: don't mangle the case of NickServ notices in logging
...
This might be confusing if you're dealing with password changes, etc.
2018-01-27 12:33:36 -08:00
Valentin Lorentz
5daaa14825
NickAuth: Fix NameError caused by e732931688
.
2018-01-25 14:09:19 +01:00
Nicolas Coevoet
e732931688
Modified NickAuth to match the new WHOX
2018-01-23 19:37:19 +01:00
Valentin Lorentz
d656db454d
User: if '@hostmask add' detects a conflict and the caller is the owner, tell them who the conflicting user is.
2017-12-30 18:47:09 +01:00
Valentin Lorentz
bd39debb48
User: Simplify owner-checking logic, and fix crash when @hostmask remove is called by an unregistered user.
2017-12-30 17:12:35 +01:00
Valentin Lorentz
8cfb841f3b
BadWords: better tests.
2017-12-26 05:46:46 +01:00
James Lu
289c894dc5
Services: log all messages from NickServ to info
...
Closes GH-1016.
2017-12-10 11:03:30 -08:00
Valentin Lorentz
3ab226c129
RSS: Only defer feed loading at plugin load while the bot is starting.
...
Defering it if the plugin is (re)loaded while already running is useless.
Closes GH-922.
2017-12-10 09:39:20 +01:00
James Lu
bdd0adfef5
RSS: add missing configuration help for feed URL options
...
This fixes confusing "That configuration group exists, but seems to have no help." errors on the URL
options for feeds, when these options are actually relevant and settable.
2017-12-09 23:03:42 -08:00
James Lu
c78aff24e8
Hashes: fix copyright year format
...
[skip ci]
2017-11-09 09:08:41 -08:00
James Lu
fffe1efa9b
Hashes: remove duplicate check for hashlib.algorithms_available
...
This code is never wrap()'ed if the attribute is unavailable, so it isn't necessary to check for it in runtime twice.
2017-11-09 09:05:58 -08:00
James Lu
287610b776
Hashes: simplify test suites
...
- Use hasattr instead of assigning the import availability to a variable
- Use a simple if statement instead of redefining skipIf
2017-11-09 09:04:21 -08:00
James Lu
41830a46aa
String, Hashes: remove links describing hashing methods
...
These are either dead or don't accurately describe the state of these methods
today. For example, the SHA1 site still describes SHA-1 and MD5 as "trusted"
despite widely reported collision attacks already being possible[1][2][3].
[1]: https://www.computerworld.com/article/3173616/security/the-sha1-hash-function-is-now-completely-unsafe.html
[2]: https://arstechnica.com/information-technology/2017/02/at-deaths-door-for-years-widely-used-sha1-function-is-now-dead/
[3]: https://techcrunch.com/2017/02/23/security-researchers-announce-first-practical-sha-1-collision-attack/
2017-11-09 09:01:29 -08:00
Ken Spencer
b84ce3e43f
Add hashes plugin ( #1315 )
...
* add plugin Hashes, containing hash and encryption related commands
* Hashes: make the default plugin Hashes when the commands are used by themselves
* Hashes: add supybot.conf because of registerDefaultPlugin
* Hashes: import registry to help with registerDefaultPlugin
* Hashes: add in nicks for test
* actually use hashlib instead of crypt, also s/'String'/'Hashes'
* Hashes/test: add group in for testing
* Hashes: add in changes per @GLolol
* Hashes: remove xor
* Hashes: make plugins = ('Hashes',) instead of ('Hashes') because python is weird
* Hashes: fix sha512 calling sha256, use utils.str.format on 'algorithms'
* Hashes: just use the variable instead of substitution per @GLolol
* Hashes: follow through with not using substitution
* Hashes: disable the 'algorithms' and 'mkhash' commands if the underlying 'hashlib.algorithms_available' isn't available
* Hashes: don't use registerDefaultPlugin its for core plugins
* Hashes: also somehow I didn't change the copyright
* Hashes/test: fix copyright in file
2017-11-09 17:56:43 +01:00
James Lu
fd59612002
Time: tweak 'ddate missing' error message
...
Fix grammar and use a consistent URL format.
2017-10-29 16:24:45 -07:00
James Lu
9e7ca56067
Time: be less noisy about missing ddate module
...
This is a fairly niche command so it's not necessary to bother the user on every load.
Also, clarify which plugin this message originates from.
2017-10-29 16:24:45 -07:00
James Lu
f4cae9614f
ShrinkUrl: remove 'expand' as longurl.org has been dead for some time
...
Closes #1243 .
2017-10-28 00:14:05 -07:00
James Lu
e05f1ae5df
ShrinkUrl: fix tests for x0, broken by #1242
2017-10-27 23:48:52 -07:00
James Lu
ec2cf4af37
Owner: fix 'unload' writing duplicate entries to supybot.plugins
...
Fetch the existing plugin callback to determine the plugin's name in the right case.
Closes #1295 .
2017-10-27 23:35:44 -07:00
Ken Spencer
2ba7bc5c16
Time: add 'ddate' ( #1310 )
...
* Time: add 'ddate', fix contributors, add Time.local as a package_dir in setup.py
* Time: add in license information for ddate.py
* Time: change 'ddate' command to where it will error out gracefully if 'ddate.base' isn't available
* Time: add tests, remove Time.local from package_dir
2017-10-27 19:25:02 +02:00
Valentin Lorentz
bee98f6711
Conditional: Do not use noReply() after running the command.
...
As the command already calls reply() or noReply(), calling noReply()
there had disastrous effects:
* if reply() was called, noReply() erases the argument
* if noReply() was called, calling noReply() a second time erases **the next argument** (because the current argument was already erased).
This was 'caused' by the change of behavior of noReply() in 543edccd41
.
2017-10-26 09:55:52 +02:00
Ken Spencer
76c73a57b9
Use a prefix-less help string, don't assume a '@' prefix ( #1309 )
...
* Use a prefix-less help string, don't assume a '@' prefix
* Nickometer: follow through on plugin.py with ` -> '
2017-10-25 21:19:37 +02:00
Ken Spencer
71ed64e6b2
Config: Don't use a prefix in _setValue ( closes #1307 ) ( #1308 )
...
* Config: Don't use a prefix in _setValue
-- deviated from normal '' line enclosure to allow use of ' in lines without escaping
* fix up edits per @Mikaela
2017-10-25 12:21:50 +02:00
Valentin Lorentz
e08e899134
Fix test
2017-10-21 17:11:21 +02:00
Valentin Lorentz
e16faab805
RSS: On startup, only delay feeds loading for 10 seconds instead of the whole of supybot.plugins.RSS.waitPeriod.
2017-10-21 16:48:44 +02:00
Valentin Lorentz
543edccd41
Properly handle noReplies() in nested commands.
...
This fix prevents the bot from replying 'Error: I tried to send you an empty message'
when 'utilities ignore' is called from an Aka.
2017-10-21 15:37:43 +02:00
Valentin Lorentz
eaa5a5523e
RSS: Add var supybot.plugins.RSS.maximumAnnounceHeadlines.
2017-10-12 21:21:50 +02:00
Valentin Lorentz
0998651f61
Aka: Escape the command in help strings, so they can be copy-pasted into @aka add.
2017-10-01 10:40:23 +02:00
James Lu
5ee15c38bb
ChannelIdDatabasePlugin: limit --regexp to trusted users
...
Overcomplicated regexps can freeze the bot, an issue which is amplified as a database (e.g. for quotes) grows. Closes #855 .
2017-09-29 16:31:56 -07:00
James Lu
0e1e37a5a2
dictclient: remove overly complex dequote method
2017-09-29 16:20:13 -07:00
James Lu
989ac5ee97
Dict: make dictclient reloadable
2017-09-29 16:16:25 -07:00
James Lu
b6c75a70d3
Math: sync convertcore unit data with ConvertAll 0.7.2
...
Also add in a special case for handling the new unitless unit ("!!")
2017-09-29 16:02:36 -07:00
James Lu
b5f53fb22f
Math.convertcore: remove unused imports
2017-09-29 15:55:27 -07:00
James Lu
2460c0abca
Math.convertcore: remove unnecessary StringIO usage
...
Since the unit data is already a variable, we can read from it as is
2017-09-29 15:54:04 -07:00
James Lu
21a729d95a
Math.convertcore: remove useless try/except clause
2017-09-29 15:50:58 -07:00
James Lu
2ea93cdcfd
Math: reload convertcore along with the plugin
2017-09-29 15:50:49 -07:00
Valentin Lorentz
e5ef138378
Remove confusing comment (irrelevant since 69ead6c2677262a52f8e9fcd185110d383f2c63d)
2017-09-24 21:21:55 +02:00
Valentin Lorentz
4f6a5e7db9
Add config variable supybot.commands.allowShell. ( #1301 )
2017-09-24 21:11:21 +02:00
Ken Spencer
82cdf17964
Unix: make the default ping count configurable ( fixes #1187 )
...
Squashed commit of the following:
commit 2952c1f3e3d81a4d473bc7037f3fa9091219e483
Author: James Lu <james@overdrivenetworks.com>
Date: Sat Sep 23 12:42:05 2017 -0700
Unix: fix wrong conf var name
commit a3ea173ee0995e9d22472cc569d54d7e65648117
Merge: ca037a94
165d9f25
Author: James Lu <james@overdrivenetworks.com>
Date: Sat Sep 23 12:41:37 2017 -0700
Merge branch 'configurable-ping-count' of https://github.com/IotaSpencer/Limnoria into configurable-ping-count
commit 165d9f258f02c5adf0087b164e144038c06a46c4
Author: Ken Spencer <ken@electrocode.net>
Date: Sat Sep 23 15:39:02 2017 -0400
Unix: use str() on the integer-type defaultCount so we don't get a TypeError
commit f3b58710752f3b40db44ddc97369e15951563ea7
Author: Ken Spencer <ken@electrocode.net>
Date: Sat Sep 23 15:35:30 2017 -0400
Unix: use PositiveInteger so < 0 is inherently invalid
commit b4f9e4fdfffcc75c4803480702271647decf73a0
Author: Ken Spencer <ken@electrocode.net>
Date: Sat Sep 23 15:03:37 2017 -0400
Unix: make the default ping count configurable
2017-09-23 12:45:17 -07:00
Ken Spencer
ca037a94c5
Network: add all+server+channels and all+channels commands ( #1305 )
...
* Network: add all+server+channels and all+channels commands
* Network: fix up commands for PR as per @GLolol
* Network: fix syntax docs, style, use irc.state.channels, not its keys
* move acmd to Admin, remove cmdallchans, can be used by 'cmdall acmd ...'
2017-09-23 15:51:00 +02:00
James Lu
5e880fd73d
Karma: reword readme & mention the onlyNicks option
...
[skip ci]
2017-09-20 21:46:38 -07:00
Valentin Lorentz
a870d02a27
Merge pull request #1304 from tatokis/testing
...
Fix exception raised due to lack of Content-Type on the Web plugin.
2017-09-21 00:39:19 +02:00
Tasos Sahanidis
8dbf37a173
Web: Fix exception raised due to lack of Content-Type
2017-09-20 04:57:47 +03:00
Valentin Lorentz
4b37f91928
Merge pull request #1300 from GLolol/plugindownloader-multibranch
...
Support non-master branches in PluginDownloader
2017-09-17 10:10:04 +02:00
Valentin Lorentz
afb0cf042f
Merge pull request #1299 from GLolol/network-specific-history
...
Make irc.state.history network specific
2017-09-17 10:09:38 +02:00
James Lu
9fb72bed97
Add the Python 2 (legacy) branch of my repository
2017-08-24 19:13:17 -07:00
James Lu
32ab953dd1
PluginDownloader: support non-master branches
2017-08-24 18:58:09 -07:00
Valentin Lorentz
087fa71d63
Aka: Tell in the help message what channel the aka is for.
2017-08-20 19:55:28 +02:00
Valentin Lorentz
0d7714d490
Unix: disable ipv6 test if ipv6 is disabled (eg. Travis).
2017-08-18 23:03:06 +02:00
Valentin Lorentz
5272bf3a86
Aka: Fix combination of required and optional arguments.
...
Was broken by 7f43727835
(why?)
2017-08-18 18:30:22 +02:00
James Lu
03c4529d9e
Owner: make irc.state.history network specific
...
It is fairly counterintuitive for plugins to read the IrcState history, only to find that the message it got is from the wrong network.
I'm not sure why the original Supybot chose to link all the history buffers together, as those lines came from before Supybot was introduced to Git.
Closes #1211 .
2017-08-03 12:25:34 -07:00
Valentin Lorentz
417f38b8c1
MessageParser: Prevent empty matches from leaving unreplaced.
2017-07-21 20:05:18 +02:00
Marc Chevalier
b93b5a237e
ChannelLogger: Normalize channel name in getLogDir
2017-05-09 12:50:21 +02:00
nyuszika7h
bb448f412d
Math: Fix round() with single argument in 'calc' command
...
I broke this with my previous commit related to this.
2017-05-08 18:50:27 +02:00
Valentin Lorentz
7e756eec79
Admin: Add tests for joining-on-invite.
2017-05-04 21:53:56 +02:00
Valentin Lorentz
1615b3b55f
Unix: Don't assume tests are running from Limnoria's source root.
2017-05-04 21:53:23 +02:00
Marc Chevalier
afbefc5f2b
Karma: remove unused variable in karma command
2017-05-04 14:59:04 +02:00
Marc Chevalier
99b4a7289b
Aka: fix backquote matching in readme
2017-05-04 14:58:48 +02:00
Valentin Lorentz
7f43727835
Aka: Proper mitigation of expansion bomb.
2017-04-17 11:05:04 +02:00
Valentin Lorentz
3075a41a3b
Aka: Allow more than one in an aka. Closes GH-1283.
2017-04-17 10:53:26 +02:00
Valentin Lorentz
5452d4194a
Aka: Remove first elements of the 'args' list in a single pass.
2017-04-17 10:31:43 +02:00
Valentin Lorentz
d73de5e512
Fix potential bug due to mutability of lists as default argument.
2017-03-30 21:38:18 +00:00
nyuszika7h
7d299dc3d1
Math: Fix round() in calc command
...
The second argument of `round()` has to be an integer, and since every
number is converted to a float to avoid using too much memory, a wrapper
has to be added for this function. I've tested it with big numbers and
it doesn't seem to cause any issue.
2017-03-27 16:35:33 +02:00
James Lu
6cb747744a
User: force replies for 'hostmask list' in private instead of requiring the command to be called that way
2017-02-12 11:42:42 +01:00
Valentin Lorentz
3633a2b2e3
RSS: Only keep the most recent entries in the initial announce.
2017-01-27 21:00:58 +01:00
Valentin Lorentz
e52db064ca
Less ambiguous name for the content of @owner announce.
2017-01-22 12:50:00 +01:00
nyuszika7h
dab4737010
Allow specifying the format of Owner.announce
...
Someone asked how to remove the owner's username from announcements,
so it may be useful to make this configurable instead of making them
edit a core plugin's code which is not the best idea,
or write another plugin.
2017-01-22 12:34:54 +01:00
Valentin Lorentz
90c5c78813
Add option --no-setuid to supybot-test
...
https://bugs.debian.org/834950
2017-01-10 22:56:17 +01:00
James Lu
010da43b29
Channel: use msg.prefix instead of nickToHostmask for capability checks
...
Closes #1233 .
2016-12-18 15:36:47 -08:00
Valentin Lorentz
cbb9f8c699
Merge pull request #1277 from GLolol/patch-1
...
Google: update link to supported languages list
2016-12-18 23:55:47 +01:00
James Lu
73be2bf3d8
Google: update link to supported languages list
...
Google has since reformatted their docs and moved the language support info to a separate page.
2016-12-18 14:53:01 -08:00
James Lu
b934870702
Debug: import supybot for easier access to the module
2016-12-18 23:37:55 +01:00
Johannes Löthberg
07f98d3619
Add timeout to `web title` command
...
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2016-12-08 10:11:15 +01:00
Valentin Lorentz
9fe4abec48
Web: Use a timeout to fetch pages. Closes GH-1275.
...
This is required because the sandbox is not used anymore,
since 9c57199838
.
2016-12-08 00:48:11 +01:00
Valentin Lorentz
b9b36d4de5
Improve decorator.
2016-12-08 00:37:12 +01:00
Valentin Lorentz
4acb692f17
Web: Use new-style command wrap (as a decorator).
2016-12-08 00:36:30 +01:00
Valentin Lorentz
bbaf3cd47e
User: Fix previous commit by @IotaSpencer.
2016-11-28 10:31:37 +01:00
Ken Spencer
0c4f9d74eb
User: allow for custom whoami error
2016-11-28 10:28:48 +01:00
Fudster
0be4e2c953
Add Fudster's repo ( #1274 )
...
* Add Fudster's repo
* fixed missing owner var
* Fix padding
* Fix padding.....
* Remove tabs
2016-11-28 10:24:56 +01:00
Valentin Lorentz
ecf70a4de4
GPG: Limit number of headers fetched on old Python versions.
2016-11-22 22:15:43 +01:00
Valentin Lorentz
9c57199838
Web: Disable the fetch sandbox on Python versions with the _MAXHEADERS fix.
...
Partial fix to GH-1271.
2016-11-11 12:13:02 +01:00
Ken Spencer
f29ede567b
Update Iota's link
2016-11-09 12:23:31 -05:00
Valentin Lorentz
14180a24ec
Fix error when printing the 'NoSuitableDatabase' error.
2016-11-05 08:51:29 +01:00
Valentin Lorentz
f6419525ee
Merge pull request #1269 from kyrias/fix-disable
...
disable: Actually disable command by plugin if specified
2016-11-03 18:53:19 +01:00
Johannes Löthberg
7c757cd52e
disable: Actually disable command by plugin if specified
...
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
2016-11-03 14:28:41 +01:00
Valentin Lorentz
95d4d40b22
Remove debug prints.
2016-11-01 21:30:39 +01:00
Valentin Lorentz
96c1ccc722
NickAuth: Fix error message.
2016-10-31 19:06:35 +01:00
Valentin Lorentz
167e66ed11
NickAuth: Use only the account name, not the current nick.
2016-10-31 17:02:14 +01:00
Valentin Lorentz
1fdbc24714
NickAuth: Improve error message.
2016-10-31 16:28:08 +01:00
Valentin Lorentz
f5db2338c5
Reply: Restore supybot.reply.oneToOne in tests because it breaks Factoids.
2016-10-02 13:55:26 +02:00
Valentin Lorentz
c6e29031d1
Make replies() behave consistently with reply() regarding the 'to' parameter.
...
Side-effect: Fixes channel-specificity of supybot.reply.onetoone for the Reply.replies command.
Closes GH-1266.
2016-10-01 13:37:03 +02:00
James Lu
cd853f3e31
Factoids: add missing Raise in requireVoice checks
...
Reported by braimee on IRC.
2016-09-25 17:11:14 -07:00
Valentin Lorentz
d7099794bc
Fix Python 2 support of last commit.
2016-09-20 23:22:13 +02:00
Valentin Lorentz
2cfe0f679f
Fix previous commit on some Python versions.
2016-09-20 23:09:29 +02:00
Valentin Lorentz
d39647142c
RSS: Fix shadowing of any/all.
2016-09-20 22:54:11 +02:00
Valentin Lorentz
b3bed0d6f9
User: Fix error handling when hostmasks overlap.
2016-09-14 19:10:26 +02:00
Valentin Lorentz
4f280599e1
RSS: use the original FeedParserDict for substitution
...
instead of building a new keyword arguments dict by iteration.
'description' is a field in FeedParserDict, but is not present when iterating,
which made it unavailable as a substitution variable.
2016-09-08 21:42:31 +02:00
Valentin Lorentz
2d30b40a80
NickAuth: Fix indentation.
2016-08-21 23:47:45 +02:00
Valentin Lorentz
1e7c3007e0
Later: Strip duplicate nicks given to @tell to avoid spam.
...
Suggested by @cottongin but implemented differently.
Closes GH-1261.
2016-08-19 19:20:17 +02:00
jacksonmj
0f14c1c654
Filter: add more filters - vowelrot, caps, capwords
2016-08-16 11:16:51 +02:00
Valentin Lorentz
3776404628
RSS: Use HTTP(S) proxy. Closes GH-1234.
2016-08-16 10:56:29 +02:00
Valentin Lorentz
fa755c3a9c
Google: Decode URLs. Closes GH-1260.
2016-08-10 22:52:00 +02:00
Valentin Lorentz
b4182753be
Internet: Add support for TLDs and IP addresses in @whois. Closes GH-1253.
2016-08-09 21:08:18 +02:00
James Lu
66736b22d5
Web: optionally hide the domain in titleSnarfer
...
This adds a snarferShowDomain option to optionally hide the domain ("(at site.abc)" text) in titleSnarfer output. Closes #1236 .
2016-08-09 11:22:00 -07:00
Valentin Lorentz
de8d4fbe52
PluginDownloader: Fix decoding issue (caught in stepnem/Freenode).
2016-08-01 16:09:11 +02:00
Valentin Lorentz
9c76750ff9
PluginDownloader: Add test case.
...
Someone reported it to crash, but it does no. Hmm…
2016-08-01 16:08:31 +02:00
Valentin Lorentz
035c38a4f1
ChannelStats: Forbid large numbers for factorial().
2016-07-30 20:25:52 +02:00
Valentin Lorentz
66782d47d8
GPG: Improve error messages.
2016-07-29 10:26:59 +02:00
Valentin Lorentz
0d820477c2
GPG: Improve error messages.
2016-07-29 01:28:12 +02:00
James Lu
30ba4bbe22
Google: mention the format of language codes
...
This might reduce confusion when people do things like "!google translate english to french hello", which produces no result.
2016-07-15 11:48:26 -07:00
Kevin Fenzi
932f49648b
change abuse command flood to except trusted users instead of just owners
2016-07-06 16:50:14 -06:00
Valentin Lorentz
7b658e714b
Factoids: Fix Python 3 support.
2016-06-04 18:57:31 +02:00
Valentin Lorentz
59df2ff038
Factoids: Fix names of utils.web.url(un)quote.
2016-06-04 18:53:55 +02:00
James Lu
88a8bbb4d8
Google: remove unused & duplicated imports
...
"import json" was being done twice. cgi, time, and socket all appear to be unused.
2016-05-11 18:24:36 -07:00
James Lu
7f13b939f7
ShrinkUrl: Update API URL, now serving HTTPS links
...
Source: https://x0.no/api/
For reference, http://api.x0.no/ now redirects to https://x0.no/api/
2016-05-07 21:02:38 -07:00
James Lu
218ba764cc
Google: self-promot-- add DDG plugin with py2/py3 support
2016-05-06 07:14:25 -07:00
Valentin Lorentz
b6695172c8
Google: Add warning about deprecation.
2016-05-06 09:02:54 +02:00
Valentin Lorentz
de290d12f3
Google: Fix @lucky.
2016-05-05 09:01:51 +02:00
Valentin Lorentz
8321d8a547
Google: Fix URL formatting.
...
For some reason, it worked on Python 3…
2016-05-05 08:31:04 +02:00
Valentin Lorentz
6f1045ed20
Google: Fixes.
2016-05-05 08:03:10 +02:00
Valentin Lorentz
f8aaddd5b5
Google: Fix google URL.
2016-05-04 19:29:53 +02:00
Valentin Lorentz
b5268d63a3
Google: AJAX API was closed today, using HTML scraping instead.
2016-05-04 19:05:31 +02:00
Valentin Lorentz
c9e5486806
Ctcp: Don't strip CTCP character in output. (bug added in previous commit)
2016-04-24 21:26:25 +02:00
Valentin Lorentz
6ec0af2da3
Strip CTCP characters from irc.reply by default.
2016-04-24 21:11:34 +02:00
Valentin Lorentz
52517c8ca6
Open CSV files in binary mode on Python 2. Closes GH-1230.
2016-04-13 17:56:03 +02:00
Valentin Lorentz
2d1816e8f4
Ctcp: s/Supybot/Limnoria/ in version reply.
2016-04-10 19:31:59 +02:00
Valentin Lorentz
443999df25
Misc: s/Supybot/Limnoria/ in @version.
2016-04-02 18:57:10 +02:00
James Lu
3879f30d47
User: allow owners to change their own password
...
I don't understand why this restriction exists. If someone gains access to someone else's owner account, they can do a lot worse damage than just changing the owner password.
People logging in via NickAuth or hostmasks should be able to change their passwords at will, even if the owner doesn't know his previous password.
2016-03-21 20:57:13 +01:00
James Lu
d4a71497c4
Misc.last: add a timeout in --regexp search to prevent various ReDoS attacks
2016-03-21 20:57:04 +01:00
Valentin Lorentz
51c354bcfb
Conditional: disable threading.
2016-03-16 16:49:07 +01:00
James Lu
9ace3004aa
Network: fix getopts key for --nossl
2016-03-11 20:05:41 -08:00
Valentin Lorentz
5db3faca7a
Unix: Add support for -4 and -6 in @ping. Closes GH-1224.
2016-03-11 21:12:04 +01:00
Valentin Lorentz
6936e3d634
Aka: make @list --keys reply on a single line, even if supybot.reply.oneToOne is False. Closes GH-1225.
2016-03-11 21:00:01 +01:00
Valentin Lorentz
fc3c9eec7c
Time: Explicitely handle the 'now' case.
...
dateutil never handled it, and just returned the current day.
https://github.com/dateutil/dateutil/issues/212
2016-03-08 22:40:41 +01:00
Valentin Lorentz
25a913a82b
Unix: Make fortune.equal and fortune.file channel-specific.
2016-03-01 19:21:17 +01:00
Valentin Lorentz
0b66abaf5b
Channel: Fix 'ignore remove' converter to work like 'ignore add'.
2016-02-23 19:12:22 +00:00
Valentin Lorentz
c3dd5f8b64
Make SSL the default for connecting to a new network.
2016-02-21 13:04:26 +01:00
Valentin Lorentz
b33dadea9e
Make INFO a bit less verbose when connecting.
2016-02-21 11:01:31 +01:00
Valentin Lorentz
de3265ed58
Merge pull request #1208 from damascene/testing
...
Add some explanation about Google plugin functions
2016-02-09 19:11:29 +01:00
Usama Akkad
1335962fd3
changed the link to markdown format
2016-02-09 20:09:35 +02:00
Usama Akkad
914dc4c4ec
small fix
2016-02-07 12:52:27 +02:00
Usama Akkad
1ecf9c2206
applied @GLolol suggestions
2016-02-07 12:50:35 +02:00
Valentin Lorentz
61e5a29351
Fix scheme-matching regexp.
...
Old behavior allowed underscores and schemes starting with a digit,
and did not allow -+.
New behavior: https://tools.ietf.org/html/rfc3986\#section-3.1
Side effect: closes GH-1146
2016-02-07 09:44:08 +01:00
Valentin Lorentz
e9b122c973
Later: Do not use ValueError for reporting full queues.
...
Someone on IRC reported a ValueError being raised from an other part of the code.
2016-01-31 12:11:04 +01:00
Valentin Lorentz
ce0b788f2f
Merge remote-tracking branch 'freeboson/patch-2' into testing
2016-01-27 14:27:32 +01:00
Sujeet Akula
26840f7a2e
add desc for wizard — plugindownloader
2016-01-27 08:23:47 -05:00
Valentin Lorentz
6b3766dcd1
Remove trailing spaces.
2016-01-27 14:04:58 +01:00
Valentin Lorentz
638897671e
Merge remote-tracking branch 'freeboson/patch-1' into testing
2016-01-27 14:04:14 +01:00
Sujeet Akula
c44d2007c4
add desc for wizard
2016-01-27 08:03:05 -05:00
Usama Akkad
44a4d31b05
Add some explanation about Google plugin functions
2016-01-27 01:08:38 +02:00
Usama Akkad
8c191a8ce2
Add some explantation about Google plugin functions
2016-01-27 00:05:06 +02:00
Valentin Lorentz
a4a0082c17
Later: use .tag() to set tags, as there is no IrcMsg.__setattr__.
2016-01-22 20:13:22 +00:00
Valentin Lorentz
4576874128
httpserver: Respond to HEAD requests. Closes GH-1203.
2016-01-05 18:25:35 +01:00
Valentin Lorentz
1010ea244b
Filter: Extend outfilter to cover NOTICEs. Closes GH-1164.
2016-01-02 13:32:03 +01:00
Valentin Lorentz
715f9cd52d
Merge pull request #1201 from GLolol/web/strip-newlines
...
Web: normalize whitespace in titles
2015-12-30 10:00:42 +01:00
James Lu
e2dedcc5a4
Web: normalize whitespace in titles
...
Sample link: http://googleblog.blogspot.com/2015/08/android-wear-now-works-with-iphones.html
Before: <bot> 'Title: \nOfficial Google Blog: Android Wear now works with iPhones\n (at googleblog.blogspot.com)'
After: <bot> Title: Official Google Blog: Android Wear now works with iPhones (at googleblog.blogspot.com)
2015-12-29 17:12:26 -08:00
Valentin Lorentz
f26716f2b8
Utilities: Add @let.
2015-12-29 18:00:05 +01:00
Valentin Lorentz
f7943a6697
Plugin: make @plugins take non-first words into account. Closes GH-68.
2015-12-28 20:09:48 +01:00
Valentin Lorentz
8e427838cd
Plugin: internationalize a string.
2015-12-28 20:04:31 +01:00
Valentin Lorentz
f4d36cd087
Admin: internationalize a string.
2015-12-28 20:01:40 +01:00
Valentin Lorentz
857027a26f
Fix tests for Python 2.
2015-12-27 12:43:35 +01:00
Valentin Lorentz
b42437c711
Unix: Channel-specific list of files for @fortune.
...
Also forbid file names starting with a dash, because
arguments to the fortune argument could be used for
DoSing.
2015-12-27 12:32:09 +01:00
Valentin Lorentz
49ff291f61
Use utf-8 to encode files by default.
...
Should fix this bug in Seen:
Traceback (most recent call last):
File "C:\Program Files\Python34\lib\site-packages\supybot\world.py", line 121, in flush
f()
File "C:\Program Files\Python34\lib\site-packages\supybot\plugins\__init__.py", line 271, in flush
writer.writerow(L)
File "C:\Program Files\Python34\lib\site-packages\supybot\utils\file.py", line 172, in write
return self._fd.write(data)
File "C:\Program Files\Python34\lib\encodings\cp1250.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u25c4' in position 33: character maps to <undefined>
2015-12-23 15:22:19 +01:00
Valentin Lorentz
2364cf176d
Status: Fix sort on Python3 (dict_items, not list). Closes GH-1199.
2015-12-20 10:09:39 +01:00
James Lu
45c5e29849
Channel: fix help text in "cycle" command
...
Closes #1197 .
2015-12-19 09:01:29 -08:00
Valentin Lorentz
65abedcca1
ChannelStats: Don't crash on messages with no argument, eg. AWAY.
2015-12-19 00:13:42 +01:00
Valentin Lorentz
856d275697
Status: Fix output of @cpu if the amount of memory is unknown.
2015-12-07 16:32:53 +01:00
Valentin Lorentz
b0ee589702
Seen: Fix handling of MODE and TOPIC.
2015-12-05 21:29:07 +00:00
Valentin Lorentz
4d3fa77018
Fix typo.
2015-12-04 13:39:28 +01:00
Valentin Lorentz
2937152dc1
ChannelLogger && ChannelStats && Limiter && Relay && Seen: Use new QUIT and NICK 'channels' tag instead of copying the state.
2015-12-04 13:30:07 +01:00
Valentin Lorentz
1493adc041
Merge pull request #1194 from GLolol/filter/rainbow-stripcolor
...
Strip colour before applying new colour in Filter.rainbow and colorize
2015-12-02 09:41:56 +01:00
Valentin Lorentz
56d4cbec08
Aka: Fix Python 2 compatibility.
2015-12-02 09:06:34 +01:00
Valentin Lorentz
3fde279e50
Aka: Fix database name.
2015-12-02 07:55:00 +00:00
jacksonmj
61f2df5cc3
Strip colour before applying new colour in Filter.rainbow and colorize
...
This makes them work much better when the input text already contains colour.
(cherry picked from commit jacksonmj/Limnoria@be83befabf )
2015-12-01 18:20:01 -08:00
Valentin Lorentz
bc19a9fc7f
Web: fix syntax.
2015-11-30 07:45:05 +00:00
Valentin Lorentz
eaf9e40dc2
Web: increase subprocess memory limit and catch MemoryError appropriately.
2015-11-29 18:34:54 +00:00
Valentin Lorentz
a070b658a0
Web: Fix title fetching.
2015-11-29 17:59:57 +00:00
Valentin Lorentz
ad8883a724
Network: Perform susbstitution in quit message.
2015-11-18 12:18:46 +01:00
Valentin Lorentz
b69e6e22bb
Conditional: Rename @iferror to @cerror and simplify its logic to just return a boolean.
2015-11-14 19:28:05 +01:00
Valentin Lorentz
5f361ef180
Conditional: Add command @iferror. Closes GH-1114.
2015-11-14 19:20:25 +01:00
Valentin Lorentz
534fb5c78f
ShrinkUrl: Fix previous commit.
2015-11-11 12:20:44 +00:00
Valentin Lorentz
c65762544c
ShrinkUrl: Preven crash for commands with no arguments.
2015-11-11 12:15:55 +00:00
Valentin Lorentz
b3dbde18b8
Conditional: Don't import * from commands and remove the hack for any/all.
2015-11-09 19:10:19 +01:00
Valentin Lorentz
8bdab5e23e
Condition: Add support for integers (casted to booleans).
2015-11-07 18:44:33 +01:00
Valentin Lorentz
e1d0c232ea
Aka: Deprecate SQLAlchemy backend.
2015-11-07 18:29:43 +01:00
Valentin Lorentz
3f66dbc3d5
Channel & Dunno & Misc & RSS & Scheduler: Let the logging facility perform string templating to avoid extra format chars in argument.
2015-11-03 17:25:13 +01:00
Valentin Lorentz
a8748c3b73
GPG: Fix test crash since 57b77a6725
.
2015-10-25 16:27:57 +01:00
Valentin Lorentz
1f57c31665
Web: Fix NameError with snarferShowTargetDomain. Closes GH-1177.
2015-10-25 16:20:31 +01:00
Valentin Lorentz
e3ff413734
Web & core: Merge features of Web's title parser and utils.web.HtmlToText + don't unescape HTML twice. Closes GH-1176.
2015-10-23 07:41:36 +02:00
Jussi Timperi
1f96471d93
Web: Correct capitalization in testTitle.
2015-10-22 17:19:03 +03:00
Jussi Timperi
5cf1b34f55
Web: Use title instead of parser.title.
2015-10-22 17:13:47 +03:00
Jussi Timperi
df7689cc2e
Web & utils.web: Force HTMLParser to process all buffered data.
...
Python issue 23144.
2015-10-22 16:56:53 +03:00
Valentin Lorentz
526ffb0ccb
Web: Fix code factorization ( 576a96fb71
). Closes GH-1173.
2015-10-17 15:41:20 +02:00
Valentin Lorentz
fb52b16429
RSS: Allow @announce add to take URLs as feed names.
2015-10-10 20:40:25 +02:00
Valentin Lorentz
d397b4706d
Merge pull request #1172 from GLolol/web/strip-titles
...
Web: actually return a whitespace-stripped title
2015-10-04 22:05:08 +02:00
James Lu
6e96f8f8bf
Web: actually return the whitespace-stripped title
2015-10-04 12:54:41 -07:00
Jussi Timperi
67e5b55c1a
Google: Handle empty results in translate.
2015-10-03 01:06:18 +03:00
Valentin Lorentz
27b878ff7c
Math: Add comment about security.
2015-09-28 18:59:29 +02:00
Valentin Lorentz
0371480bd6
Math: add the 'round' function.
2015-09-28 18:57:46 +02:00
Valentin Lorentz
532309ecff
Merge pull request #1170 from GLolol/badwords-1
...
BadWords: truly fix the bot kicking people when badwords list is empty
2015-09-26 08:57:16 +02:00
James Lu
96dc860313
BadWords: truly fix kicks when badwords list is empty ( #989 )
2015-09-25 20:51:15 -07:00
Valentin Lorentz
4498548cb3
RSS: Add supybot.plugins.RSS.notice. Closes GH-1151.
2015-09-23 11:27:20 +02:00
Valentin Lorentz
1002ec5d30
Later: Allow multiple targets. Closes GH-1169.
2015-09-23 11:23:21 +02:00
Valentin Lorentz
82332ff87c
RSS: Add feed-specific waitPeriod.
2015-09-23 11:05:25 +02:00
Valentin Lorentz
685bedcd74
Add config variable supybot.abuse.flood.command.notify.
2015-09-16 21:32:25 +02:00
Valentin Lorentz
2e7df9cfc2
Service: Actually allow 0.
2015-09-15 21:00:31 +02:00
Valentin Lorentz
e54ae6dc77
Service: Don't ghost if ghostDelay is set to 0.
2015-09-15 20:59:26 +02:00
James Lu
f5146e8af4
Filter: more efficient _squish code
2015-09-10 06:57:40 -07:00
James Lu
ed493e6504
Filter: strip spaces in "unbinary" ( Closes #1166 )
...
This makes _squish() a shared function to prevent code duplication. Also, remove duplicate testUnbinary function, and add tests for this.
2015-09-09 19:32:15 -07:00
Valentin Lorentz
b51075969f
Google: Move the main code of translate to a separate function (usable by other plugins).
2015-09-09 21:24:47 +02:00
Valentin Lorentz
1c218592af
RSS: Add fallback on sorting by update timestamp + add outdatedFirst and updatedFirst sorts. Closes GH-1139.
2015-09-02 10:04:04 +02:00
Valentin Lorentz
29ca3eb5e4
RSS: Sort on time tuples instead of formatted dates.
2015-09-02 09:43:29 +02:00
Valentin Lorentz
c81d5d3151
Make the 'command flood' banmask follow supybot.protocols.irc.banmask.
2015-09-01 20:40:32 +02:00
Valentin Lorentz
6d60616597
Merge pull request #1161 from jacksonmj/private-user-list
...
Send User.list response in private
2015-08-31 15:16:25 +02:00
jacksonmj
5914499766
Change User.listInPrivate config value from global to channel-specific
2015-08-31 13:04:33 +00:00
Valentin Lorentz
69358681f7
ChannelLogger: Fix 'dictionary changed size during iteration'.
2015-08-31 08:40:30 +00:00
Valentin Lorentz
c01a956a8b
utils: Remove dependency on parent package.
2015-08-30 17:33:39 +02:00
jacksonmj
3b1c56bbcd
User.list: add config value plugins.User.listInPrivate to force user list response to be sent in private
...
This prevents mass-highlights of people who use their IRC nick as their bot username.
2015-08-30 00:48:29 +00:00
James Lu
dbd12e9c0c
Aka: allow filtering 'list' by Aka lock status
...
This adds two mutually incompatible options to Aka list: --locked and --unlocked
2015-08-29 17:21:17 -07:00
Valentin Lorentz
e5d8315e64
Language.
2015-08-29 21:46:47 +02:00
Valentin Lorentz
20ef13ef9f
Web: Ignore SVG titles. Closes GH-1147.
2015-08-29 21:08:35 +02:00
Valentin Lorentz
576a96fb71
Web: Factorize the code of the title snarfer and the title command.
2015-08-29 21:04:38 +02:00
Valentin Lorentz
8033e6ae14
Merge pull request #1159 from jacksonmj/math
...
Prevent untrusted users from freezing the bot with Math.rpn, and allow factorial calculation for smaller numbers
2015-08-29 08:09:12 +02:00
jacksonmj
97c7d0a9c3
Math.calc: allow factorial for smallish numbers
2015-08-29 01:27:50 +00:00
jacksonmj
1aeb847509
Math.rpn should use _mathSafeEnv, otherwise untrusted users can freeze the bot
2015-08-29 01:26:45 +00:00
Valentin Lorentz
b8f5423130
Unix: Skip tests instead of ignoring them if a dep is missing + use ls instead of ping.
2015-08-26 23:09:55 +02:00
Valentin Lorentz
4d6bd84d00
Time: skip tests if dependencies are not available.
2015-08-26 22:45:33 +02:00
Valentin Lorentz
33e8966e4b
ChannelLogger & core: Use IRCv3.2 extension invite-notify if available.
2015-08-22 18:24:32 +02:00
jacksonmj
9eafe29c30
Alias: fix tests
2015-08-22 14:36:00 +00:00
jacksonmj
ff4040f479
Alias: prevent "RuntimeError: dictionary changed size during iteration" for invalid aliases
2015-08-22 13:24:19 +00:00
jacksonmj
f5c66afe4f
Alias: add hard-coded check that alias names are valid registry names
2015-08-22 13:24:01 +00:00
jacksonmj
4507771ce7
Alias: clearer description for list command, as suggested by ProgVal
2015-08-22 12:54:06 +00:00
jacksonmj
92acea7785
Alias: refactor some of the registry access
2015-08-22 12:48:59 +00:00
jacksonmj
d9b21dc5be
Alias: more relaxed valid name regex (printable characters instead of "a-z0-9 and some symbols")
2015-08-22 11:37:13 +00:00
jacksonmj
963a17c817
Alias: make regex for valid alias names configurable
2015-08-22 11:37:13 +00:00
jacksonmj
54e9b4be09
Alias: add a list command to list aliases, optionally filtered by locked status
...
("list Alias" includes Alias plugin commands as well as aliases, and cannot be filtered by locked status)
2015-08-22 11:37:12 +00:00
jacksonmj
fd53d8c410
Alias: correct unescaping of alias names when creating registry entries in Alias.__init__
...
Only a problem when the rules on allowed alias names were relaxed, in which case backslashes were duplicated
every time the bot restarted.
Also factor out '.' and '|' checks into needsEscaping function
2015-08-22 11:37:12 +00:00
jacksonmj
711572b5b2
Alias: fix locking and unlocking for escaped aliases
2015-08-22 11:37:12 +00:00
Valentin Lorentz
d4c49d8215
Factoids: Fix help of requireVoice. Closes GH-1153.
2015-08-17 18:22:36 +02:00
Valentin Lorentz
aa98d987a7
Fix imports to minisix.
2015-08-11 17:01:58 +02:00
Valentin Lorentz
c3a2c800f1
Remove need for 2to3.
2015-08-11 16:50:23 +02:00
Valentin Lorentz
054953891f
Web: check URL whitelist in snarfer.
2015-08-11 14:46:47 +00:00
Valentin Lorentz
f305ff3c02
Remove fix_basestring.
2015-08-10 20:24:11 +02:00
Valentin Lorentz
2c380a4c3a
Remove fix_xrange.
2015-08-10 19:36:07 +02:00
Valentin Lorentz
23ddfbc7e3
Filter & Google: Fix Python 3.2 compatibility.
2015-08-10 19:14:22 +02:00
Valentin Lorentz
8ad16701ce
MoobotFactoids: Fix Python 3.2 support.
2015-08-10 19:02:50 +02:00
Valentin Lorentz
be6bc1a734
Remove need for fix_unicode.
2015-08-10 18:52:51 +02:00
Valentin Lorentz
6ceec0c541
Web: HTMLParseError is deprecated/unused since Python 3.3 and removed in Python 3.5.
2015-08-10 18:16:02 +02:00
Valentin Lorentz
34d384bd67
Remove need for fix_methodattrs.
2015-08-10 18:09:52 +02:00
Valentin Lorentz
c0ac84bb53
Remove need for fix_import, fix_types, and fix_urllib.
2015-08-10 17:55:25 +02:00
Valentin Lorentz
17bf893437
Fix imports.
2015-08-09 09:21:12 +02:00
Valentin Lorentz
5b9e07ecd2
Fix previous commit.
2015-08-09 00:47:50 +02:00
Valentin Lorentz
216c5d213f
Replace sys.version_info[0] usages with minisix.PY{2,3}.
2015-08-09 00:23:03 +02:00
Valentin Lorentz
5a82cefd51
Remove use of fix_long fixer.
2015-08-08 23:08:49 +02:00
Valentin Lorentz
be118c3338
Remove use of fix_dict fixer.
2015-08-08 23:08:49 +02:00
Valentin Lorentz
7d7945e719
Topic: Factorize capability checks + make requireManageCapability actually channel-specific.
2015-07-08 11:35:56 +02:00
Valentin Lorentz
1bdb9e38e3
Relay: Clarify the doc of Relay.channels.joinOnAllNetworks. Closes GH-1133.
2015-07-07 06:59:33 +00:00
Jussi Timperi
7410c1657f
Google: restore test for translate
2015-07-04 03:13:53 +03:00
Jussi Timperi
a6d1909bd6
Google: restore translate
2015-07-04 02:42:01 +03:00
Valentin Lorentz
451ec28163
Merge pull request #1131 from GLolol/allow-unregistered-db-add
...
Allow unregistered users to use 'add', 'remove', etc. in ChannelIdDatabasePlugin plugins
2015-06-28 23:54:22 +02:00
James Lu
8e51209c3f
Fixes to ChannelIdDatabasePlugin as pointed out by @ProgVal
...
- Quote: factorize tests
- Make supybot.databases.plugins channel specific
2015-06-28 14:36:27 -07:00
James Lu
1fe663ddb2
Quote: test unauthenticated DB 'add'
2015-06-28 11:24:42 -07:00
Valentin Lorentz
9d93bc6991
Merge pull request #1124 from nyuszika7h/print-function
...
Add missing future imports for print_function
2015-06-13 00:49:40 +02:00
nyuszika7h
9f059b91ba
Add missing future imports for print_function
...
There are some places where `print()` is used to print a blank line.
However, unless the future feature `print_function` is imported,
that will print `()` in Python 2.
2015-06-12 22:22:16 +02:00
nyuszika7h
59489ab560
NickCapture: Attempt NickServ release on 437 numeric
2015-06-12 15:15:54 +02:00
Valentin Lorentz
8b401249b8
Revert "ShrinkUrl plugin, add BitLy support."
...
This reverts commit 147cccdf6c
.
I prefer not to have APIs with authentication in Limnoria's
officiel plugins, as discussed on GH-361.
2015-06-11 11:31:21 +02:00
Michael Telatynski
147cccdf6c
ShrinkUrl plugin, add BitLy support.
...
Login+ApiKey required for it to function.
2015-06-08 17:57:13 +01:00
Valentin Lorentz
7c4a28d7fd
RSS: Remove illegal characters from entries.
2015-06-01 19:32:40 +02:00
Valentin Lorentz
f85395d8b1
Revert ban description-related commits.
...
Squashed commit of the following:
commit ea4743caa8bdc7abba99635898ae09a9497c43d3
Author: Valentin Lorentz <progval@progval.net>
Date: Sun May 24 01:07:49 2015 +0200
Revert "Channel & core: Add support for ban descriptions. Closes GH-1092."
This reverts commit 6efea561a5
.
Conflicts:
src/ircdb.py
commit d43b9229fe926869852c4abda1da1b18a0093938
Author: Valentin Lorentz <progval@progval.net>
Date: Sun May 24 01:06:30 2015 +0200
Revert "Fix import of channel database."
This reverts commit 8ed5522da0
.
commit 6c453d9acb3dc37711cb4d51abd9fe216ca65c08
Author: Valentin Lorentz <progval@progval.net>
Date: Sun May 24 01:06:27 2015 +0200
Revert "Fix previous commit."
This reverts commit 394f1554f7
.
2015-05-24 01:08:54 +02:00
Valentin Lorentz
ac0e6b86c0
RSS: Fix typo.
2015-05-23 11:48:32 +02:00
Valentin Lorentz
34138b9185
RSS: Don't crash on load if there is an invalid feed name. Closes GH-1116.
2015-05-23 11:40:26 +02:00
Valentin Lorentz
cdb144f500
Fix various debuild warnings.
2015-05-20 20:56:54 +02:00
Michael Telatynski
2334b54792
Add ser_berry's Repository to PluginDownloader
2015-05-19 20:50:40 +01:00
Valentin Lorentz
10a9bc578b
Owner: Don't crash on "upkeep high" on Python 3.
...
Python 3's except statement removes the need for sys.exc_clear,
see https://www.python.org/dev/peps/pep-3100/
2015-05-19 19:10:00 +02:00
Valentin Lorentz
5952b486f5
Later: Don't make Misc raise AssertionErrors.
2015-05-19 00:50:34 +02:00
James Lu
97228afb7d
Aka.search: be case insensitive and handle "not found" errors correctly
...
Closes #1110 .
2015-05-18 14:53:30 -07:00
Valentin Lorentz
7e1634f085
PluginDownloader: Add t3chguy's repo.
2015-05-18 15:24:18 +02:00
Valentin Lorentz
db09100772
GPG: Fix previous commit.
2015-05-18 13:01:12 +02:00
Valentin Lorentz
c6697350b3
GPG: Create plugin by moving code from User.
2015-05-18 12:38:18 +02:00
James Lu
24c1caac43
Praise: make tests channel specific
...
This should fix build errors in Travis CI.
(cherry picked from commit 8dc2996e3597e6a641be089188816b44505366c5)
2015-05-15 17:04:03 -07:00
Valentin Lorentz
b405f998a5
NickAuth: Add support for account-tag (not tested).
2015-05-15 20:46:18 +02:00
Valentin Lorentz
59d542bb70
NickCapture & core: Add support for MONITOR. Closes GH-842.
2015-05-15 19:24:24 +02:00
Valentin Lorentz
ed37fb6646
String & core: Add support for G flag in matchers. Closes GH-1072.
2015-05-15 16:48:00 +02:00
Valentin Lorentz
487f8c8af5
Merge remote-tracking branch 'supybot/master' into testing
...
Conflicts:
.mailmap
README
docs/FAQ.rst
plugins/Ctcp/plugin.py
plugins/Misc/plugin.py
plugins/Network/plugin.py
plugins/QuoteGrabs/plugin.py
plugins/RSS/README.txt
plugins/Relay/plugin.py
plugins/ShrinkUrl/config.py
plugins/ShrinkUrl/plugin.py
plugins/ShrinkUrl/test.py
setup.py
src/callbacks.py
src/commands.py
src/conf.py
test/test_commands.py
2015-05-15 14:41:08 +02:00
Valentin Lorentz
6efea561a5
Channel & core: Add support for ban descriptions. Closes GH-1092.
2015-05-15 13:43:26 +02:00
Valentin Lorentz
a81d3ddae6
Web: add option for having titlesnarfer immune to defaultignore. Closes GH-1101
2015-05-15 12:39:30 +02:00
Valentin Lorentz
2008956968
RSS: Reove broken (and probably irrelevant) link in the README.
2015-05-10 09:57:11 +00:00
James Lu
308eea922e
Aka: add a 'search' command.
...
Closes ProgVal/Limnoria#1081 .
2015-04-26 22:20:24 -07:00
Valentin Lorentz
a7b1e65bd9
AutoMode: Set supybot.plugins.AutoMode.alternativeCapabilities to True by default.
2015-04-22 09:25:38 +02:00
Valentin Lorentz
f293cfaeda
ShrinkUrl: Remove goo.gl (buggy) and fix tests.
2015-04-19 12:56:39 +02:00
James Lu
562fa14706
ChannelIdDatabasePlugin: allow unregistered users to use commands
...
This adds a new configuration variable, supybot.databases.plugins.requireRegistration, which defaults to True for maximum security.
2015-04-15 18:01:06 -07:00
Valentin Lorentz
d8aa4f3181
PluginDownloader: Add @waratte's repo.
2015-04-16 00:25:39 +02:00
Valentin Lorentz
faac1b0f2b
Google: Remove translate command, as Google broke it.
2015-04-15 01:38:38 +02:00
James Lu
159c1e7cd8
ShrinkUrl: Remove ln ( Closes #618 ).
...
ln-s.net has been dead for over half a year now; both their website homepage
and any previous shortened links return an HTTP 503. Thus, it isn't very
useful to leave this broken command lingering around...
Signed-off-by: James McCoy <vega.james@gmail.com>
2015-03-26 02:52:54 -04:00
Mikaela Suomalainen
01e776edc2
ShrinkUrl: use x0 by default. Fixes #617 .
...
x0 has the smallest working output. ur1 had the second smallest.
Their difference is one character.
Signed-off-by: James McCoy <vega.james@gmail.com>
2015-03-26 02:49:02 -04:00
nyuszika7h
8266870d9f
ShrinkUrl: Remove xrl.us
...
> Please note: Adding new links has been disabled since September 2014
> after 14 months notice.
Source: http://metamark.net/
Signed-off-by: James McCoy <vega.james@gmail.com>
2015-03-26 02:40:59 -04:00