Changed retweet API to use the patch from http://code.google.com/p/python-twitter/issues/detail?id=130 for consistency.

This commit is contained in:
Anna 2010-04-10 10:46:51 -04:00
parent 63160e12d0
commit 74b42441dc
4 changed files with 36 additions and 46 deletions

2
README
View File

@ -18,7 +18,7 @@ hg clone https://python-twitter.googlecode.com/hg/ python-twitter
cd python-twitter cd python-twitter
hg update dev hg update dev
patch -p1 < ../mytwitter/python-twitter-GetListStatuses.patch patch -p1 < ../mytwitter/python-twitter-GetListStatuses.patch
patch -p1 < ../mytwitter/python-twitter-Retweet.patch patch -p1 < ../mytwitter/python-twitter-retweet-3.patch
python setup.py build python setup.py build
python setup.py install --user python setup.py install --user

View File

@ -128,7 +128,7 @@ class MyTwitter():
def on_retweet(self, widget): def on_retweet(self, widget):
self.api.Retweet(widget.id) self.api.PostRetweet(widget.id)
### end class MyTwitter ### end class MyTwitter

View File

@ -1,44 +0,0 @@
diff -r 51ac454d5d89 twitter.py
--- a/twitter.py Thu Dec 31 15:06:42 2009 -0500
+++ b/twitter.py Fri Apr 09 18:08:08 2010 -0400
@@ -391,6 +391,10 @@
>>> list = api.GetList('list_slug')
>>> list.member_count
>>> lists = api.GetUserLists()
+
+ Retweet API:
+
+ >>> api.Retweet(id)
'''
DEFAULT_CACHE_TIMEOUT = 60 # cache for 1 minute
@@ -690,6 +694,29 @@
results.append(self.PostUpdate(lines[-1], **kwargs))
return results
+ def Retweet(self, id):
+ '''Retweet the specified status update
+
+ The twitter.Api instance must be authenticated.
+
+ Args:
+ id: The numerical ID of the status update you want to retweet
+
+ Returns:
+ A Status instance representing the retweet
+ '''
+ try:
+ if id:
+ long(id)
+ except:
+ raise TwitterError("id must be a long integer")
+ parameters={'id': id}
+ url = 'http://api.twitter.com/1/statuses/retweet/%s.json' % id
+ json = self._FetchUrl(url, parameters=parameters)
+ data = simplejson.loads(json)
+ self._CheckForTwitterError(data)
+ return NewStatusFromJsonDict(data)
+
def GetReplies(self, since=None, since_id=None, page=None):
'''Get a sequence of status messages representing the 20 most recent
replies (status updates prefixed with @username) to the authenticating

View File

@ -0,0 +1,34 @@
diff -r 51ac454d5d89 twitter.py
--- a/twitter.py Thu Dec 31 15:06:42 2009 -0500
+++ b/twitter.py Sat Apr 10 10:42:52 2010 -0400
@@ -690,6 +690,30 @@
results.append(self.PostUpdate(lines[-1], **kwargs))
return results
+ def PostRetweet(self, id):
+ '''Retweet a tweet with the Retweet API
+
+ The twitter.Api instance must be authenticated.
+
+ Args:
+ id: The numerical ID of the tweet you are retweeting
+
+ Returns:
+ A twitter.Status instance representing the retweet posted
+ '''
+ if not self._username:
+ raise TwitterError("The twitter.Api instance must be authenticated.")
+ try:
+ if int(id) <= 0:
+ raise TwitterError("'id' must be a positive number")
+ except ValueError:
+ raise TwitterError("'id' must be an integer")
+ url = 'http://api.twitter.com/1/statuses/retweet/%s.json' % id
+ json = self._FetchUrl(url, post_data={})
+ data = simplejson.loads(json)
+ self._CheckForTwitterError(data)
+ return NewStatusFromJsonDict(data)
+
def GetReplies(self, since=None, since_id=None, page=None):
'''Get a sequence of status messages representing the 20 most recent
replies (status updates prefixed with @username) to the authenticating