X-Git-Url: https://jfr.im/git/erebus.git/blobdiff_plain/de8ab9cbaceea92c0b719c3b87f2bc59397b2454..04d483534a020aca9f4879f11c743b775bbdb5f2:/modules/urls.py diff --git a/modules/urls.py b/modules/urls.py index 834cd6c..72bdb99 100644 --- a/modules/urls.py +++ b/modules/urls.py @@ -27,11 +27,13 @@ if sys.version_info.major < 3: import urlparse import HTMLParser from BeautifulSoup import BeautifulSoup + import re else: import urllib.request as urllib2 import urllib.parse as urlparse import html.parser as HTMLParser from bs4 import BeautifulSoup + import re import re, json @@ -97,14 +99,15 @@ def privmsg_hook(bot, textline): except IndexError: line = '' + responses = [] for match in url_regex.findall(line): if match: - response = goturl(match) - if response is not None: - bot.msg(chan, response) + responses.append(goturl(match)) + if len(responses) > 0: + bot.msg(chan, ' | '.join(responses), True) def unescape(line): - return html_parser.unescape(line) + return re.sub('\s+', ' ', html_parser.unescape(line)) def gotspotify(type, track): url = 'http://ws.spotify.com/lookup/1/?uri=spotify:%s:%s' % (type, track) @@ -163,9 +166,9 @@ def goturl(url): request = urllib2.Request(url) opener = urllib2.build_opener(SmartRedirectHandler()) try: - soup = BeautifulSoup(opener.open(request, timeout=2)) - return url + ' ' + unescape('Title: %s' % (soup.title.string)) + soup = BeautifulSoup(opener.open(request, timeout=0.5)) + return unescape('Title: %s' % (soup.title.string)) except urllib2.HTTPError as e: - return url + ' ' + 'Error: %s %s' % (e.code, e.reason) - except: - return None + return 'Error: %s %s' % (e.code, e.reason) + except Exception as e: + return 'Error: %r' % (e.message)