Commit Graph

5424 Commits

Author SHA1 Message Date
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
James McCoy cffbd959e8
Add handling of 437 (nick temporarily unavailable) errors
Servers bind a nick to a connection for a short window after it
disappears to try and avoid contention over nicks.  This may cause a 437
during connection to a server (c.f. ProgVal/Limnoria#1033) or even
during normal nick changes, if the timing is lucky.

Add handling for this error to the startup code and the Admin plugin.

Signed-off-by: James McCoy <vega.james@gmail.com>
2015-03-26 01:33:04 -04:00
James McCoy c3695c9419
ircutils: Add formatWhois function
Parsing through the various WHOIS replies to build a formatted string
isn't a trivial task, especially since there is some privacy related
information.  Consolidate this handling into a single function so
there's one place to fix bugs.

Also fix an issue with people putting (unterminated) formatted text into
the "realname" field of their IRC client (c.f., ProgVal/Limnoria#1083).

Signed-off-by: James McCoy <vega.james@gmail.com>
2015-03-26 00:11:36 -04:00
Valentin Lorentz 3275806740 Rename showWhichResponded to showDictName. 2015-03-17 07:58:50 +01:00
James Lu 183592dff0 Dict: add option to toggle showing which dictionaries responded to a query
Dict's output is very long and verbose; this can shorten it by a bit.

Conflicts:
	plugins/Dict/config.py
2015-03-17 07:58:49 +01:00
Valentin Lorentz 381e514b5c Merge pull request #1078 from GLolol/channel/allow-devoice-self
Channel: allow devoicing self
2015-03-16 23:19:20 +01:00
James Lu d76b5049ac Channel: update tests 2015-03-13 23:37:29 -07:00
James Lu 172f7bdd63 Channel: allow devoicing self
Voice almost always requires halfop or above to set, and since having (half)op gives greater access than voice, I don't see the benefit in restricting this when it won't make a difference anyways.
2015-03-11 15:51:47 -07:00
Valentin Lorentz 530c24604d Merge pull request #1076 from GLolol/patch-1
PluginDownloader: update Iota's repository URL
2015-03-10 08:32:43 +01:00
James Lu 47722f4e6c PluginDownloader: update Iota's repository URL 2015-03-09 16:53:56 -07:00
James Lu 7757f3a1b4 Channel: allow both admins and #channel,ops to use 'part' 2015-03-06 12:50:59 -05:00
Valentin Lorentz 18bafc725f Merge branch 'testing' of github.com:ProgVal/Limnoria into testing 2015-03-02 20:35:56 +00:00
Valentin Lorentz d04af4a8cb Merge pull request #1067 from GLolol/shrinkurl/remove-ln-s
ShrinkUrl: Remove ln (Closes #618).
2015-02-28 23:44:42 +01:00
James Lu dae81168d3 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...
2015-02-28 09:52:42 -08:00
James Lu e3079f82b2 Merge remote-tracking branch 'upstream/testing' into channel/autorejoin-delay
Conflicts:
	plugins/Channel/config.py
2015-02-27 23:37:11 -08:00
James Lu f11d3162ae Merge remote-tracking branch 'upstream/testing' into channel/part+cycle
Conflicts:
	plugins/Admin/config.py
	plugins/Admin/plugin.py
2015-02-27 18:55:20 -08:00
James Lu f3107a928f Channel: allow adding an auto-rejoin delay via supybot.plugins.Channel.rejoinDelay
Closes #1011.
2015-02-27 18:45:37 -08:00
James Lu 32988ee3a3 Channel.cycle: allow specifying part message + defaults to plugins.Channel.partMsg
Closes #1062.
2015-02-27 18:27:58 -08:00
James Lu a67fb94875 Move 'part' command from Admin to Channel and require #channel,op instead of admin
Closes #79.
2015-02-27 18:12:52 -08:00
Valentin Lorentz 9076194009 Merge pull request #1041 from GLolol/admin/configurable-partmsg
Admin/Owner: substitute $version in quit and part messages (also make part messages configurable)
2015-02-27 13:15:25 +01:00
Johannes Löthberg d4aa4362e5 dictclient: Remove whitespace at end of lines 2015-02-21 20:08:13 +01:00
Johannes Löthberg 1654bfca0c dictclient: Encode as utf-8 instead of ASCII
dict.org has dictionaries with words containing non-ASCII characters.
2015-02-21 20:08:13 +01:00
James Lu 5f23855d27 oops how do i english 2015-02-20 22:20:49 -08:00
James Lu 41effcea13 Network.whois: simplify message when user isn't on any public channels
The current message ("xyz isn't on any non-secret channels or is using a channel-list hiding umode.") is long and awkwardly worded. 

This also removes an extra period from showing up at the end of the output.
2015-02-20 16:50:40 -08:00
Valentin Lorentz 1264573b34 Merge remote-tracking branch 'kyrias/say-command' into testing 2015-02-14 13:38:56 +01:00
Johannes Löthberg 75288193ad QuoteGrabs: Add say command
The say command just returns the text of the grab, so you can get just
the quote from a specific qid.
2015-02-14 13:15:13 +01:00
Valentin Lorentz 981476d6d5 String: Return raw bytes when decode returns binary data. 2015-02-11 14:09:16 +00:00