mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-26 20:59:27 +01:00
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
This commit is contained in:
commit
3dba9088b0
2
RELNOTES
2
RELNOTES
@ -1,6 +1,6 @@
|
|||||||
Version 0.83.5
|
Version 0.83.5
|
||||||
|
|
||||||
The minimum supported Python version has been bumped to 2.4.
|
The minimum supported Python version has been bumped to 2.6.
|
||||||
|
|
||||||
utils.str.perlVariableSubstitute is deprecated in favor of using Python's
|
utils.str.perlVariableSubstitute is deprecated in favor of using Python's
|
||||||
string.Template directly. perlVariableSubstitute will be removed in a future
|
string.Template directly. perlVariableSubstitute will be removed in a future
|
||||||
|
@ -325,7 +325,7 @@ information on using wrap check out the wrap tutorial (The astute Python
|
|||||||
programmer may note that this is very much like a decorator, and that's
|
programmer may note that this is very much like a decorator, and that's
|
||||||
precisely what it is. However, we developed this before decorators existed and
|
precisely what it is. However, we developed this before decorators existed and
|
||||||
haven't changed the syntax due to our earlier requirement to stay compatible
|
haven't changed the syntax due to our earlier requirement to stay compatible
|
||||||
with Python 2.3. As we now require Python 2.4 or greater, this may eventually
|
with Python 2.3. As we now require Python 2.6 or greater, this may eventually
|
||||||
change to support work via decorators.)
|
change to support work via decorators.)
|
||||||
|
|
||||||
Now let's create a command with some arguments and see how we use those in our
|
Now let's create a command with some arguments and see how we use those in our
|
||||||
|
@ -39,7 +39,7 @@ master_doc = 'index'
|
|||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'Supybot'
|
project = u'Supybot'
|
||||||
copyright = u'2010, Jeremiah Fincher and James Vega'
|
copyright = u'2010, Jeremiah Fincher and James McCoy'
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
@ -174,7 +174,7 @@ htmlhelp_basename = 'Supybotdoc'
|
|||||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
# (source start file, target name, title, author, documentclass [howto/manual]).
|
||||||
latex_documents = [
|
latex_documents = [
|
||||||
('index', 'Supybot.tex', u'Supybot Documentation',
|
('index', 'Supybot.tex', u'Supybot Documentation',
|
||||||
u'Jeremiah Fincher and James Vega', 'manual'),
|
u'Jeremiah Fincher and James McCoy', 'manual'),
|
||||||
]
|
]
|
||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top of
|
# The name of an image file (relative to this directory) to place at the top of
|
||||||
|
@ -36,7 +36,7 @@ multiple times.
|
|||||||
.IR supybot-plugin-doc (1),
|
.IR supybot-plugin-doc (1),
|
||||||
.IR supybot-plugin-create (1)
|
.IR supybot-plugin-create (1)
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
This manual page was originally written by James Vega
|
This manual page was originally written by James McCoy
|
||||||
<jamessan at supybot dot com>. Permission is granted to copy,
|
<vega dot james at gmail dot com>. Permission is granted to copy,
|
||||||
distribute and/or modify this document under the terms of the Supybot
|
distribute and/or modify this document under the terms of the Supybot
|
||||||
license, a BSD-style license.
|
license, a BSD-style license.
|
||||||
|
@ -48,7 +48,7 @@ when (re)starting the bot.
|
|||||||
.IR supybot-plugin-doc (1),
|
.IR supybot-plugin-doc (1),
|
||||||
.IR supybot-plugin-create (1)
|
.IR supybot-plugin-create (1)
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
This manual page was originally written by James Vega
|
This manual page was originally written by James McCoy
|
||||||
<jamessan at supybot dot com>. Permission is granted to copy,
|
<vega dot james at gmail dot com>. Permission is granted to copy,
|
||||||
distribute and/or modify this document under the terms of the Supybot
|
distribute and/or modify this document under the terms of the Supybot
|
||||||
license, a BSD-style license.
|
license, a BSD-style license.
|
||||||
|
@ -37,7 +37,7 @@ Specify what real name the copyright is assigned to.
|
|||||||
.IR supybot-adduser (1),
|
.IR supybot-adduser (1),
|
||||||
.IR supybot-plugin-doc (1)
|
.IR supybot-plugin-doc (1)
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
This manual page was originally written by James Vega
|
This manual page was originally written by James McCoy
|
||||||
<jamessan at supybot dot com>. Permission is granted to copy,
|
<vega dot james at gmail dot com>. Permission is granted to copy,
|
||||||
distribute and/or modify this document under the terms of the Supybot
|
distribute and/or modify this document under the terms of the Supybot
|
||||||
license, a BSD-style license.
|
license, a BSD-style license.
|
||||||
|
@ -42,7 +42,7 @@ them.
|
|||||||
.IR supybot-adduser (1),
|
.IR supybot-adduser (1),
|
||||||
.IR supybot-plugin-create (1)
|
.IR supybot-plugin-create (1)
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
This manual page was originally written by James Vega
|
This manual page was originally written by James McCoy
|
||||||
<jamessan at supybot dot com>. Permission is granted to copy,
|
<vega dot james at gmail dot com>. Permission is granted to copy,
|
||||||
distribute and/or modify this document under the terms of the Supybot
|
distribute and/or modify this document under the terms of the Supybot
|
||||||
license, a BSD-style license.
|
license, a BSD-style license.
|
||||||
|
@ -45,7 +45,7 @@ Looks in the given directory for plugins and loads the tests for all of them.
|
|||||||
.IR supybot-plugin-doc (1),
|
.IR supybot-plugin-doc (1),
|
||||||
.IR supybot-plugin-create (1)
|
.IR supybot-plugin-create (1)
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
This manual page was originally written by James Vega
|
This manual page was originally written by James McCoy
|
||||||
<jamessan at supybot dot com>. Permission is granted to copy,
|
<vega dot james at gmail dot com>. Permission is granted to copy,
|
||||||
distribute and/or modify this document under the terms of the Supybot
|
distribute and/or modify this document under the terms of the Supybot
|
||||||
license, a BSD-style license.
|
license, a BSD-style license.
|
||||||
|
@ -36,7 +36,7 @@ connection.
|
|||||||
.IR supybot-plugin-doc (1),
|
.IR supybot-plugin-doc (1),
|
||||||
.IR supybot-plugin-create (1)
|
.IR supybot-plugin-create (1)
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
This manual page was originally written by James Vega
|
This manual page was originally written by James McCoy
|
||||||
<jamessan at supybot dot com>. Permission is granted to copy,
|
<vega dot james at gmail dot com>. Permission is granted to copy,
|
||||||
distribute and/or modify this document under the terms of the Supybot
|
distribute and/or modify this document under the terms of the Supybot
|
||||||
license, a BSD-style license.
|
license, a BSD-style license.
|
||||||
|
@ -60,7 +60,7 @@ script.
|
|||||||
.IR supybot-plugin-doc (1),
|
.IR supybot-plugin-doc (1),
|
||||||
.IR supybot-plugin-create (1)
|
.IR supybot-plugin-create (1)
|
||||||
.SH AUTHOR
|
.SH AUTHOR
|
||||||
This manual page was originally written by James Vega
|
This manual page was originally written by James McCoy
|
||||||
<jamessan at supybot dot com>. Permission is granted to copy,
|
<vega dot james at gmail dot com>. Permission is granted to copy,
|
||||||
distribute and/or modify this document under the terms of the Supybot
|
distribute and/or modify this document under the terms of the Supybot
|
||||||
license, a BSD-style license.
|
license, a BSD-style license.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005, Daniel DiPaolo
|
# Copyright (c) 2005, Daniel DiPaolo
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005, Daniel DiPaolo
|
# Copyright (c) 2005, Daniel DiPaolo
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2004, Jeremiah Fincher
|
# Copyright (c) 2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2004-2005, Jeremiah Fincher
|
# Copyright (c) 2004-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1 +1 @@
|
|||||||
This plugin automaticly logs the channels where the bot is.
|
This plugin automatically logs the channels where the bot is.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005, Jeremiah Fincher
|
# Copyright (c) 2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1 +1 @@
|
|||||||
This plugin keeps stats of the channel and returns them with the command ChannelStats.
|
This plugin keeps stats of the channel and returns them with the command channelstats.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2003-2005, Jeremiah Fincher
|
# Copyright (c) 2003-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005, Jeremiah Fincher
|
# Copyright (c) 2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2010, James Vega
|
# Copyright (c) 2008-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2010, James Vega
|
# Copyright (c) 2008-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
@ -233,44 +233,6 @@ class Google(callbacks.PluginRegexp):
|
|||||||
s = ', '.join([format('%s: %i', bold(s), i) for (i, s) in results])
|
s = ', '.join([format('%s: %i', bold(s), i) for (i, s) in results])
|
||||||
irc.reply(s)
|
irc.reply(s)
|
||||||
|
|
||||||
@internationalizeDocstring
|
|
||||||
def translate(self, irc, msg, args, sourceLang, targetLang, text):
|
|
||||||
"""<source language> [to] <target language> <text>
|
|
||||||
|
|
||||||
Returns <text> translated from <source language> into <target
|
|
||||||
language>.
|
|
||||||
"""
|
|
||||||
|
|
||||||
channel = msg.args[0]
|
|
||||||
|
|
||||||
headers = utils.web.defaultHeaders
|
|
||||||
headers['User-Agent'] = ('Mozilla/5.0 (X11; U; Linux i686) '
|
|
||||||
'Gecko/20071127 Firefox/2.0.0.11')
|
|
||||||
|
|
||||||
sourceLang = urllib.quote(sourceLang)
|
|
||||||
targetLang = urllib.quote(targetLang)
|
|
||||||
|
|
||||||
text = urllib.quote(text)
|
|
||||||
|
|
||||||
result = utils.web.getUrlFd('http://translate.google.com/translate_a/t'
|
|
||||||
'?client=t&hl=en&sl=%s&tl=%s&multires=1'
|
|
||||||
'&otf=1&ssel=0&tsel=0&uptl=en&sc=1&text='
|
|
||||||
'%s' % (sourceLang, targetLang, text),
|
|
||||||
headers).read()
|
|
||||||
|
|
||||||
while ',,' in result:
|
|
||||||
result = result.replace(',,', ',null,')
|
|
||||||
data = json.loads(result)
|
|
||||||
|
|
||||||
try:
|
|
||||||
language = data[2]
|
|
||||||
except:
|
|
||||||
language = 'unknown'
|
|
||||||
|
|
||||||
irc.reply(''.join(x[0] for x in data[0]), language)
|
|
||||||
|
|
||||||
translate = wrap(translate, ['something', 'to', 'something', 'text'])
|
|
||||||
|
|
||||||
def googleSnarfer(self, irc, msg, match):
|
def googleSnarfer(self, irc, msg, match):
|
||||||
r"^google\s+(.*)$"
|
r"^google\s+(.*)$"
|
||||||
if not self.registryValue('searchSnarfer', msg.args[0]):
|
if not self.registryValue('searchSnarfer', msg.args[0]):
|
||||||
@ -294,70 +256,6 @@ class Google(callbacks.PluginRegexp):
|
|||||||
url = r'http://www.google.com/ig/calculator?hl=en&q=' + s
|
url = r'http://www.google.com/ig/calculator?hl=en&q=' + s
|
||||||
return url
|
return url
|
||||||
|
|
||||||
_calcRe1 = re.compile(r'<table.*class="?obcontainer"?[^>]*>(.*?)</table>', re.I)
|
|
||||||
_calcRe2 = re.compile(r'<h\d class="?r"?[^>]*>(?:<b>)?(.*?)(?:</b>)?</h\d>', re.I | re.S)
|
|
||||||
_calcSupRe = re.compile(r'<sup>(.*?)</sup>', re.I)
|
|
||||||
_calcFontRe = re.compile(r'<font size=-2>(.*?)</font>')
|
|
||||||
_calcTimesRe = re.compile(r'&(?:times|#215);')
|
|
||||||
@internationalizeDocstring
|
|
||||||
def calc(self, irc, msg, args, expr):
|
|
||||||
"""<expression>
|
|
||||||
|
|
||||||
Uses Google's calculator to calculate the value of <expression>.
|
|
||||||
"""
|
|
||||||
urlig = self._googleUrlIG(expr)
|
|
||||||
js = utils.web.getUrl(urlig).decode('utf8')
|
|
||||||
# Convert JavaScript to JSON. Ouch.
|
|
||||||
js = js \
|
|
||||||
.replace('lhs:','"lhs":') \
|
|
||||||
.replace('rhs:','"rhs":') \
|
|
||||||
.replace('error:','"error":') \
|
|
||||||
.replace('icc:','"icc":') \
|
|
||||||
.replace('\\', '\\\\')
|
|
||||||
js = json.loads(js)
|
|
||||||
|
|
||||||
url = self._googleUrl(expr)
|
|
||||||
html = utils.web.getUrl(url).decode('utf8')
|
|
||||||
match = self._calcRe1.search(html)
|
|
||||||
if match is None:
|
|
||||||
match = self._calcRe2.search(html)
|
|
||||||
if match is not None:
|
|
||||||
s = match.group(1)
|
|
||||||
s = self._calcSupRe.sub(r'^(\1)', s)
|
|
||||||
s = self._calcFontRe.sub(r',', s)
|
|
||||||
s = self._calcTimesRe.sub(r'*', s)
|
|
||||||
s = utils.web.htmlToText(s)
|
|
||||||
if ' = ' in s: # Extra check, since the regex seems to fail.
|
|
||||||
irc.reply(s)
|
|
||||||
return
|
|
||||||
elif js['lhs'] and js['rhs']:
|
|
||||||
# Outputs the original result. Might look ugly.
|
|
||||||
irc.reply("%s = %s" % (js['lhs'], js['rhs'],))
|
|
||||||
return
|
|
||||||
irc.reply(_('Google says: Error: %s.') % (js['error'],))
|
|
||||||
irc.reply('Google\'s calculator didn\'t come up with anything.')
|
|
||||||
calc = wrap(calc, ['text'])
|
|
||||||
|
|
||||||
_phoneRe = re.compile(r'Phonebook.*?<font size=-1>(.*?)<a href')
|
|
||||||
@internationalizeDocstring
|
|
||||||
def phonebook(self, irc, msg, args, phonenumber):
|
|
||||||
"""<phone number>
|
|
||||||
|
|
||||||
Looks <phone number> up on Google.
|
|
||||||
"""
|
|
||||||
url = self._googleUrl(phonenumber)
|
|
||||||
html = utils.web.getUrl(url).decode('utf8')
|
|
||||||
m = self._phoneRe.search(html)
|
|
||||||
if m is not None:
|
|
||||||
s = m.group(1)
|
|
||||||
s = s.replace('<b>', '')
|
|
||||||
s = s.replace('</b>', '')
|
|
||||||
s = utils.web.htmlToText(s)
|
|
||||||
irc.reply(s)
|
|
||||||
else:
|
|
||||||
irc.reply(_('Google\'s phonebook didn\'t come up with anything.'))
|
|
||||||
phonebook = wrap(phonebook, ['text'])
|
|
||||||
|
|
||||||
|
|
||||||
Class = Google
|
Class = Google
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2009, James Vega
|
# Copyright (c) 2008-2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
@ -33,21 +33,6 @@ from supybot.test import *
|
|||||||
class GoogleTestCase(ChannelPluginTestCase):
|
class GoogleTestCase(ChannelPluginTestCase):
|
||||||
plugins = ('Google', 'Config')
|
plugins = ('Google', 'Config')
|
||||||
if network:
|
if network:
|
||||||
def testCalcHandlesMultiplicationSymbol(self):
|
|
||||||
self.assertNotRegexp('google calc seconds in a century', r'215')
|
|
||||||
|
|
||||||
def testCalc(self):
|
|
||||||
self.assertNotRegexp('google calc e^(i*pi)+1', r'didn\'t')
|
|
||||||
self.assertNotRegexp('google calc 1 usd in gbp', r'didn\'t')
|
|
||||||
|
|
||||||
def testHtmlHandled(self):
|
|
||||||
self.assertNotRegexp('google calc '
|
|
||||||
'the speed of light '
|
|
||||||
'in microns / fortnight', '<sup>')
|
|
||||||
self.assertNotRegexp('google calc '
|
|
||||||
'the speed of light '
|
|
||||||
'in microns / fortnight', '×')
|
|
||||||
|
|
||||||
def testSearch(self):
|
def testSearch(self):
|
||||||
self.assertNotError('google foo')
|
self.assertNotError('google foo')
|
||||||
self.assertRegexp('google dupa', r'dupa')
|
self.assertRegexp('google dupa', r'dupa')
|
||||||
@ -69,7 +54,4 @@ class GoogleTestCase(ChannelPluginTestCase):
|
|||||||
self.assertRegexp('fight supybot moobot', r'.*supybot.*: \d+')
|
self.assertRegexp('fight supybot moobot', r'.*supybot.*: \d+')
|
||||||
self.assertNotError('fight ... !')
|
self.assertNotError('fight ... !')
|
||||||
|
|
||||||
def testCalcDoesNotHaveExtraSpaces(self):
|
|
||||||
self.assertNotRegexp('google calc 1000^2', r'\s+,\s+')
|
|
||||||
|
|
||||||
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
|
# vim:set shiftwidth=4 softtabstop=4 expandtab textwidth=79:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2003-2005, Jeremiah Fincher
|
# Copyright (c) 2003-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2010-2011, James Vega
|
# Copyright (c) 2010-2011, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2003-2005, Jeremiah Fincher
|
# Copyright (c) 2003-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005, Jeremiah Fincher
|
# Copyright (c) 2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2004, Jeremiah Fincher
|
# Copyright (c) 2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2004-2005, Jeremiah Fincher
|
# Copyright (c) 2004-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2009, James Vega
|
# Copyright (c) 2008-2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2004, Brett Kelly
|
# Copyright (c) 2004, Brett Kelly
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2009, James Vega
|
# Copyright (c) 2008-2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -32,13 +32,13 @@ from supybot.test import *
|
|||||||
class PluginTestCase(PluginTestCase):
|
class PluginTestCase(PluginTestCase):
|
||||||
plugins = ('Plugin', 'Utilities', 'Admin', 'Format')
|
plugins = ('Plugin', 'Utilities', 'Admin', 'Format')
|
||||||
def testPlugin(self):
|
def testPlugin(self):
|
||||||
self.assertRegexp('plugin plugin', 'available.*Plugin plugin')
|
self.assertRegexp('plugin ignore', 'available.*Utilities plugin')
|
||||||
self.assertResponse('echo [plugin plugin]', 'Plugin')
|
self.assertResponse('echo [plugin ignore]', 'Utilities')
|
||||||
|
|
||||||
def testPlugins(self):
|
def testPlugins(self):
|
||||||
self.assertRegexp('plugins join', '(Format.*Admin|Admin.*Format)')
|
self.assertRegexp('plugins join', '(Format.*Admin|Admin.*Format)')
|
||||||
self.assertRegexp('plugins plugin', 'Plugin')
|
self.assertRegexp('plugins plugin', 'Plugin')
|
||||||
|
|
||||||
def testList(self):
|
def testList(self):
|
||||||
self.assertRegexp('plugin list', 'Plugin.*Utilities')
|
self.assertRegexp('plugin list', 'Plugin.*Utilities')
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2004, Daniel DiPaolo
|
# Copyright (c) 2004, Daniel DiPaolo
|
||||||
# Copyright (c) 2008-2010, James Vega
|
# Copyright (c) 2008-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2004, Daniel DiPaolo
|
# Copyright (c) 2004, Daniel DiPaolo
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2010, James Vega
|
# Copyright (c) 2008-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2010-2011, James Vega
|
# Copyright (c) 2010-2011, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005, Jeremiah Fincher
|
# Copyright (c) 2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005, Jeremiah Fincher
|
# Copyright (c) 2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005, Jeremiah Fincher
|
# Copyright (c) 2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2003-2005, Jeremiah Fincher
|
# Copyright (c) 2003-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2009, James Vega
|
# Copyright (c) 2008-2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2003-2005, Jeremiah Fincher
|
# Copyright (c) 2003-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2003-2005, Daniel DiPaolo
|
# Copyright (c) 2003-2005, Daniel DiPaolo
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2010, James Vega
|
# Copyright (c) 2008-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005, Jeremiah Fincher
|
# Copyright (c) 2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -49,28 +49,8 @@ class WebTestCase(ChannelPluginTestCase):
|
|||||||
self.assertNotError('size http://www.slashdot.org/')
|
self.assertNotError('size http://www.slashdot.org/')
|
||||||
|
|
||||||
def testTitle(self):
|
def testTitle(self):
|
||||||
self.assertResponse('title http://www.slashdot.org/',
|
self.assertRegexp('title http://www.slashdot.org/',
|
||||||
'Slashdot: News for nerds, stuff that matters')
|
'News for nerds, stuff that matters')
|
||||||
# Amazon add a bunch of scripting stuff to the top of their page,
|
|
||||||
# so we need to allow for a larger peekSize
|
|
||||||
# Actually, screw Amazon. Even bumping this up to 10k doesn't give us enough
|
|
||||||
# info.
|
|
||||||
# try:
|
|
||||||
# orig = conf.supybot.protocols.http.peekSize()
|
|
||||||
# conf.supybot.protocols.http.peekSize.setValue(8192)
|
|
||||||
# self.assertNotRegexp('title '
|
|
||||||
# 'http://www.amazon.com/exec/obidos/tg/detail/-/'
|
|
||||||
# '1884822312/qid=1063140754/sr=8-1/ref=sr_8_1/'
|
|
||||||
# '002-9802970-2308826?v=glance&s=books&n=507846',
|
|
||||||
# 'no HTML title')
|
|
||||||
# finally:
|
|
||||||
# conf.supybot.protocols.http.peekSize.setValue(orig)
|
|
||||||
# Checks the non-greediness of the regexp
|
|
||||||
self.assertResponse('title '
|
|
||||||
'http://www.space.com/scienceastronomy/'
|
|
||||||
'jupiter_dark_spot_031023.html',
|
|
||||||
'SPACE.com -- Mystery Spot on Jupiter Baffles '
|
|
||||||
'Astronomers')
|
|
||||||
# Checks for @title not-working correctly
|
# Checks for @title not-working correctly
|
||||||
self.assertResponse('title '
|
self.assertResponse('title '
|
||||||
'http://www.catb.org/~esr/jargon/html/F/foo.html',
|
'http://www.catb.org/~esr/jargon/html/F/foo.html',
|
||||||
@ -97,9 +77,8 @@ class WebTestCase(ChannelPluginTestCase):
|
|||||||
def testTitleSnarfer(self):
|
def testTitleSnarfer(self):
|
||||||
try:
|
try:
|
||||||
conf.supybot.plugins.Web.titleSnarfer.setValue(True)
|
conf.supybot.plugins.Web.titleSnarfer.setValue(True)
|
||||||
self.assertSnarfResponse('http://microsoft.com/',
|
self.assertSnarfRegexp('http://microsoft.com/',
|
||||||
'Title: Microsoft Corporation'
|
'Title: Microsoft Corporation')
|
||||||
' (at microsoft.com)')
|
|
||||||
finally:
|
finally:
|
||||||
conf.supybot.plugins.Web.titleSnarfer.setValue(False)
|
conf.supybot.plugins.Web.titleSnarfer.setValue(False)
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
###
|
###
|
||||||
# Copyright (c) 2003-2004, Jeremiah Fincher
|
# Copyright (c) 2003-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
@ -44,8 +44,8 @@ import shutil
|
|||||||
import signal
|
import signal
|
||||||
import cStringIO as StringIO
|
import cStringIO as StringIO
|
||||||
|
|
||||||
if sys.version_info < (2, 4, 0):
|
if sys.version_info < (2, 6, 0):
|
||||||
sys.stderr.write('This program requires Python >= 2.4.0')
|
sys.stderr.write('This program requires Python >= 2.6.0')
|
||||||
sys.stderr.write(os.linesep)
|
sys.stderr.write(os.linesep)
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
###
|
###
|
||||||
# Copyright (c) 2005, Jeremiah Fincher
|
# Copyright (c) 2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
@ -43,8 +43,8 @@ def error(s):
|
|||||||
sys.stderr.write(os.linesep)
|
sys.stderr.write(os.linesep)
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
|
|
||||||
if sys.version_info < (2, 4, 0):
|
if sys.version_info < (2, 6, 0):
|
||||||
error('This script requires Python 2.4 or newer.')
|
error('This script requires Python 2.6 or newer.')
|
||||||
|
|
||||||
import supybot.conf as conf
|
import supybot.conf as conf
|
||||||
from supybot.questions import *
|
from supybot.questions import *
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
###
|
###
|
||||||
# Copyright (c) 2005, Ali Afshar
|
# Copyright (c) 2005, Ali Afshar
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2011, James Vega
|
# Copyright (c) 2011, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
###
|
###
|
||||||
# Copyright (c) 2003-2004, Jeremiah Fincher
|
# Copyright (c) 2003-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
@ -39,8 +39,8 @@ def error(s):
|
|||||||
sys.stderr.write(os.linesep)
|
sys.stderr.write(os.linesep)
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
|
|
||||||
if sys.version_info < (2, 4, 0):
|
if sys.version_info < (2, 6, 0):
|
||||||
error('This program requires Python >= 2.4.0')
|
error('This program requires Python >= 2.6.0')
|
||||||
|
|
||||||
import supybot
|
import supybot
|
||||||
|
|
||||||
|
6
setup.py
6
setup.py
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
@ -30,10 +30,12 @@
|
|||||||
# POSSIBILITY OF SUCH DAMAGE.
|
# POSSIBILITY OF SUCH DAMAGE.
|
||||||
###
|
###
|
||||||
|
|
||||||
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
if sys.version_info < (2, 6, 0):
|
if sys.version_info < (2, 6, 0):
|
||||||
sys.stderr.write("Supybot requires Python 2.6 or newer.\n")
|
sys.stderr.write("Supybot requires Python 2.6 or newer.")
|
||||||
|
sys.stderr.write(os.linesep)
|
||||||
sys.exit(-1)
|
sys.exit(-1)
|
||||||
|
|
||||||
import textwrap
|
import textwrap
|
||||||
|
@ -54,7 +54,7 @@ class Author(object):
|
|||||||
|
|
||||||
class authors(object): # This is basically a bag.
|
class authors(object): # This is basically a bag.
|
||||||
jemfinch = Author('Jeremy Fincher', 'jemfinch', 'jemfinch@users.sf.net')
|
jemfinch = Author('Jeremy Fincher', 'jemfinch', 'jemfinch@users.sf.net')
|
||||||
jamessan = Author('James Vega', 'jamessan', 'jamessan@users.sf.net')
|
jamessan = Author('James McCoy', 'jamessan', 'vega.james@gmail.com')
|
||||||
strike = Author('Daniel DiPaolo', 'Strike', 'ddipaolo@users.sf.net')
|
strike = Author('Daniel DiPaolo', 'Strike', 'ddipaolo@users.sf.net')
|
||||||
baggins = Author('William Robinson', 'baggins', 'airbaggins@users.sf.net')
|
baggins = Author('William Robinson', 'baggins', 'airbaggins@users.sf.net')
|
||||||
skorobeus = Author('Kevin Murphy', 'Skorobeus', 'skoro@skoroworld.com')
|
skorobeus = Author('Kevin Murphy', 'Skorobeus', 'skoro@skoroworld.com')
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2010, James Vega
|
# Copyright (c) 2008-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
@ -491,18 +491,23 @@ class RichReplyMethods(object):
|
|||||||
if isinstance(capability, basestring): # checkCommandCapability!
|
if isinstance(capability, basestring): # checkCommandCapability!
|
||||||
log.warning('Denying %s for lacking %q capability.',
|
log.warning('Denying %s for lacking %q capability.',
|
||||||
self.msg.prefix, capability)
|
self.msg.prefix, capability)
|
||||||
if not self._getConfig(conf.supybot.reply.error.noCapability):
|
# noCapability means "don't send a specific capability error
|
||||||
if capability in conf.supybot.capabilities.private():
|
# message" not "don't send a capability error message at all", like
|
||||||
v = self._getConfig(conf.supybot.replies.genericNoCapability)
|
# one would think
|
||||||
else:
|
if self._getConfig(conf.supybot.reply.error.noCapability) or \
|
||||||
v = self._getConfig(conf.supybot.replies.noCapability)
|
capability in conf.supybot.capabilities.private():
|
||||||
v %= capability
|
v = self._getConfig(conf.supybot.replies.genericNoCapability)
|
||||||
s = self.__makeReply(v, s)
|
|
||||||
return self._error(s, **kwargs)
|
|
||||||
else:
|
else:
|
||||||
log.debug('Not sending capability error, '
|
v = self._getConfig(conf.supybot.replies.noCapability)
|
||||||
'supybot.reply.error.noCapability is False.')
|
v %= capability
|
||||||
raise SilentError
|
s = self.__makeReply(v, s)
|
||||||
|
return self._error(s, **kwargs)
|
||||||
|
if self._getConfig(conf.supybot.reply.error.noCapability):
|
||||||
|
v = self._getConfig(conf.supybot.replies.genericNoCapability)
|
||||||
|
else:
|
||||||
|
v = self._getConfig(conf.supybot.replies.noCapability)
|
||||||
|
s = self.__makeReply(v % capability, s)
|
||||||
|
return self._error(s, **kwargs)
|
||||||
else:
|
else:
|
||||||
log.warning('Denying %s for some unspecified capability '
|
log.warning('Denying %s for some unspecified capability '
|
||||||
'(or a default).', self.msg.prefix)
|
'(or a default).', self.msg.prefix)
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2009,2011, James Vega
|
# Copyright (c) 2008-2009,2011, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2004, Jeremiah Fincher
|
# Copyright (c) 2002-2004, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2009, James Vega
|
# Copyright (c) 2008-2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2009, Jeremiah Fincher
|
# Copyright (c) 2002-2009, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# Copyright (c) 2011, Valentin Lorentz
|
# Copyright (c) 2011, Valentin Lorentz
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
|
@ -406,7 +406,7 @@ class IrcState(IrcCommandDispatcher):
|
|||||||
"""Handles parsing the 004 reply
|
"""Handles parsing the 004 reply
|
||||||
|
|
||||||
Supported user and channel modes are cached"""
|
Supported user and channel modes are cached"""
|
||||||
# msg.args = [nickname, server, ircd-version, umodes, modes,
|
# msg.args = [nick, server, ircd-version, umodes, modes,
|
||||||
# modes that require arguments? (non-standard)]
|
# modes that require arguments? (non-standard)]
|
||||||
self.supported['umodes'] = msg.args[3]
|
self.supported['umodes'] = msg.args[3]
|
||||||
self.supported['chanmodes'] = msg.args[4]
|
self.supported['chanmodes'] = msg.args[4]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2010, James Vega
|
# Copyright (c) 2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009,2011, James Vega
|
# Copyright (c) 2009,2011, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2004-2005, Jeremiah Fincher
|
# Copyright (c) 2004-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2011, James Vega
|
# Copyright (c) 2011, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2011, James Vega
|
# Copyright (c) 2011, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2005-2009, Jeremiah Fincher
|
# Copyright (c) 2005-2009, Jeremiah Fincher
|
||||||
# Copyright (c) 2009-2010, James Vega
|
# Copyright (c) 2009-2010, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008-2009, James Vega
|
# Copyright (c) 2008-2009, James McCoy
|
||||||
# Copyright (c) 2010, Valentin Lorentz
|
# Copyright (c) 2010, Valentin Lorentz
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2009, James Vega
|
# Copyright (c) 2009, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -288,7 +288,7 @@ class IrcStateTestCase(SupyTestCase):
|
|||||||
|
|
||||||
def testSupportedUmodes(self):
|
def testSupportedUmodes(self):
|
||||||
state = irclib.IrcState()
|
state = irclib.IrcState()
|
||||||
state.addMsg(self.irc, ircmsgs.IrcMsg(':charm.oftc.net 004 adkwbot charm.oftc.net hybrid-7.2.2+oftc1.6.8 CDGPRSabcdfgiklnorsuwxyz biklmnopstveI bkloveI'))
|
state.addMsg(self.irc, ircmsgs.IrcMsg(':coulomb.oftc.net 004 testnick coulomb.oftc.net hybrid-7.2.2+oftc1.6.8 CDGPRSabcdfgiklnorsuwxyz biklmnopstveI bkloveI'))
|
||||||
self.assertEqual(state.supported['umodes'], 'CDGPRSabcdfgiklnorsuwxyz')
|
self.assertEqual(state.supported['umodes'], 'CDGPRSabcdfgiklnorsuwxyz')
|
||||||
self.assertEqual(state.supported['chanmodes'],
|
self.assertEqual(state.supported['chanmodes'],
|
||||||
'biklmnopstveI')
|
'biklmnopstveI')
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
###
|
###
|
||||||
# Copyright (c) 2002-2005, Jeremiah Fincher
|
# Copyright (c) 2002-2005, Jeremiah Fincher
|
||||||
# Copyright (c) 2008, James Vega
|
# Copyright (c) 2008, James McCoy
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
# Redistribution and use in source and binary forms, with or without
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user