Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
PrintUsageAndExit()
if o in ("--username"):
usernameflag = a
if o in ("--password"):
passwordflag = a
if o in ("--encoding"):
encoding = a
message = ' '.join(args)
if not message:
PrintUsageAndExit()
rc = TweetRc()
username = usernameflag or GetUsernameEnv() or rc.GetUsername()
password = passwordflag or GetPasswordEnv() or rc.GetPassword()
if not username or not password:
PrintUsageAndExit()
api = twitterapi.Api(username=username, password=password, input_encoding=encoding)
try:
status = api.PostUpdate(message)
except UnicodeDecodeError:
print "Your message could not be encoded. Perhaps it contains non-ASCII characters? "
print "Try explicitly specifying the encoding with the it with the --encoding flag"
sys.exit(2)
print "%s just posted: %s" % (status.user.name, status.text)
def GetFriends(self, user=None):
'''Fetch the sequence of twitterapi.User instances, one for each friend.
Args:
user: the username or id of the user whose friends you are fetching. If
not specified, defaults to the authenticated user. [optional]
The twitterapi.Api instance must be authenticated.
Returns:
A sequence of twitterapi.User instances, one for each friend
'''
if not self._username:
raise TwitterError("twitterapi.Api instance must be authenticated")
if user:
url = 'http://twitter.com/statuses/friends/%s.json' % user
else:
url = 'http://twitter.com/statuses/friends.json'
json = self._FetchUrl(url)
data = simplejson.loads(json)
return [User.NewFromJsonDict(x) for x in data]
def GetFollowers(self):
'''Fetch the sequence of twitterapi.User instances, one for each follower
The twitterapi.Api instance must be authenticated.
Returns:
A sequence of twitterapi.User instances, one for each follower
'''
if not self._username:
raise TwitterError("twitterapi.Api instance must be authenticated")
url = 'http://twitter.com/statuses/followers.json'
json = self._FetchUrl(url)
data = simplejson.loads(json)
return [User.NewFromJsonDict(x) for x in data]
count: the number of status messages to retrieve [optional]
since:
Narrows the returned results to just those statuses created
after the specified HTTP-formatted date. [optional]
since_id:
Returns only statuses with an ID greater than (that is,
more recent than) the specified ID. [optional]
Returns:
A sequence of twitterapi.Status instances, one for each message up to count
'''
try:
if count:
int(count)
except:
raise TwitterError("Count must be an integer")
parameters = {}
if count:
parameters['count'] = count
if since:
parameters['since'] = since
if since_id:
parameters['since_id'] = since_id
if user:
url = 'http://twitter.com/statuses/user_timeline/%s.json' % user
elif not user and not self._username:
raise TwitterError("User must be specified if API is not authenticated.")
else:
url = 'http://twitter.com/statuses/user_timeline.json'
json = self._FetchUrl(url, parameters=parameters)
data = simplejson.loads(json)
return [Status.NewFromJsonDict(x) for x in data]
'''Destroys the status specified by the required ID parameter.
The twitterapi.Api instance must be authenticated and thee
authenticating user must be the author of the specified status.
Args:
id: The numerical ID of the status you're trying to destroy.
Returns:
A twitterapi.Status instance representing the destroyed status message
'''
try:
if id:
int(id)
except:
raise TwitterError("id must be an integer")
url = 'http://twitter.com/statuses/destroy/%s.json' % id
json = self._FetchUrl(url, post_data={})
data = simplejson.loads(json)
return Status.NewFromJsonDict(data)
def GetReplies(self):
'''Get a sequence of status messages representing the 20 most recent
replies (status updates prefixed with @username) to the authenticating
user.
Returns:
A sequence of twitterapi.Status instances, one for each reply to the user.
'''
url = 'http://twitter.com/statuses/replies.json'
if not self._username:
raise TwitterError("The twitterapi.Api instance must be authenticated.")
json = self._FetchUrl(url)
data = simplejson.loads(json)
return [Status.NewFromJsonDict(x) for x in data]
def PostUpdate(self, text):
'''Post a twitter status message from the authenticated user.
The twitterapi.Api instance must be authenticated.
Args:
text: The message text to be posted. Must be less than 140 characters.
Returns:
A twitterapi.Status instance representing the message posted
'''
if not self._username:
raise TwitterError("The twitterapi.Api instance must be authenticated.")
if len(text) > 140:
raise TwitterError("Text must be less than or equal to 140 characters.")
url = 'http://twitter.com/statuses/update.json'
data = {'status': text}
json = self._FetchUrl(url, post_data=data)
data = simplejson.loads(json)
return Status.NewFromJsonDict(data)
try:
if count:
int(count)
except:
raise TwitterError("Count must be an integer")
parameters = {}
if count:
parameters['count'] = count
if since:
parameters['since'] = since
if since_id:
parameters['since_id'] = since_id
if user:
url = 'http://twitter.com/statuses/user_timeline/%s.json' % user
elif not user and not self._username:
raise TwitterError("User must be specified if API is not authenticated.")
else:
url = 'http://twitter.com/statuses/user_timeline.json'
json = self._FetchUrl(url, parameters=parameters)
data = simplejson.loads(json)
return [Status.NewFromJsonDict(x) for x in data]
def GetDirectMessages(self, since=None):
'''Returns a list of the direct messages sent to the authenticating user.
The twitterapi.Api instance must be authenticated.
Args:
since:
Narrows the returned results to just those statuses created
after the specified HTTP-formatted date. [optional]
Returns:
A sequence of twitterapi.DirectMessage instances
'''
url = 'http://twitter.com/direct_messages.json'
if not self._username:
raise TwitterError("The twitterapi.Api instance must be authenticated.")
parameters = {}
if since:
parameters['since'] = since
json = self._FetchUrl(url, parameters=parameters)
data = simplejson.loads(json)
return [DirectMessage.NewFromJsonDict(x) for x in data]
the friends_timeline. If unspecified, the username and password
must be set in the twitterapi.Api instance. [optional]
since:
Narrows the returned results to just those statuses created
after the specified HTTP-formatted date. [optional]
since_id:
Returns only statuses with an ID greater than (that is,
more recent than) the specified ID. [optional]
Returns:
A sequence of twitterapi.Status instances, one for each message
'''
if user:
url = 'http://twitter.com/statuses/friends_timeline/%s.json' % user
elif not user and not self._username:
raise TwitterError("User must be specified if API is not authenticated.")
else:
url = 'http://twitter.com/statuses/friends_timeline.json'
parameters = {}
if since:
parameters['since'] = since
if since_id:
parameters['since_id'] = since_id
json = self._FetchUrl(url, parameters=parameters)
data = simplejson.loads(json)
return [Status.NewFromJsonDict(x) for x in data]