Valentin Lorentz
677f7fdd6f
irclib: Prevent crash if 324 or 329 is not received after any other post-join messages.
2013-10-10 14:10:06 +00:00
Valentin Lorentz
359d3c633d
registry: Make subvalues inherit privacy. Closes GH-519.
2013-10-06 14:26:03 +00:00
Valentin Lorentz
657b76d174
Fix merge.
2013-09-22 20:29:52 +02:00
Valentin Lorentz
990b911c06
Merge remote-tracking branch 'supybot/master' into testing
...
Conflicts:
src/callbacks.py
src/ircdb.py
2013-09-22 20:16:20 +02:00
James McCoy
6361b1e856
ircdb: Deduplicate hostmasks in IrcUser.addAuth
...
If addAuth is called with a hostmask that already exists (exactly, not
just equivalent patterns) in self.auth, remove the entry for the old
authentication. This essentially updates the timeout for the hostmask.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-09-22 11:13:52 -04:00
Valentin Lorentz
4e2962b39e
Fix error when writing hostmask-collision error message.
2013-09-17 13:32:52 +00:00
James McCoy
4bc549c1ed
Prevent exception when replying with a genericNoCapability error
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-08-31 23:04:38 -04:00
Valentin Lorentz
01a6ed6540
Fix use of rsplit for IPv6 addresses.
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-08-26 21:37:12 -04:00
Valentin Lorentz
40675ffdfa
Merge remote-tracking branch 'supybot/master' into testing
...
Conflicts:
plugins/Admin/plugin.py
plugins/BadWords/config.py
plugins/Filter/plugin.py
plugins/Google/plugin.py
plugins/Math/plugin.py
plugins/Misc/plugin.py
plugins/Note/plugin.py
plugins/RSS/plugin.py
plugins/Seen/test.py
plugins/ShrinkUrl/config.py
plugins/ShrinkUrl/plugin.py
plugins/ShrinkUrl/test.py
plugins/Status/plugin.py
plugins/String/config.py
plugins/String/plugin.py
plugins/Time/plugin.py
plugins/Todo/plugin.py
plugins/Web/plugin.py
plugins/__init__.py
scripts/supybot-botchk
setup.py
src/__init__.py
src/callbacks.py
src/commands.py
src/conf.py
src/drivers/Socket.py
src/ircdb.py
src/irclib.py
src/ircutils.py
src/questions.py
src/registry.py
src/schedule.py
src/test.py
src/utils/file.py
src/utils/gen.py
src/utils/net.py
src/utils/web.py
src/world.py
2013-08-24 11:28:29 +02:00
James McCoy
ea7f1f8419
Socket: Match the expected API of reconnect
...
driver.reconnect(wait=True) should flag a driver to reconnect, but not
immediately. The Socket driver lost its handling of this flag in
8730832e
.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-08-24 00:29:16 -04:00
James McCoy
e7d0bfd2d0
commands: Handle OverflowError in _int
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-08-23 23:36:44 -04:00
James McCoy
333067c151
Provide a default help message for commands without help.
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-08-23 22:57:13 -04:00
James McCoy
e421722960
Fix crash if a custom error message is provided to somethingWithoutSpaces
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-08-23 22:06:07 -04:00
Valentin Lorentz
960e1da61c
commands.py: Fix error message of getSomethingWithoutSpaces.
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-08-23 00:29:11 -04:00
James McCoy
5b329df6f0
Socket: Try all resolved addresses before scheduling a reconnect
...
Instead of assuming the first address returned from getaddrinfo can be
reached, try each one in turn until a connection is established.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-08-22 23:43:09 -04:00
James McCoy
88e4f73777
getSocket: Use returned family to create the socket
...
The existing code was parsing the passed in host to determine what type
of socket family to create. getaddrinfo already provides this for us,
so there's no need to perform our own, potentially buggy, parsing.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2013-08-22 23:40:28 -04:00
Valentin Lorentz
e3acc03fd6
Another fix for b46a0dd6a2
.
2013-08-17 19:27:52 +02:00
Valentin Lorentz
f3ecc33678
Fix commit b46a0dd
(breaks tests for Alias and Aka).
2013-08-17 17:08:55 +02:00
Kill Your TV
b46a0dd6a2
Unicode fixes for python 2.x
...
These changes have been tested with Python 3.2.3 and Python 2.7.5.
2013-08-17 14:12:10 +00:00
Valentin Lorentz
dd37f8dd3f
Socket: Forward DNS queries via the socks proxy (if any).
2013-08-17 15:47:39 +02:00
Valentin Lorentz
b375e7dfb2
commands.py: Fix crash if a custom error message is provided to somethingWithoutSpaces (bug introduced in 29dc1438a0
).
2013-08-15 22:25:36 +02:00
Valentin Lorentz
8d7b06efd1
utils.str.format: Replace %u with '' instead of '<>' if URL is empty.
2013-08-13 19:19:54 +00:00
Valentin Lorentz
3a5c4c3ddd
Add class attribute callbacks.Commands.pre_command_callbacks.
2013-08-12 21:48:56 +02:00
Valentin Lorentz
ebde072f39
Add explicit/helpful error message about how to solve the multiprocessing 'Permission denied' issue.
2013-08-12 19:08:31 +02:00
Valentin Lorentz
1e050d7fa8
utils/str.py: Use already existing function utils.gen.timeElapsed instead of redundant one.
2013-08-11 12:08:01 +02:00
Valentin Lorentz
8b4b45ecf0
utils/str.py: Add the %T (Time delta) argument type.
2013-08-11 12:03:41 +02:00
Valentin Lorentz
1ee8bc3480
Fix bug that caused commands like '@google google google google translate' to be valid. Closes GH-19.
2013-08-10 15:22:47 +02:00
Valentin Lorentz
c23f25545f
Fix core tests for Python 3 (actually imported + fixes).
2013-08-10 15:18:04 +02:00
Valentin Lorentz
536ec37037
commands.py: raise the exception instead of returning is if --disable-multiprocessing is given.
2013-08-09 17:48:53 +02:00
Valentin Lorentz
573d4a0158
Silence errors in Socket driver if connecting failed (name resolution, ...).
2013-08-09 12:59:42 +02:00
Valentin Lorentz
9288b16cd2
Fix 918b8a3c01
on Windows.
2013-08-09 12:21:24 +02:00
Valentin Lorentz
918b8a3c01
commands.py: Add heap_size argument to process().
2013-08-09 12:16:24 +02:00
Valentin Lorentz
6a4750015e
schedule: Add the 'count' argument.
2013-08-04 09:16:07 +02:00
Valentin Lorentz
7c30936ee1
Merge branch 'aka' into testing
2013-08-01 10:48:42 +02:00
Valentin Lorentz
b4eb4bfd65
Remove randomly failing assertions (race condition with environnements cleaning?)
2013-07-28 16:56:22 +02:00
Valentin Lorentz
eb15e1934c
Fix typo in conf.py.
2013-07-26 09:23:57 +00:00
Valentin Lorentz
329187c78c
Add sqlalchemy as a valid database backend.
2013-07-23 20:58:43 +02:00
Valentin Lorentz
29dc1438a0
commands.py: Fix error message of getSomethingWithoutSpaces.
2013-07-16 20:20:08 +00:00
Valentin Lorentz
21144f7c9c
Don't send JOIN on connection if there is no channels to join.
2013-07-14 09:44:34 +02:00
Valentin Lorentz
38bab185a9
Remove Python2.4-specific code.
2013-07-13 17:28:21 +02:00
Valentin Lorentz
9bfec720f5
Fix traceback if bot is kicked immediately after joining a channel.
2013-07-13 12:01:53 +02:00
Valentin Lorentz
4a265a6ce9
Enhance representation of InsensitivePreservingDict objects.
2013-07-13 11:20:02 +02:00
Valentin Lorentz
f22f0bb4b6
Make log.firewall display the callback name in any case.
2013-07-11 10:07:11 +02:00
Valentin Lorentz
771b739af7
utils.web.getEncoding: use <meta charset /> if available.
2013-07-09 12:40:42 +00:00
Valentin Lorentz
b4402b28ed
utils.web: Rename get_encoding to getEncoding for consistency.
2013-07-09 12:05:51 +00:00
Valentin Lorentz
d4df5de91d
utils.web: Add function get_encoding.
2013-07-09 12:02:25 +00:00
Valentin Lorentz
addb754c68
registry.py: Use %r instead of %s in for formating __nonExistentEntry errors.
2013-07-08 22:51:16 +02:00
Valentin Lorentz
4fffdbccd2
httpserver: Firewall do* methods.
2013-07-07 13:26:13 +02:00
Valentin Lorentz
eff7d5e671
Fix httpserver for Python 3.
2013-07-07 13:24:26 +02:00
Valentin Lorentz
0514a64209
Fix use of rsplit for IPv6 addresses.
2013-07-02 13:18:57 +02:00
Valentin Lorentz
ed193e7cc7
io.StringIO has no attribute 'reset'.
2013-06-29 23:19:38 +02:00
Valentin Lorentz
46b89cfc0e
Fix crash when --daemon is given (Python 3).
2013-06-29 13:58:41 +02:00
Valentin Lorentz
dce3c97fe4
Socket: Only catch select.error if it is an interupted system call.
2013-06-29 13:44:42 +02:00
Valentin Lorentz
75654a4544
Socket: Prevent crash caused when a signal is received while using select. Closes GH-477.
2013-06-29 12:40:45 +02:00
Carsten Teibes
7129dc2697
Switch to charade, which is better maintained and works under 2 and 3
2013-06-27 19:36:44 +02:00
Milos Petkovic
be6116f958
Reset network uptime on reconnection as well
2013-06-17 08:09:16 +02:00
Valentin Lorentz
774158f2ec
utils/web.py: Fix compatibility with Python 3.
2013-06-17 04:10:29 +00:00
Valentin Lorentz
cca1e6dba5
utils/web.py: Add some 'try' statements to make decoding as error-permissive as possible.
2013-06-13 17:22:33 +00:00
Valentin Lorentz
2eec980c8e
utils/web.py: Python 3 should use decode() only if it is a bytes object.
2013-06-13 04:22:20 +00:00
Valentin Lorentz
a82ad9cb1a
utils/web.py: Properly import chardet.
2013-06-12 17:38:50 +00:00
Valentin Lorentz
e24ab4501d
Fix bug with Python 3.3 (?)
2013-06-06 05:49:25 +00:00
Valentin Lorentz
43563bcc1c
core & Factoids: Allow commands to disable doc-availability checks for programmatically setting it.
2013-06-01 17:13:55 +02:00
Valentin Lorentz
f82a7c7e17
Issue error message at plugin load if a command has no docstring.
2013-06-01 16:35:47 +02:00
Valentin Lorentz
8aba15807d
Socket: Assert 'irc' is not None.
2013-06-01 12:08:12 +02:00
Valentin Lorentz
74db03177f
httpserver: Explicitely define the charset.
2013-06-01 10:32:36 +02:00
Valentin Lorentz
1a71fa2d81
httpserver: Fix Content-type of default.css which caused the stylesheet not to be applied.
2013-06-01 10:11:54 +02:00
Valentin Lorentz
792df99688
httpserver: Fix design.
2013-05-31 17:55:56 +02:00
Valentin Lorentz
b2d5544ccf
httpserver: Fix restarting the server once a plugin has been unloaded and loaded back.
2013-05-31 17:55:35 +02:00
Valentin Lorentz
2016983d35
Add supybot.utils.net.getAddressFromHostname() and improve Socket driver to try successively all IP addresses.
2013-05-31 17:21:10 +02:00
Valentin Lorentz
9ea1019970
httpserver: Fix issue with Python 2 if no favicon is set.
2013-05-31 16:12:49 +02:00
Valentin Lorentz
cefd91d4f1
Fix encoding issues with Alias containing non-ascii characters.
2013-05-31 15:42:57 +02:00
Valentin Lorentz
ad25f17639
RSS: Add Python 3 support.
2013-05-29 15:16:23 +02:00
Valentin Lorentz
2d4914bc99
Merge branch 'gpgauth' into testing
...
Conflicts:
src/ircdb.py
2013-05-24 17:20:27 +02:00
Valentin Lorentz
ba6e2fff6f
ircmsgs.IrcMsg: Display args in case of AssertionError.
2013-05-21 19:38:55 +02:00
Valentin Lorentz
c56f26b91d
Wrap now internationalizes docstrings.
2013-05-20 17:52:41 +02:00
Valentin Lorentz
66025cf7e4
New syntax for wrap(). Now supports being used as a Python decorator with arguments.
...
For example, in Admin, "join = wrap(join, ['validChannel', additional('something')])" could become "@wrap(['validChannel', additional('something')])".
2013-05-20 17:40:04 +02:00
Valentin Lorentz
9e1cf727e3
Network: Add @whowas. Closes GH-227.
2013-05-18 14:46:58 +02:00
Valentin Lorentz
6493be1f13
httpserver: Add doctype.
2013-05-17 20:13:46 +02:00
Valentin Lorentz
1090c4623f
Factoids: Add supybot.plugins.Factoids.requireVoice. Closes GH-378.
2013-05-17 17:47:43 +02:00
Valentin Lorentz
ed62c9efb1
commands.py: Rename 'isGranted' to 'haveHalfop+' and add 'haveVoice+'.
2013-05-17 17:36:11 +02:00
Valentin Lorentz
f42023bf19
Fix SupyTestCase.assert* with Python 2.6.
2013-05-15 18:52:56 +02:00
Valentin Lorentz
04b7d9eeda
Fix compatibility with Python 3.3.1.
2013-05-14 19:59:19 +02:00
Valentin Lorentz
6ffcf122a7
Remove code specific to Python 2.{3,4,5}.
2013-05-13 15:27:26 +02:00
Valentin Lorentz
8d95a424b0
Fix fetch of RSS feeds containing unicode.
2013-05-13 10:51:24 +02:00
Valentin Lorentz
3935152d65
Fix 'dictionary changed size during iteration'.
2013-05-10 23:55:48 +02:00
Valentin Lorentz
cb6139e110
Fix typo.
2013-05-10 23:22:23 +02:00
Valentin Lorentz
3b179ec304
Apparently, Python 3.3 does not like sys.modules to be reassigned.
2013-05-10 23:20:02 +02:00
Valentin Lorentz
9553798c90
sys.modules is a dict, not a list (again).
2013-05-10 22:23:57 +02:00
Valentin Lorentz
ee1d8731c9
sys.modules is a dict, not a list.
2013-05-10 22:08:59 +02:00
Valentin Lorentz
e787f3343e
Fix typo.
2013-05-10 22:03:15 +02:00
Valentin Lorentz
3570acff72
Fix plugin load if previous (re)load failed.
2013-05-10 17:55:56 +02:00
Valentin Lorentz
8f6063135e
Add supybot.abuse.flood.interval.
2013-05-09 09:40:55 +02:00
Valentin Lorentz
c133d973aa
Revert "Fix typo."
...
This reverts commit 390af5d049
.
Conflicts:
locales/fr.po
2013-05-01 05:53:20 +00:00
Valentin Lorentz
caf255afd9
Internationalize string-handling functions in src/utils/.
...
This commit was supposed to be before the two previous ones, but I messed up with Git.
2013-04-21 16:00:31 +02:00
Valentin Lorentz
d8df5cc650
Misc: Fix ignoring of user flooding with invalid commands in private.
2013-04-20 08:19:16 +00:00
Valentin Lorentz
390af5d049
Fix typo.
2013-04-18 07:45:08 +00:00
Valentin Lorentz
d13015dfb5
Fix tests with Travis.
2013-04-11 19:09:50 +02:00
Valentin Lorentz
7a71ecb9f9
Misc: Add supybot.plugins.Misc.mores.
2013-04-10 17:26:55 +02:00
Valentin Lorentz
f4bf62ab6b
ircmsgs: Fix typo.
2013-04-06 16:04:56 +00:00
Valentin Lorentz
856a65c9f6
Add irc.state.ircd.
2013-03-31 21:22:59 +02:00
Valentin Lorentz
8e1929d1b4
Fix previous commit.
2013-03-27 17:01:42 +01:00
Valentin Lorentz
23e84cfff9
Join all channels in one message when connecting.
2013-03-27 16:55:45 +01:00
Valentin Lorentz
ddd8314884
Socket: Close the socket more nicely.
2013-03-27 16:32:26 +01:00
Valentin Lorentz
916a85c965
core: Various Python 3 compatibility fixes.
2013-03-25 19:15:08 +01:00
Valentin Lorentz
9a23ba1cfa
Fix traceback if supybot.errors.noCapability does not contain %s.
2013-03-24 07:51:55 +00:00
Valentin Lorentz
574d73c14e
Fix RFC-compliance of privmsgs/notices/kicks/whois/... with list of nicks/channels are argument. Closes GH-462.
2013-03-23 11:06:08 +01:00
Valentin Lorentz
5209cbc402
Prevent crash of httpserver in some requests. (Why? No idea.)
2013-03-21 17:31:53 +00:00
Valentin Lorentz
cac96aa5f7
Socket: Fix race condition in SSL handshakes.
2013-03-21 17:21:20 +00:00
Valentin Lorentz
881eb9f771
Fix commit b90bd4b9d9
.
2013-03-12 19:36:08 +01:00
Valentin Lorentz
24252bc69f
httpserver: Enhance design + customable CSS. Closes GH-404.
2013-03-11 19:44:26 +01:00
Valentin Lorentz
c4b9c80198
httpserver: Use new algorithm to load default templates.
2013-03-11 16:38:21 +01:00
Valentin Lorentz
83dd3a2fe8
Create config variable supybot.directories.data.web, and move robots.txt to this directory.
2013-03-09 20:52:35 +01:00
Valentin Lorentz
d714909576
Use non-sexist language in strings and comments.
2013-03-08 20:34:31 +01:00
Valentin Lorentz
be04677995
Fix typo in a comment.
2013-03-08 20:26:50 +01:00
Valentin Lorentz
8444e76468
Fix decoding of strings in ircmsgs. Thanks to monodemono.
2013-02-25 11:37:15 +00:00
Valentin Lorentz
7f2d38b885
Socket: Fix compatibility with Python 3.1.
2013-02-22 20:43:27 +00:00
Valentin Lorentz
b90bd4b9d9
Fix previous commit (again).
2013-02-09 19:37:10 +01:00
Valentin Lorentz
c918074b92
Fix previous commit.
2013-02-09 19:16:23 +01:00
Valentin Lorentz
48ba761644
Decode unicode string passed to ircmsgs.*. Closes GH-448.
2013-02-09 18:55:02 +01:00
Valentin Lorentz
4754df2dbd
Merge pull request #446 from nyuszika7h/testing
...
Fix SASL on py3k + minor change in supybot-botchk
2013-02-07 12:09:33 -08:00
Valentin Lorentz
ef08ea1930
Fix debug logging in some (weird) cases.
2013-02-07 18:34:29 +01:00
nyuszika7h
15796454cf
Merge remote-tracking branch 'progval/testing' into testing
2013-02-05 18:42:26 +01:00
nyuszika7h
e491e14bc3
Final fix for SASL and py3k
2013-02-03 18:50:20 +01:00
Valentin Lorentz
d753df9d0c
Print extra debug data in the logs.
2013-02-03 17:46:39 +01:00
nyuszika7h
4170a873b2
Fix previous commit (yet again)
2013-02-03 15:58:45 +01:00
nyuszika7h
66e46e5143
Fix previous commit (again)
2013-02-03 15:30:28 +01:00
nyuszika7h
4b10ea3329
Fix previous commit
2013-02-03 15:14:03 +01:00
nyuszika7h
f1198fb4e8
irclib.py: Fix SASL on py3k
2013-02-03 15:08:36 +01:00
Valentin Lorentz
20ad495483
src/test.py: Why would a test server create a socket?
2013-02-02 19:51:47 +01:00
Valentin Lorentz
13a633eea4
Prevent traceback if supybot.replies.genericNoCapability is empty.
2013-02-02 19:47:14 +01:00
Valentin Lorentz
05d23d1a06
Remove unreachable code.
2013-02-02 19:47:05 +01:00
Valentin Lorentz
77f614be86
utils.web.HtmlToText: Convert html entities.
2013-02-01 20:50:46 +01:00
Valentin Lorentz
fa36e48075
core: Document irclib.Irc.addCallback.
2013-02-01 20:38:53 +01:00
Valentin Lorentz
75f19a9f50
core: Add docstring to commands.wrap.
2013-02-01 20:38:18 +01:00
Valentin Lorentz
39b534246f
Fix http server's tests.
2013-02-01 20:38:01 +01:00
Valentin Lorentz
b589c2dc2b
core: Document IrcMsg tags.
2013-01-31 20:48:16 +01:00
Valentin Lorentz
9507bf1655
Remove non-ascii char (again).
2013-01-31 20:47:57 +01:00
Valentin Lorentz
bab69bb31e
Remove useless non-ascii character.
2013-01-31 19:24:05 +01:00
Valentin Lorentz
7588472f36
Fix 'Transport endpoint not connected' errors. Closes GH-437.
2013-01-31 16:47:17 +01:00
Valentin Lorentz
2ace534bdb
utils.str: Prevent issue with tokens like '\x80' in Python 3.
2013-01-23 15:48:24 +01:00
Valentin Lorentz
6c0497d34e
Fix traceback when utils.str.dqrepr is given a unicode object.
2013-01-23 13:53:37 +01:00
Valentin Lorentz
30c5519acb
Final encoding fix. It now work on IRC and unit tests pass, both with Python 2 & 3.
2013-01-22 21:02:04 +01:00
Valentin Lorentz
a4a595b39a
Partial fix of encoding handling.
...
This fixes mostly everything, except a little bit from the test framework. I'm just saving this in case my computer or I is destroyed in an alien invasion, because this commit is worth hours of debugging.
2013-01-22 20:35:11 +01:00
Valentin Lorentz
164d85d9fe
core: Fix the test framework after update of the HTTP server.
2013-01-21 20:20:26 +01:00
Valentin Lorentz
84a87e4307
Merge pull request #442 from Athemis/master
...
Follow-up of pull-request #440
2013-01-20 11:03:19 -08:00
Alexander Ralph Michael Minges
bbdd55bea2
Add fallback decoding if chardet fails to guess the correct encoding
2013-01-20 17:07:58 +01:00
Valentin Lorentz
6d15d263f0
Merge remote-tracking branch 'athemis/master' into testing
2013-01-20 15:16:53 +01:00
Valentin Lorentz
d809db2cc6
Fix bold of 'getpass' question. Closes GH-426.
2013-01-20 12:39:36 +01:00
Alexander Ralph Michael Minges
4316e5936e
Use chardet to guess the character encoding when on python3
2013-01-15 20:55:42 +01:00
Valentin Lorentz
c1f19b3353
Fix locales path resolution with Python 3.
2013-01-11 18:29:04 +01:00
Valentin Lorentz
726558115d
core: Prevent infinite recursion with Pypy.
2013-01-06 20:24:02 +01:00
Valentin Lorentz
a5292ae3b4
core: Fix issue with Python 2.6 (cStringIO is buggy).
2013-01-06 11:34:32 +01:00
Valentin Lorentz
52e91d5f9c
src/test.py: Implement assertIn for old Python versions.
2013-01-05 21:16:30 +01:00
Valentin Lorentz
2bcffdf523
src/test.py: Implement assertIs for old Python versions.
2013-01-05 21:13:36 +01:00
Valentin Lorentz
fdb7a764d4
core & Filter & Owner: Fix Python 2.6 compatibibility.
2013-01-05 20:51:36 +01:00
Valentin Lorentz
e3e2b23215
src/test.py: Encode strings only if they are not already using unicode.
2013-01-05 20:04:46 +01:00
Valentin Lorentz
bc7051e515
core: Fix tests of plugins using user id for checking capabilities.
2013-01-05 19:06:49 +01:00
Valentin Lorentz
7edbb7b6c3
core: Fix tests using invalid hostmask.
2013-01-05 17:27:20 +01:00
Valentin Lorentz
fe39d35b2f
core: Fix normalizeWhitespace handling of new lines.
2013-01-04 22:28:44 +01:00
Valentin Lorentz
29e13a9061
Fix 'more' wrapping for long words; bug introduced in 169392e5
.
2013-01-04 22:16:08 +01:00
Valentin Lorentz
e86768b61a
Misc: Fix testTell.
2013-01-04 22:01:36 +01:00
Valentin Lorentz
28dc3dd3ac
core: Fix normalizeWhitespace.
2013-01-04 20:25:25 +01:00
Valentin Lorentz
3dba9088b0
Merge remote-tracking branch 'supybot/master' into testing
...
Conflicts:
INSTALL
plugins/ChannelLogger/README.txt
plugins/ChannelStats/README.txt
plugins/Google/plugin.py
plugins/Google/test.py
plugins/Plugin/test.py
plugins/Web/test.py
setup.py
src/callbacks.py
src/ircdb.py
src/irclib.py
src/utils/str.py
test/test_irclib.py
2013-01-01 21:11:24 +01:00
James McCoy
295f9b1f0d
Make utils.str.soundex perform better when length is large
...
Closes: Sf patch#148
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-12-31 17:29:02 -05:00
Valentin Lorentz
79eeb8eb95
Revert "irclib: Apply changes to supybot.protocols.irc.maxHistoryLength immediately."
...
This reverts commit 1d2eefe880
.
IrcState instances are created more than five times a second! Imagine how much
memory is used (hint: 300MB five minutes after startup).
We should first try to reduce this amount.
2012-12-27 16:06:01 +00:00
Valentin Lorentz
1d2eefe880
irclib: Apply changes to supybot.protocols.irc.maxHistoryLength immediately.
2012-12-27 12:24:24 +00:00
Valentin Lorentz
cab1830140
utils.structures: Prevent a RingBuffer from being bigger than the new size, when calling resize().
2012-12-27 12:22:14 +00:00
Valentin Lorentz
7b3ef56116
Fix mysterious bug when connecting/disconnecting.
2012-12-26 19:58:39 +01:00
Valentin Lorentz
6cbc6a14dd
Rename all 'locale' directories to 'locales'.
...
Firstly, these directories contains more than one locale. Secondly, it conflicts with the 'locale' python module.
2012-12-26 15:43:35 +01:00
Valentin Lorentz
84148988b3
Fix tests broken by 6a06ca991
.
2012-12-26 15:37:52 +01:00
Valentin Lorentz
790f0eea35
socket: Fix compatibility issue with Python 3 (introduced in 8cf094a
).
2012-12-26 15:03:57 +01:00
Valentin Lorentz
6a06ca9911
core: Initialize list of bans when joining a channel.
2012-12-23 17:19:25 +01:00
Valentin Lorentz
097ea23dfc
Fix handling of PluginNotFoundException in i18n.
2012-12-22 00:06:26 +00:00
Valentin Lorentz
d58ad0c86f
Reload translation of command helps when language changes.
2012-12-21 20:08:34 +01:00
Valentin Lorentz
989c674c58
Reset translation dict when reloading a locale.
2012-12-21 19:19:03 +01:00
Valentin Lorentz
30c56ae19f
Add support for arguments to addPeriodicEvent callbacks.
2012-12-19 19:48:46 +01:00
Valentin Lorentz
97b48abaa2
i18n: Initialize translations in __init__.
2012-12-19 17:04:39 +00:00
Daniel Folkinshteyn
620a90f4a7
core: make network.channels and channel keys private by default. Otherwise these can reveal secret information.
2012-12-18 18:37:11 +01:00
Valentin Lorentz
72bc227e1b
registry: Fix Json unserialization.
2012-12-15 22:00:23 +01:00
Valentin Lorentz
ad3f58efc2
Add the content of the new value of a config var, when it is not compatible with this config type.
2012-12-12 18:47:03 +01:00
Valentin Lorentz
d9f7e0e818
Add editable() method to registry.Json.
2012-12-08 21:13:54 +01:00
Valentin Lorentz
d8bd1f6f92
Add registry.Json.
2012-12-08 20:59:36 +01:00
Valentin Lorentz
4e8c35dd0c
Add context() method to registry.Value objects. Closes GH-430.
...
This method returns a context objet, for use with the 'with' statement.
2012-12-08 20:05:51 +01:00
Valentin Lorentz
69c60ca1f5
Remove debug output.
2012-12-08 05:16:00 +00:00
Valentin Lorentz
8cf094a628
Socket: Use select.select() instead of checking sockets one by one. Closes GH-431. Closes GH-420.
2012-12-07 21:41:50 +01:00
Valentin Lorentz
7d22d3dc36
Prevent NameError if ssl module can't be imported.
2012-12-07 01:48:05 +00:00
Valentin Lorentz
93586d71f4
Add support for extended banmasks. Closes GH-105.
2012-12-02 19:04:48 +01:00
Valentin Lorentz
d9f2235aed
callbacks.py: Fix error with commands like @echo "¡".
2012-11-07 19:20:26 +01:00
Valentin Lorentz
25855e5547
Fix crash when loading user with two nicks or more.
2012-11-07 19:00:41 +01:00
Daniel Folkinshteyn
910ad6dd62
core: make network.channels and channel keys private by default. Otherwise these can reveal secret information.
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-11-04 19:43:36 -05:00
Valentin Lorentz
5f1c21c644
Remove temporary files.
2012-11-04 01:29:37 +01:00
Valentin Lorentz
e9755a6486
Add fix missing in previous commit.
2012-11-04 01:28:24 +01:00
Valentin Lorentz
ac13d09511
conf.py: Prevent traceback if server address is an IPv6 address.
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-11-03 14:48:16 -04:00
Valentin Lorentz
59d6d4da03
commands.py: Fix name conflict.
2012-10-29 20:16:08 +01:00
Valentin Lorentz
fba70d15bc
Add configuration variable conf.supybot.capabilities.private.
...
This variable is a list of capabilities that are considered as 'private',
ie. the bot won't tell anyone but admins that a user has it, nor will the
bot give a list of users with this capability.
2012-10-29 20:15:14 +01:00
Valentin Lorentz
929090c279
conf.py: Prevent traceback if server address is an IPv6 address.
2012-10-27 17:59:05 +02:00
Valentin Lorentz
8062d9592c
Change the minimal number of non-wildcard characters in hostmask from 8 to 3. Closes GH-276.
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-24 01:36:19 -04:00
James McCoy
c774be3ea6
commands: Add process and regexp_wrapper to __all__
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-24 00:23:25 -04:00
James McCoy
90b7f3cd4e
utils.web: Simplify getUrlFd by using standard parse methods
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-23 17:06:30 -04:00
Valentin Lorentz
85eb0b4b0d
Fix 3a78300971
.
2012-10-23 16:15:13 +00:00
James McCoy
6ab807be43
utils.net: Use _ipAddr and _domain from utils.web to define emailRe
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-20 19:43:11 -04:00
Valentin Lorentz
db3746d122
Add support for authentication scheme.
...
This commit closes http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690879
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-20 19:42:15 -04:00
Valentin Lorentz
7d87d422e1
Fix detection of .42 domains
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-20 19:15:05 -04:00
Daniel Folkinshteyn
dfdfd00b04
core: make sure owner is never ignored. also simplify the logic flow in ignore checking.
...
Thanks m4v for the patch!
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-20 15:11:23 -04:00
Daniel Folkinshteyn
18ec61842c
Secure some more commands which take a regexp from untrusted user input.
...
Namely todo.search, note.search, dunno.search.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-20 15:06:43 -04:00
Valentin Lorentz
3a78300971
Add support for authentication scheme.
...
This commit closes http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690879
2012-10-20 20:23:32 +02:00
Valentin Lorentz
d3da0c2efc
commands.py: Add 'channelOrGlobal' converter.
2012-10-18 19:30:35 +02:00
Daniel Folkinshteyn
6a9af819a3
src/commands.py: make subprocesses raise an error on timeout, rather than return a string
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-15 22:14:15 -04:00
Daniel Folkinshteyn
f310350335
Web: add 'timeout' config for web fetch, default 5 sec.
...
Otherwise, when a site would take a long time to respond, the thread would hang for quite a while.
also needed to mod src/utils/web.py to take the timeout arg.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-15 22:10:56 -04:00
Daniel Folkinshteyn
a5ec33adeb
Make plugin loading/reloading case-insensitive.
...
Since load/reload was the only place where case mattered for plugins, and it tripped up
a lot of new users, this should be a nice bit of usability improvement.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-15 21:51:00 -04:00
Daniel Folkinshteyn
9fc7ec28b4
Fix error handling for subprocesses.
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-15 21:44:04 -04:00
Daniel Folkinshteyn
141b120a9c
commands.process: return immediately when terminating process, without having to deal with the queue.
...
otherwise, we have to block for $smalldelay between putting and getting the item, since queue putting is not instantaneous
and sometimes we would get 'nothing returned' instead of the timeout message.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-15 21:32:54 -04:00
Daniel Folkinshteyn
7f98aa7105
Some improvements to the commands.process function - better process naming and informational output.
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-15 21:28:41 -04:00
Daniel Folkinshteyn
a2985c37d6
Create a commands.process function which runs a function inside a separate process.
...
This is the only way to limit the execution time of a possibly long-running python statement.
Use this on String.re, due to the possibility of pathologically long re matching in python.
This allows us to remove the 'trusted-only' restriction on string.re.
In the future, this should probably be used in other places that take user-supplied regexps,
such as 'misc last --regexp', for example, as well as other potentially long-running tasks
that can block the bot.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-15 21:19:34 -04:00
Daniel Folkinshteyn
6025f7364c
core: force inet_aton argument to string to prevent occasional error on reconnect.
...
it /should/ always be a string anyway, but sometimes things break with
a TypeError that it is an int instead of the expected string and hangs
up the bot.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-14 12:21:56 -04:00
Valentin Lorentz
6b881d6509
Socket driver: Apply supybot.drivers.poll as soon as modified (do not require reconnect).
2012-10-10 19:39:28 +02:00
Valentin Lorentz
42957a6a69
Socket driver: Fix typo.
2012-10-07 13:55:01 +02:00
Valentin Lorentz
156b3d93e1
Socket driver: Add support for Socks proxies.
2012-10-07 13:13:08 +02:00
Valentin Lorentz
364a3e50e8
src/ircmsgs.py: Assert string parameters are actually strings.
...
This prevents a plugin from sending another object and messing with outFilter methods of other plugins.
2012-10-06 21:12:40 +00:00
James McCoy
0b81b170ca
Indicate supybot.networks.$network.servers/channels are space-separated lists in their help
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-10-04 21:41:00 -04:00
Valentin Lorentz
784b8c37f8
httpserver: Add support for multiple hosts and IPv6. Closes GH-387.
2012-09-30 18:54:30 +02:00
Valentin Lorentz
c77c513e24
httpserver.py: Replace weird space by regular one.
2012-09-19 18:59:44 +00:00
James McCoy
cef93a6cfd
Use relative imports for all packages under the supybot namespace
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-09-17 22:12:11 -04:00
skizzhg
84931cd0ea
conf.py: Fix typo.
2012-09-10 18:10:18 +02:00
Valentin Lorentz
f63148849c
src/test.py: Fix encoding issues with assertResponse being given an utf8 string.
2012-09-10 17:04:57 +02:00
James McCoy
45329fbdce
schedule: Allow arguments for scheduled functions, lock before modifying heap
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-09-08 16:02:30 -04:00
Daniel Folkinshteyn
5bb6fdcd52
core: avoid casting data to string if it is already an instance of basestring, in irc.reply.
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-09-05 20:11:53 -04:00
Valentin Lorentz
eaf6877700
httpserver: Add favicon support.
2012-09-03 10:35:54 +02:00
James McCoy
82ecf36fcd
Update my name/contact information
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-09-01 10:16:48 -04:00
James McCoy
232aa86a1e
Merge branch 'maint/0.83.4'
2012-09-01 09:13:52 -04:00
Daniel Folkinshteyn
2c051bab9f
core: force inet_aton argument to string to prevent occasional error on reconnect.
...
it /should/ always be a string anyway, but sometimes things break with
a TypeError that it is an int instead of the expected string and hangs
up the bot.
2012-08-30 11:32:48 +02:00
James McCoy
c74e8f35ab
Fix regression in parsing 004 messages
...
This was introduced in commit 4232e40e26
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-08-26 12:59:41 -04:00
Valentin Lorentz
d2ab53cd19
Fix parsing of 004 message. (Broken in d9531d2d
).
2012-08-25 20:17:15 +02:00
Valentin Lorentz
3739def69d
Merge branch 'py3k-backport' into testing
2012-08-13 13:01:58 +00:00
Valentin Lorentz
d2b33a3794
Fix compatibility with Python 2.6.
2012-08-13 13:01:50 +00:00
Valentin Lorentz
5dfba06aae
Prevent irc.replies from replying in private since fc9daa9
.
2012-08-10 13:10:14 +00:00
Valentin Lorentz
fc9daa9953
Make supybot.reply.oneToOne channel-specific.
2012-08-10 12:27:25 +00:00
Valentin Lorentz
19708c55cc
Fix typo in 5f94da8660
.
2012-08-08 19:51:11 +00:00
Valentin Lorentz
45bf9db03c
Merge branch 'py3k-backport' into testing
...
This branch provides support of Python 3 via 2to3 (without dropping
Python 2 support).
2012-08-08 21:46:29 +02:00
Valentin Lorentz
5f94da8660
Fix test.assertHelp for commands with long help (XX more messages).
2012-08-08 21:41:25 +02:00
Valentin Lorentz
e3d170d9fe
Add support for network-specific umodes.
2012-08-06 15:59:00 +02:00
Valentin Lorentz
3dc8e04195
utils.web.urlencode: Encode data into bytes.
2012-08-05 16:57:40 +02:00
Valentin Lorentz
1b6be5842f
src/cdb.py: Use 'future' division and decode/encode data from/to the disk.
2012-08-05 16:57:18 +02:00
Valentin Lorentz
535593d555
src/dbi.py: Use open() instead of file().
2012-08-05 16:56:07 +02:00
Valentin Lorentz
14200e002a
Rename cdb.open to cdb.open_db and open cdb files in binary mode.
2012-08-05 15:47:30 +02:00
Valentin Lorentz
0e450a5eff
src/callbacks.py: Use unicode_escape if running Python 3.
2012-08-05 14:22:53 +02:00
Valentin Lorentz
089be4c8a5
src/i18n.py: Use 'str' as a base class instead of 'unicode'.
2012-08-05 13:48:11 +02:00
Valentin Lorentz
041893aaf9
Socket driver: encode strings just before sending them.
2012-08-05 13:47:48 +02:00
Valentin Lorentz
306105abad
src/i18n.py: Fix encoding issue with Python 3.
2012-08-05 13:37:37 +02:00
Valentin Lorentz
f1165333e5
src/registry.py: Fix encoding issues with Python 3.
2012-08-05 13:28:16 +02:00
Valentin Lorentz
32a7da6f51
Add 2to3 fixer to process utils.gen.IterableMap correctly.
2012-08-05 12:32:57 +02:00
Valentin Lorentz
393f78c573
Use a boolean instead of hacky reference comparison in utils.iter.choice.
2012-08-05 09:59:42 +02:00
Valentin Lorentz
4ffaff0638
Don't use utils.str.chars anymore.
2012-08-05 09:54:34 +02:00
Valentin Lorentz
0c99a65afa
src/conf.py: Use classic comparison instead of str.translate.
2012-08-04 22:47:16 +02:00
Valentin Lorentz
0b7e4e5ce5
src/registry.py: Fix encoding issue with Python 3.
2012-08-04 22:46:52 +02:00
Valentin Lorentz
e89dcf867a
Remove unused import of UserDict.
2012-08-04 22:39:22 +02:00
Valentin Lorentz
fff9b837fb
Import ifilter from itertools instead of utils.iter.
2012-08-04 22:38:11 +02:00
Valentin Lorentz
1a64f1052a
Use MultipleReplace for utils.str.soundex.
2012-08-04 22:36:40 +02:00
Valentin Lorentz
9edda206ea
Remove utils.str.chars.
2012-08-04 22:33:08 +02:00
Valentin Lorentz
3838ab5314
Remove unused imports of new.
2012-08-04 22:31:59 +02:00
Valentin Lorentz
ced2e7b72d
Implement seed, tell, and flush to AtomicFile.
2012-08-04 21:24:17 +02:00
Valentin Lorentz
7f0e1115b5
Make world.py py3k-friendly.
2012-08-04 18:06:49 +02:00
Valentin Lorentz
c4dfa55d65
Use HTMLParser instead of deprecated sgmllib in utils.web.
2012-08-04 18:02:45 +02:00
Valentin Lorentz
9ae90c3869
Make utils.structures.CacheDict subclass collections.MutableMapping instead of deprecated UserDict.DictMixin.
2012-08-04 17:46:28 +02:00
Valentin Lorentz
6514db9b3f
Prevent name clashes in utils.structures.
2012-08-04 17:42:08 +02:00
Valentin Lorentz
452c706092
Make utils.str.perlRoToReplacer less ambiguous.
2012-08-04 17:36:15 +02:00
Valentin Lorentz
8af6761275
Use 'unicode_escape' in utils.str.dqrepr if running Python 3.
2012-08-04 17:33:17 +02:00
Valentin Lorentz
0a4a12243d
Prevent name clash in utils.iter.startswith.
2012-08-04 17:26:59 +02:00
Valentin Lorentz
b8fe420ef3
Use 'ast' instead of 'compiler' in utils.gen.safeEval.
2012-08-04 17:24:08 +02:00
Valentin Lorentz
d3d93da602
utils.gen.saltHash: encode string before hashing it.
2012-08-04 17:12:23 +02:00
Valentin Lorentz
ab978a8c31
Remove utils/gen.py dependency on deprecated libraries (new and UserDict).
2012-08-04 17:09:32 +02:00
Valentin Lorentz
caaf290c9b
utils/gen.py: Import imap from itertools instead of utils.iter.
2012-08-04 17:03:51 +02:00
Valentin Lorentz
9de7316f02
Change utils.file.AtomicFile into a wrapper instead of a subclass.
2012-08-04 17:01:36 +02:00
Valentin Lorentz
174a5a4b1f
Encode strings before hashing them in utils.file.mktemp.
2012-08-04 16:39:33 +02:00
Valentin Lorentz
54917f581a
Drop dependency on deprecated httplib.HTTP in test framework.
2012-08-04 16:32:15 +02:00
Valentin Lorentz
b5c99b1ce1
Fix capability checks.
2012-08-04 15:57:51 +02:00
Valentin Lorentz
8211aab92e
Fix issue typo in schedule.removeEvent.
2012-08-04 15:57:47 +02:00
Valentin Lorentz
4bf39f773f
Use the codecs module in src/registry.py.
2012-08-04 15:48:30 +02:00
Valentin Lorentz
69c18aed08
Make NonExistentRegistryEntry subclass AttributeError.
2012-08-04 15:11:45 +02:00
Valentin Lorentz
7d73a7dc0a
src/questions.py: Don't use the 'is' operator to compare strings.
2012-08-04 15:05:04 +02:00
Valentin Lorentz
b338c54592
src/log.py: Support for Python 3 logging module.
2012-08-04 15:04:43 +02:00
Valentin Lorentz
fa8950b4a4
Make type checks in ircutils.safeArgument compatible with Python 3.
2012-08-04 14:52:17 +02:00
Valentin Lorentz
66e4243a14
Use 'future' division in src/ircutils.py.
2012-08-04 14:18:53 +02:00
Valentin Lorentz
df2d976818
Use utils.str.MultipleReplacer instead of str.maketrans.
2012-08-04 14:04:15 +02:00
Valentin Lorentz
602f1c7ecb
utils/str.py: Use classes Multiple* instead of lambda functions.
...
As in Python 3, functions are bound to a class when assigned to an attribute,
lambda functions get two parameters, unless they are decorated with classmethod().
And there is no reason to ask plugin developpers use this decorator, while we
avoid them doing this (more over, it is not obvious to debug if they forgot it).
2012-08-04 13:52:02 +02:00
Valentin Lorentz
17eb6c497f
ircmsgs: use classic comparisons instead of str.translate to ensure channel key validity.
2012-08-04 13:31:26 +02:00
Valentin Lorentz
e23fa611d6
Call other.__eq__ in irclib.Irc.__eq__ instead of using the == comparator.
...
Here, this operator is not reflexive, and Python 3 calls the second members resulting in a stack overflow.
2012-08-04 13:25:47 +02:00
Valentin Lorentz
1cb657ddb2
Import imap directly from itertools instead of utils.iter.
2012-08-04 13:21:37 +02:00
Valentin Lorentz
d52e501ae8
Use open() instead of file().
2012-08-04 13:13:16 +02:00
Valentin Lorentz
505fd580f8
Use unicode in src/i18n.py
2012-08-04 12:09:11 +02:00
Valentin Lorentz
d28fa0cbdf
Make Socket driver compatible with py3k.
2012-08-04 12:00:02 +02:00
Valentin Lorentz
139f5b4943
Make src/callbacks.py more py3k-friendly.
2012-08-04 11:38:12 +02:00
Valentin Lorentz
fa35a07941
Add utils.str.multipleRemover.
2012-08-04 11:27:50 +02:00
Valentin Lorentz
fffccb4600
Add utils.str.multipleReplacer.
2012-08-04 11:27:41 +02:00
Valentin Lorentz
cd0bfe411a
Make gpg key adding/removal work.
2012-08-03 23:22:53 +02:00
Valentin Lorentz
21409af405
Revert "Add ° as a prefix character."
...
This reverts commit 0af7d791cc
.
° is differently encoded in unicode and latin1.
2012-08-02 13:26:44 +00:00
Valentin Lorentz
0af7d791cc
Add ° as a prefix character.
2012-08-02 13:15:50 +00:00
Valentin Lorentz
fa67967b09
And commands to add/remove GPG keys.
2012-08-02 09:21:58 +02:00
Valentin Lorentz
ef78c86974
Add configuration variable supybot.reply.format.url.
2012-07-31 13:12:33 +00:00
Valentin Lorentz
19a8df5b46
Fix typo in registry.close().
...
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-07-30 23:23:51 -04:00