From a06d47cfcc4622221cea52cde638bfb38fd1bb3d Mon Sep 17 00:00:00 2001 From: Anna Date: Sun, 11 Apr 2010 01:37:09 -0400 Subject: [PATCH] Implemented status bar messages for new tweets, and for successfully posting a tweet. --- README | 3 +-- mytwitter.py | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/README b/README index 8818202..87da53b 100644 --- a/README +++ b/README @@ -17,8 +17,7 @@ For the twitter module, you can download and install it with: hg clone https://python-twitter.googlecode.com/hg/ python-twitter cd python-twitter hg update dev -patch -p1 < ../mytwitter/python-twitter-GetListStatuses.patch -patch -p1 < ../mytwitter/python-twitter-retweet-3.patch +for i in ../mytwitter/python-twitter-*.patch; do patch p1 < $i; done python setup.py build python setup.py install --user diff --git a/mytwitter.py b/mytwitter.py index 4400523..a78500e 100755 --- a/mytwitter.py +++ b/mytwitter.py @@ -28,6 +28,7 @@ class MyTwitter(): self.tweets = [] self.list = None self.reply_id = None + self.latest_tweet = None # Authenticate with twitter, set up the API object self.api = twitter.Api(username=self.username, password=self.password) @@ -47,6 +48,7 @@ class MyTwitter(): self.tweet_box = self.widget_tree.get_widget('tweet_box') self.update_entry = self.widget_tree.get_widget('update_entry') self.update_count = self.widget_tree.get_widget('update_count') + self.status_bar = self.widget_tree.get_widget('status_bar') # Build us some labels... for i in range(0, self.num_entries): @@ -80,12 +82,26 @@ class MyTwitter(): else: statuses = self.api.GetListStatuses(self.list, per_page=self.num_entries) + # If this is our first load of this list, don't treat anything as new! + if self.latest_tweet is None: + self.latest_tweet = statuses[0].id + + # Keep count of the new tweets for posting a status message + num_new_tweets = 0 + for i in range(0, self.num_entries): if i < len(statuses): + if statuses[i].id > self.latest_tweet: + num_new_tweets += 1 self.tweets[i].set_status(statuses[i]) else: self.tweets[i].clear_status() + self.latest_tweet = statuses[0].id + self.status_bar.pop(self.status_bar.get_context_id('new_tweets')) + if num_new_tweets > 0: + self.status_bar.push(self.status_bar.get_context_id('new_tweets'), str(num_new_tweets) + ' new tweets') + def update_window_callback(self, widget): self.update_window() @@ -96,6 +112,8 @@ class MyTwitter(): self.update_entry.set_text("") self.api.PostUpdate(text, in_reply_to_status_id=self.reply_id) self.reply_id = None + self.status_bar.push(self.status_bar.get_context_id('update'), + 'Tweet Posted') def update_status_callback(self, widget): @@ -123,6 +141,7 @@ class MyTwitter(): def on_list_select_changed(self, widget): self.list = widget.get_active_text() + self.latest_tweet = None self.update_window()