X-Git-Url: https://jfr.im/git/z_archive/twitter.git/blobdiff_plain/48a4e39523cb818679d45b5c41ed45c68b3ea3a5..794d6d442f9c150766568fd1626be46735829c85:/twitter/util.py diff --git a/twitter/util.py b/twitter/util.py index 3d9a4bb..7831939 100644 --- a/twitter/util.py +++ b/twitter/util.py @@ -12,6 +12,7 @@ import re import sys import textwrap import time +import socket try: from html.entities import name2codepoint @@ -117,17 +118,24 @@ def follow_redirects(link, sites= None): req = urllib2.Request(link) req.get_method = lambda : 'HEAD' try: - with contextlib.closing(opener.open(req)) as site: + with contextlib.closing(opener.open(req,timeout=1)) as site: return site.url - except (urllib2.HTTPError, urllib2.URLError): + except: return redirect_handler.last_url if redirect_handler.last_url else link def expand_line(line, sites): """Expand the links in the line for the given sites.""" - l = line.strip() - msg_format, links = find_links(l) - args = tuple(follow_redirects(l, sites) for l in links) - return msg_format % args + try: + l = line.strip() + msg_format, links = find_links(l) + args = tuple(follow_redirects(l, sites) for l in links) + line = msg_format % args + except Exception as e: + try: + err("expanding line %s failed due to %s" % (line, unicode(e))) + except: + pass + return line def parse_host_list(list_of_hosts): """Parse the comma separated list of hosts."""