Added colorfulSnarfer.

This commit is contained in:
Jeremy Fincher 2004-09-14 20:56:47 +00:00
parent cb23a47635
commit 001d8439c3

View File

@ -164,6 +164,9 @@ conf.registerChannelValue(conf.supybot.plugins.Google, 'searchSnarfer',
enabled. If so, messages (even unaddressed ones) beginning with the word enabled. If so, messages (even unaddressed ones) beginning with the word
'google' will result in the first URL Google returns being sent to the 'google' will result in the first URL Google returns being sent to the
channel.""")) channel."""))
conf.registerChannelValue(conf.supybot.plugins.Google, 'colorfulFilter',
registry.Boolean(False, """Determines whether the word 'google' in the
bot's output will be made colorful (like Google's logo)."""))
conf.registerChannelValue(conf.supybot.plugins.Google, 'bold', conf.registerChannelValue(conf.supybot.plugins.Google, 'bold',
registry.Boolean(True, """Determines whether results are bolded.""")) registry.Boolean(True, """Determines whether results are bolded."""))
conf.registerChannelValue(conf.supybot.plugins.Google, 'maximumResults', conf.registerChannelValue(conf.supybot.plugins.Google, 'maximumResults',
@ -199,6 +202,31 @@ class Google(callbacks.PrivmsgCommandAndRegexp):
self.last24hours = structures.TimeoutQueue(86400) self.last24hours = structures.TimeoutQueue(86400)
google.setLicense(self.registryValue('licenseKey')) google.setLicense(self.registryValue('licenseKey'))
_colorGoogles = {}
def _getColorGoogle(self, m):
s = m.group(1)
ret = self._colorGoogles.get(s)
if not ret:
L = list(s)
L[0] = ircutils.mircColor(L[0], 'blue')
L[1] = ircutils.mircColor(L[1], 'red')
L[2] = ircutils.mircColor(L[2], 'yellow')
L[3] = ircutils.mircColor(L[3], 'blue')
L[4] = ircutils.mircColor(L[4], 'green')
L[5] = ircutils.mircColor(L[5], 'red')
ret = ''.join(L)
self._colorGoogles[s] = ret
return ircutils.bold(ret)
_googleRe = re.compile('(google)', re.I)
def outFilter(self, irc, msg):
if msg.command == 'PRIVMSG' and \
self.registryValue('colorfulFilter', msg.args[0]):
s = msg.args[1]
s = re.sub(self._googleRe, self._getColorGoogle, s)
msg = ircmsgs.privmsg(msg.args[0], s, prefix=msg.prefix)
return msg
def formatData(self, data, bold=True, max=0): def formatData(self, data, bold=True, max=0):
if isinstance(data, basestring): if isinstance(data, basestring):
return data return data