mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-23 11:09:23 +01:00
Fix the Google Groups snarfer bug and added appropriate tests
This commit is contained in:
parent
8854363785
commit
8b9f5a607f
@ -289,7 +289,7 @@ class Google(callbacks.PrivmsgCommandAndRegexp, plugins.Configurable):
|
||||
|
||||
_ggThread = re.compile(r'<br>Subject: ([^<]+)<br>')
|
||||
_ggPlainThread = re.compile(r'Subject: (.*)')
|
||||
_ggGroup = re.compile(r'Newsgroups: <a[^>]+>([^<]+)</a>')
|
||||
_ggGroup = re.compile(r'Newsgroups: (?:<a[^>]+>)?([^<]+)(?:</a>)?')
|
||||
_ggPlainGroup = re.compile(r'Newsgroups: (.*)')
|
||||
def googleGroups(self, irc, msg, match):
|
||||
r"http://groups.google.com/[^\s]+"
|
||||
@ -311,7 +311,7 @@ class Google(callbacks.PrivmsgCommandAndRegexp, plugins.Configurable):
|
||||
fd = urllib2.urlopen(request)
|
||||
text = fd.read()
|
||||
fd.close()
|
||||
if '&output=gplain' not in match.group(0):
|
||||
elif '&output=gplain' not in match.group(0):
|
||||
mThread = self._ggThread.search(text)
|
||||
mGroup = self._ggGroup.search(text)
|
||||
else:
|
||||
|
@ -46,6 +46,15 @@ class GoogleTestCase(ChannelPluginTestCase, PluginDocumentation):
|
||||
self.assertRegexp('http://groups.google.com/groups?selm=ExDm.'
|
||||
'8bj.23%40gated-at.bofh.it&oe=UTF-8&output=gplain',
|
||||
r'linux\.kernel.*NFS client freezes')
|
||||
self.assertRegexp('http://groups.google.com/groups?'
|
||||
'q=kernel+hot-pants&hl=en&lr=&ie=UTF-8&oe=UTF-8&'
|
||||
'selm=1.5.4.32.19970313170853.00674d60%40'
|
||||
'adan.kingston.net&rnum=1',
|
||||
r'Madrid Bluegrass Ramble')
|
||||
self.assertRegexp('http://groups.google.com/groups?'
|
||||
'selm=1.5.4.32.19970313170853.00674d60%40adan.'
|
||||
'kingston.net&oe=UTF-8&output=gplain',
|
||||
r'Madrid Bluegrass Ramble')
|
||||
|
||||
def testConfig(self):
|
||||
self.assertNotError('google config groups-snarfer off')
|
||||
|
Loading…
Reference in New Issue
Block a user