diff --git a/twitterwidgets.py b/twitterwidgets.py index 7fb615d..3323f34 100644 --- a/twitterwidgets.py +++ b/twitterwidgets.py @@ -470,16 +470,20 @@ class TweetBox(gtk.HBox): else: self.user_button.set_label(name + " (" + user.screen_name + ") ") - # and the text + ### and the text new_text = status.text - new_text = re.sub(r'&([^;]*?)( |$)', r'&\1\2', new_text) - new_text = re.sub(r'"([^;]*?)( |$)', r'"\1\2', new_text) + + # Clean up odd characters in the text + new_text = re.sub(r'&(?=[^;]*?( |&|$))', r'&', new_text) + new_text = re.sub(r'"(?=[^;]*?( |"|$))', r'"', new_text) + if gtk.gtk_version[0] > 2 or (gtk.gtk_version[0] == 2 and gtk.gtk_version[1] >= 18): # Make URLs into links - new_text = re.sub(r"(http://.*?)([^0-9a-zA-Z.~/_?=&-]|$)", r'\1\2', new_text) + new_text = re.sub(r"(http://.*?)(?=[^0-9a-zA-Z.~/_?=&;-]|$)", r'\1', new_text) # Make @ or # refs into links, to be used internally new_text = re.sub(r'@(.*?)([^0-9a-zA-Z_]|$)', self._make_user_link, new_text) new_text = re.sub(r'#(.*?)([ ;,.:*]|$)', self._make_hashtag_link, new_text) + self.text.set_markup(new_text) # If this is in reply to something, set appropriate label