ShrinkUrl: Use tinyurl's api-create page to avoid screen-scraping.

Set snarfThrottle to 0 while testing since we know there's nothing other than
the test input that could be causing us to snarf.  Fixes some intermittent
test failures due to fast snarf responses.

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
This commit is contained in:
James Vega 2009-11-04 22:37:53 -05:00
parent eda8ce3aa0
commit a453f56284
2 changed files with 6 additions and 9 deletions

View File

@ -166,18 +166,15 @@ class ShrinkUrl(callbacks.PluginRegexp):
irc.error(str(e))
ln = thread(wrap(ln, ['url']))
_tinyRe = re.compile(r'<blockquote><b>(http://tinyurl\.com/\w+)</b>')
def _getTinyUrl(self, url):
try:
return self.db.get('tiny', url)
except KeyError:
s = utils.web.getUrl('http://tinyurl.com/create.php?url=' + url)
m = self._tinyRe.search(s)
if m is None:
raise ShrinkError, 'Could not parse the TinyURL.com results.'
tinyurl = m.group(1)
self.db.set('tiny', url, tinyurl)
return tinyurl
text = utils.web.getUrl('http://tinyurl.com/api-create.php?url=' + url)
if text.startswith('Error'):
raise ShrinkError, text[5:]
self.db.set('tiny', url, text)
return text
def tiny(self, irc, msg, args, url):
"""<url>

View File

@ -32,7 +32,7 @@ from supybot.test import *
class ShrinkUrlTestCase(ChannelPluginTestCase):
plugins = ('ShrinkUrl',)
config = {'supybot.snarfThrottle': .5}
config = {'supybot.snarfThrottle': 0}
sfUrl ='http://sourceforge.net/tracker/?func=add&group_id=58965&atid=48947'
udUrl = 'http://www.urbandictionary.com/define.php?' \