diff --git a/plugins/Ebay.py b/plugins/Ebay.py index 0a8c02153..10b2793ea 100644 --- a/plugins/Ebay.py +++ b/plugins/Ebay.py @@ -39,6 +39,7 @@ __revision__ = "$Id$" __author__ = supybot.authors.jamessan import re +import cgi import sets import getopt @@ -117,10 +118,13 @@ class Ebay(callbacks.PrivmsgCommandAndRegexp): irc.reply(str(e)) def ebaySnarfer(self, irc, msg, match): - r"http://cgi\.ebay\.(?:com(?:\.au)?|co\.uk|ca)/.*" \ - r"eBayISAPI\.dll\?ViewItem(?:&(?:item|category)=\d+)+" + r'http://cgi\.ebay\.(?:com(?:\.au)?|co\.uk|ca)/.*' \ + r'eBayISAPI\.dll\?ViewItem&([\S]+)' if not self.registryValue('auctionSnarfer', msg.args[0]): return + queries = cgi.parse_qs(match.group(1)) + if 'item' not in queries and 'category' not in queries: + return url = match.group(0) try: irc.reply(self._getResponse(url), prefixName=False) diff --git a/test/test_Ebay.py b/test/test_Ebay.py index c81e9d29d..fa170b379 100644 --- a/test/test_Ebay.py +++ b/test/test_Ebay.py @@ -40,50 +40,4 @@ class EbayTest(ChannelPluginTestCase): self.assertRegexp('auction 2357056673', 'That auction is invalid') self.assertError('auction foobar') - def testSnarfer(self): - orig = conf.supybot.plugins.Ebay.auctionSnarfer() - try: - conf.supybot.plugins.Ebay.auctionSnarfer.setValue(True) - self.assertSnarfRegexp( - 'http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem' - '&category=176&item=3053767552', - r'.*Cisco NP-4T.*Serial Module.*US \$74\.95.*') - self.assertSnarfRegexp( - 'http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&' - 'category=28033&item=3053353651', - r'.*Cisco 2524 Router - NO RESERVE.*izontech \(.*') - # test snarfing other countries - self.assertSnarfRegexp( - 'http://cgi.ebay.ca/ws/eBayISAPI.dll?ViewItem&' - 'item=3636820075', - r'NEW 34" Itech 8.8 Profile') - self.assertSnarfRegexp( - 'http://cgi.ebay.co.uk/ws/eBayISAPI.dll?ViewItem&' - 'item=2355464443', - r'Any Clear Crazy') - self.assertSnarfRegexp( - 'http://cgi.ebay.com.au/ws/eBayISAPI.dll?ViewItem&' - 'item=2762983161&category=4607', - r'Apple Mac G4') - # test .com/.*/ws/eBat compatibility - self.assertSnarfRegexp( - 'http://cgi.ebay.com/ebaymotors/ws/eBayISAPI.dll?' - 'ViewItem&item=2439393310&category=33708', - r'88-89 CRX amber') - finally: - conf.supybot.plugins.Ebay.auctionSnarfer.setValue(orig) - - def testConfigSnarfer(self): - try: - conf.supybot.plugins.Ebay.auctionSnarfer.setValue(False) - self.assertSnarfNoResponse( - 'http://cgi.ebay.com/ebaymotors/ws/eBayISAPI.dll?' - 'ViewItem&item=2439393310&category=33708') - conf.supybot.plugins.Ebay.auctionSnarfer.setValue(True) - self.assertSnarfNotError( - 'http://cgi.ebay.com/ebaymotors/ws/eBayISAPI.dll?' - 'ViewItem&item=2439393310&category=33708') - finally: - conf.supybot.plugins.Ebay.auctionSnarfer.setValue(False) - # vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78: