Implemented status bar messages for new tweets, and for successfully posting a tweet.

This commit is contained in:
Anna 2010-04-11 01:37:09 -04:00
parent 215b84a3fe
commit a06d47cfcc
2 changed files with 20 additions and 2 deletions

3
README
View File

@ -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

View File

@ -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()