diff -up gwibber-3.0.0.1/gwibber/microblog/plugins/twitter/gtk/twitter/__init__.py.catch_error gwibber-3.0.0.1/gwibber/microblog/plugins/twitter/gtk/twitter/__init__.py --- gwibber-3.0.0.1/gwibber/microblog/plugins/twitter/gtk/twitter/__init__.py.catch_error 2011-04-05 17:06:50.000000000 -0400 +++ gwibber-3.0.0.1/gwibber/microblog/plugins/twitter/gtk/twitter/__init__.py 2011-05-12 13:31:09.380655567 -0400 @@ -4,6 +4,7 @@ from oauth import oauth from gtk import Builder from gwibber.microblog.util import resources +from gwibber import error import gettext from gettext import gettext as _ if hasattr(gettext, 'bind_textdomain_codeset'): @@ -68,7 +69,21 @@ class AccountWidget(gtk.VBox): request.sign_request(sigmeth, self.consumer, token=None) - tokendata = urllib2.urlopen(request.http_url, request.to_postdata()).read() + try: + tokendata = urllib2.urlopen(request.http_url, request.to_postdata()).read() + except urllib2.HTTPError, e: + http_error = error.GwibberErrorService() + http_error.ShowDialog(message='HTTP error trying to get twitter OAuth tokendata (%s)' % (e.code), title='Uh oh. Twitter FAIL WHALE!', type='network') + return + except urllib2.URLError, e: + url_error = error.GwibberErrorService() + url_error.ShowDialog(message='URL error trying to get twitter OAuth tokendata (%s)' % (e.reason), title='Uh oh. Twitter FAIL WHALE!', type='network') + return + except Exception: + unknown_error = error.GwibberErrorService() + unknown_error.ShowDialog(message='An unknown error occurred trying to get twitter OAuth tokendata.', title='Uh oh. Twitter FAIL WHALE!', type='network') + return + self.token = oauth.OAuthToken.from_string(tokendata) url = "http://api.twitter.com/oauth/authorize?oauth_token=" + self.token.key