diff --git a/plugins/Google.py b/plugins/Google.py index e2c48fa46..03ed5cd50 100644 --- a/plugins/Google.py +++ b/plugins/Google.py @@ -89,10 +89,10 @@ def configure(onStart, afterConnect, advanced): print 'snarfing and a google search snarfer.\n' if yn('Do you want the Google Groups link snarfer enabled by '\ 'default?') == 'n': - onStart.append('Google toggle groups off') + onStart.append('Google config groups-snarfer off') if yn('Do you want the Google search snarfer enabled by default?')\ == 'y': - onStart.append('Google toggle search on') + onStart.append('Google config search-snarfer on') else: print 'You\'ll need to get a key before you can use this plugin.' print 'You can apply for a key at http://www.google.com/apis/' @@ -119,14 +119,21 @@ def search(*args, **kwargs): else: raise -class Google(callbacks.PrivmsgCommandAndRegexp, plugins.Toggleable): +class Google(callbacks.PrivmsgCommandAndRegexp, plugins.Configurable): threaded = True regexps = sets.Set(['googleSnarfer', 'googleGroups']) - toggles = plugins.ToggleDictionary({'groups' : True, - 'search' : False}) + configurables = plugins.ConfigurableDictionary( + [('groups-snarfer', plugins.ConfigurableTypes.bool, True, + """Determines whether the groups snarfer is enabled. If so, URLs at + groups.google.com will be snarfed and their group/title messaged to + the channel."""), + ('search-snarfer', plugins.ConfigurableTypes.bool, False, + """Determines whether the search snarfer is enabled. If so, messages + (even unaddressed ones) beginning with the word 'google' will result + in the first URL Google returns being sent to the channel.""")] + ) def __init__(self): - super(self.__class__, self).__init__() - plugins.Toggleable.__init__(self) + super(Google, self).__init__() self.total = 0 self.totalTime = 0 self.last24hours = structures.queue() @@ -260,7 +267,7 @@ class Google(callbacks.PrivmsgCommandAndRegexp, plugins.Toggleable): def googleSnarfer(self, irc, msg, match): r"^google\s+(.*)$" - if not self.toggles.get('search', channel=msg.args[0]): + if not self.configurables.get('search-snarfer', channel=msg.args[0]): return searchString = match.group(1) try: @@ -272,12 +279,13 @@ class Google(callbacks.PrivmsgCommandAndRegexp, plugins.Toggleable): irc.reply(msg, url) else: irc.reply(msg, 'No results for "%s"' % searchString) + googleSnarfer = privmsgs.urlSnarfer(googleSnarfer) _ggThread = re.compile(r'
Subject: ([^<]+)
') _ggGroup = re.compile(r'Newsgroups: ]+>([^<]+)') def googleGroups(self, irc, msg, match): r"http://groups.google.com/[^\s]+" - if not self.toggles.get('groups', channel=msg.args[0]): + if not self.configurables.get('groups-snarfer', channel=msg.args[0]): return request = urllib2.Request(match.group(0), headers=\ {'User-agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)'}) @@ -303,6 +311,7 @@ class Google(callbacks.PrivmsgCommandAndRegexp, plugins.Toggleable): else: irc.error(msg, 'That doesn\'t appear to be a proper '\ 'Google Groups page. (%s)' % conf.replyPossibleBug) + googleGroups = privmsgs.urlSnarfer(googleGroups) Class = Google