diff --git a/plugins/tinyurl.py b/plugins/tinyurl.py index c62403d..ef34a42 100644 --- a/plugins/tinyurl.py +++ b/plugins/tinyurl.py @@ -1,35 +1,17 @@ -import socket import re -import locale +import urllib2 import hook -locale.setlocale(locale.LC_ALL, "") -def recv_basic(the_socket): - total_data=[] - while True: - data = the_socket.recv(8192) - if not data: break - total_data.append(data) - return ''.join(total_data) +tinyurl_re = re.compile(r'http://(?:www\.)?tinyurl.com/([A-Za-z0-9\-]+)', flags=re.IGNORECASE) -def tinyurlparse(url): - id = url[(url.rfind("/",8)+1):] - ts = socket.socket() - ts.connect(("tinyurl.com", 80)) - ts.send("GET /redirect.php?num=%s HTTP/1.1\r\n" % id) - ts.send("Host: tinyurl.com\r\n\r\n"); - tresult = recv_basic(ts); - for tline in tresult.split("\n"): - if tline[:10] == "Location: ": - return tline[10:] - -tinyurl_re = re.compile(r'http://(www\.)?tinyurl.com/([A-Za-z0-9\-]+)', flags=re.IGNORECASE) - @hook.command(hook=r'(.*)', prefix=False) def tinyurl(inp): tumatch = tinyurl_re.search(inp) - if (tumatch is not None): - return tinyurlparse(tumatch.group()) + if tumatch: + try: + return urllib2.urlopen(tumatch.group()).url.strip() + except urllib2.URLError: + pass