diff --git a/src/controller/buffersController.py b/src/controller/buffersController.py index 4d660219..72965887 100644 --- a/src/controller/buffersController.py +++ b/src/controller/buffersController.py @@ -249,14 +249,22 @@ class baseBufferController(bufferController): uri = None if tweet.has_key("long_uri"): uri = tweet["long_uri"] - tweet = self.session.twitter.twitter.show_status(id=tweet_id) + try: + tweet = self.session.twitter.twitter.show_status(id=tweet_id) + except TwythonError as e: + utils.twitter_error(e) + return if uri != None: tweet["text"] = twishort.get_full_text(uri) l = tweets.is_long(tweet) while l != False: tweetsList.append(tweet) id = tweets.get_id(l) - tweet = self.session.twitter.twitter.show_status(id=id) + try: + tweet = self.session.twitter.twitter.show_status(id=id) + except TwythonError as e: + utils.twitter_error(e) + continue l = tweets.is_long(tweet) if l == False: tweetsList.append(tweet) diff --git a/src/twitter/utils.py b/src/twitter/utils.py index 8bd7f2b7..55e3a01e 100644 --- a/src/twitter/utils.py +++ b/src/twitter/utils.py @@ -118,3 +118,10 @@ def is_allowed(tweet, clients): allowed = False log.exception("Tuit not allowed: %s" % (tweet["text"],)) return allowed + +def twitter_error(error): + if error.error_code == 403: + msg = _(u"Sorry, you are not authorised to see this status.") + elif error.error_code == 404: + msg = _(u"No status found with that ID") + output.speak(msg) \ No newline at end of file