本文整理汇总了Python中tweepy.API.direct_messages方法的典型用法代码示例。如果您正苦于以下问题:Python API.direct_messages方法的具体用法?Python API.direct_messages怎么用?Python API.direct_messages使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tweepy.API
的用法示例。
在下文中一共展示了API.direct_messages方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TweepyApi
# 需要导入模块: from tweepy import API [as 别名]
# 或者: from tweepy.API import direct_messages [as 别名]
class TweepyApi(BaseTweepyApi, ApiAdapter):
"""
A `ApiAdapter` implementation using `tweepy` library.
http://github.com/tweepy/tweepy/
"""
def __init__(self, *args, **kwargs):
ApiAdapter.__init__(self, *args, **kwargs)
# from `turses.api.base.ApiAdapter`
def init_api(self):
oauth_handler = TweepyOAuthHandler(self._consumer_key,
self._consumer_secret)
oauth_handler.set_access_token(self._access_token_key,
self._access_token_secret)
self._api = BaseTweepyApi(oauth_handler)
@to_user
def verify_credentials(self):
return self._api.me()
@to_user
@include_entities
def get_user(self, screen_name, **kwargs):
return self._api.get_user(screen_name=screen_name, **kwargs)
# timelines
@to_status
@include_entities
def get_home_timeline(self, **kwargs):
tweets = self._api.home_timeline(**kwargs)
retweets = self._api.retweeted_to_me(**kwargs)
tweets.extend(retweets)
return tweets
@to_status
@include_entities
def get_user_timeline(self, screen_name, **kwargs):
return self._api.user_timeline(screen_name, **kwargs)
@to_status
@include_entities
def get_own_timeline(self, **kwargs):
me = self.verify_credentials()
tweets = self._api.user_timeline(screen_name=me.screen_name,
**kwargs)
retweets = self._api.retweeted_by_me(**kwargs)
tweets.extend(retweets)
return tweets
@to_status
@include_entities
def get_mentions(self, **kwargs):
return self._api.mentions(**kwargs)
@to_status
@include_entities
def get_favorites(self, **kwargs):
return self._api.favorites(**kwargs)
@to_direct_message
@include_entities
def get_direct_messages(self, **kwargs):
dms = self._api.direct_messages(**kwargs)
sent = self._api.sent_direct_messages(**kwargs)
dms.extend(sent)
return dms
# NOTE:
# `get_thread` is not decorated with `to_status` because
# it uses `TweepyApi.get_user_timeline` which is already
# decorated
@include_entities
def get_thread(self, status, **kwargs):
"""
Get the conversation to which `status` belongs.
It filters the last tweets by the participanting users and
based on mentions to each other.
"""
author = status.authors_username
mentioned = status.mentioned_usernames
if author not in mentioned:
mentioned.append(author)
tweets = []
for username in mentioned:
tweets.extend(self.get_user_timeline(username, **kwargs))
def belongs_to_conversation(status):
for username in mentioned:
if username in status.text:
return True
return filter(belongs_to_conversation, tweets)
@to_status_from_search
#.........这里部分代码省略.........
示例2: TweepyApi
# 需要导入模块: from tweepy import API [as 别名]
# 或者: from tweepy.API import direct_messages [as 别名]
class TweepyApi(BaseTweepyApi, ApiAdapter):
"""
A :class:`turses.api.ApiAdapter` implementation using `tweepy` library.
http://github.com/tweepy/tweepy/
"""
def __init__(self, *args, **kwargs):
ApiAdapter.__init__(self, *args, **kwargs)
# from `turses.api.base.ApiAdapter`
def init_api(self):
oauth_handler = TweepyOAuthHandler(self._consumer_key,
self._consumer_secret,
secure=configuration.twitter['use_https'])
oauth_handler.set_access_token(self._access_token_key,
self._access_token_secret)
self._api = BaseTweepyApi(oauth_handler, secure=configuration.twitter['use_https'])
@to_user
def verify_credentials(self):
return self._api.me()
@to_user
@include_entities
def get_user(self, screen_name, **kwargs):
return self._api.get_user(screen_name=screen_name, **kwargs)
# timelines
@to_status
@include_entities
def get_status(self, status_id, **kwargs):
return self._api.get_status(status_id, **kwargs)
@to_status
@include_entities
def get_home_timeline(self, **kwargs):
tweets = self._api.home_timeline(**kwargs)
retweets = self._api.retweeted_to_me(**kwargs)
tweets.extend(retweets)
return tweets
@to_status
@include_entities
def get_user_timeline(self, screen_name, **kwargs):
return self._api.user_timeline(screen_name, **kwargs)
@to_status
@include_entities
def get_own_timeline(self, **kwargs):
me = self.verify_credentials()
tweets = self._api.user_timeline(screen_name=me.screen_name,
**kwargs)
retweets = self._api.retweeted_by_me(**kwargs)
tweets.extend(retweets)
return tweets
@to_status
@include_entities
def get_mentions(self, **kwargs):
return self._api.mentions(**kwargs)
@to_status
@include_entities
def get_favorites(self, **kwargs):
return self._api.favorites(**kwargs)
@to_direct_message
@include_entities
def get_direct_messages(self, **kwargs):
dms = self._api.direct_messages(**kwargs)
sent = self._api.sent_direct_messages(**kwargs)
dms.extend(sent)
return dms
@include_entities
def get_thread(self, status, **kwargs):
"""
Get the conversation to which `status` belongs.
"""
users_in_conversation = [status.authors_username]
# Save the users that are mentioned
for user in status.mentioned_usernames:
if user not in users_in_conversation:
users_in_conversation.append(user)
# Fetch the tweets from participants before and after `status`
# was published
tweets_from_participants = []
for user in users_in_conversation:
user_tweets = self._get_older_and_newer_tweets(user, status.id)
tweets_from_participants.extend(user_tweets)
def belongs_to_conversation(tweet):
for user in users_in_conversation:
if user in tweet.text:
return True
#.........这里部分代码省略.........
示例3: TweepyAPITests
# 需要导入模块: from tweepy import API [as 别名]
# 或者: from tweepy.API import direct_messages [as 别名]
class TweepyAPITests(unittest.TestCase):
def setUp(self):
auth = OAuthHandler(oauth_consumer_key, oauth_consumer_secret)
auth.set_access_token(oauth_token, oauth_token_secret)
self.api = API(auth)
self.api.retry_count = 2
self.api.retry_delay = 5
def testhometimeline(self):
self.api.home_timeline()
def testfriendstimeline(self):
self.api.friends_timeline()
def testusertimeline(self):
self.api.user_timeline()
self.api.user_timeline('twitter')
def testmentions(self):
self.api.mentions()
def testretweetedbyme(self):
self.api.retweeted_by_me()
def testretweetedbyuser(self):
self.api.retweeted_by_user('twitter')
def testretweetedtome(self):
self.api.retweeted_to_me()
def testretweetsofme(self):
self.api.retweets_of_me()
def testretweet(self):
s = self.api.retweet(test_tweet_id)
s.destroy()
def testretweets(self):
self.api.retweets(test_tweet_id)
def testgetstatus(self):
self.api.get_status(id=test_tweet_id)
def testupdateanddestroystatus(self):
# test update
text = 'testing %i' % random.randint(0, 1000)
update = self.api.update_status(status=text)
self.assertEqual(update.text, text)
# test destroy
deleted = self.api.destroy_status(id=update.id)
self.assertEqual(deleted.id, update.id)
def testgetuser(self):
u = self.api.get_user('twitter')
self.assertEqual(u.screen_name, 'twitter')
u = self.api.get_user(783214)
self.assertEqual(u.screen_name, 'twitter')
def testsearchusers(self):
self.api.search_users('twitter')
def testme(self):
me = self.api.me()
self.assertEqual(me.screen_name, username)
def testfriends(self):
self.api.friends()
def testfollowers(self):
self.api.followers()
def testdirectmessages(self):
self.api.direct_messages()
def testsentdirectmessages(self):
self.api.sent_direct_messages()
def testsendanddestroydirectmessage(self):
# send
sent_dm = self.api.send_direct_message(username, text='test message')
self.assertEqual(sent_dm.text, 'test message')
self.assertEqual(sent_dm.sender.screen_name, username)
self.assertEqual(sent_dm.recipient.screen_name, username)
# destroy
destroyed_dm = self.api.destroy_direct_message(sent_dm.id)
self.assertEqual(destroyed_dm.text, sent_dm.text)
self.assertEqual(destroyed_dm.id, sent_dm.id)
self.assertEqual(destroyed_dm.sender.screen_name, username)
self.assertEqual(destroyed_dm.recipient.screen_name, username)
def testcreatedestroyfriendship(self):
enemy = self.api.destroy_friendship('twitter')
self.assertEqual(enemy.screen_name, 'twitter')
# Wait 5 seconds to allow Twitter time
# to process the friendship destroy request.
#.........这里部分代码省略.........
示例4: handle
# 需要导入模块: from tweepy import API [as 别名]
# 或者: from tweepy.API import direct_messages [as 别名]
def handle(text, mic, profile):
consumer_key = profile['twitter']["TW_CONSUMER_KEY"]
consumer_secret = profile['twitter']["TW_CONSUMER_SECRET"]
access_token = profile['twitter']["TW_ACCESS_TOKEN"]
access_token_secret = profile['twitter']["TW_ACCESS_TOKEN_SECRET"]
woeid = int(profile['twitter']["WOEID"])
try:
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = API(auth)
myTwitterID = api.me().id
except Exception as e:
print e
mic.say("Connection Error. Twitter service is offline.")
return
directMessages = api.direct_messages(count=1)
latestRetweet = 0
latestMention = 0
latestDirectMessage = 0
try:
directMessageIDFile = open(jasperpath.data('twitter', 'directMessageID.txt'),'r')
directMessageID = directMessageIDFile.readline()
latestDirectMessage = int(directMessageID)
directMessageIDFile.close()
except IOError:
if len(directMessages) > 0:
for directMessage in directMessages:
latestDirectMessage = directMessage.id
directMessageIDFile = open(jasperpath.data('twitter', 'directMessageID.txt'),'w')
directMessageIDFile.write(str(latestDirectMessage))
directMessageIDFile.close()
mentions = api.mentions_timeline(count=1)
try:
mentionIDFile = open(jasperpath.data('twitter', 'mentionIDFile.txt'),'r')
latestMentionID = mentionIDFile.readline()
latestMention = int(latestMentionID)
mentionIDFile.close()
except IOError:
if len(mentions) > 0:
mentionIDFile = open(jasperpath.data('twitter', 'mentionIDFile.txt'),'w')
for mention in mentions:
latestMention = mention.id
mentionIDFile.write(str(latestMention))
mentionIDFile.close()
retweets = api.retweets_of_me(count=1)
try:
retweetsIDFile = open(jasperpath.data('twitter', 'retweetsIDFile.txt'),'r')
retweetsID = retweetsIDFile.readline()
latestRetweet = int(retweetsID)
retweetsIDFile.close()
except IOError:
if len(retweets) > 0:
retweetsIDFile = open(jasperpath.data('twitter', 'retweetsIDFile.txt'),'w')
for retweet in retweets:
latestRetweet = retweet.id
retweetsIDFile.write(str(latestRetweet))
retweetsIDFile.close()
if bool(re.search(r'\bTWEET\b', text, re.IGNORECASE)):
sendTweet(mic, api)
if bool(re.search(r'\bNOTIFICATIONS\b', text, re.IGNORECASE)):
getNotifications(mic,latestRetweet,latestMention,latestDirectMessage, api)
if bool(re.search(r'\bTRENDING\b', text, re.IGNORECASE)):
getWhatsTrending(mic, api, woeid)
if bool(re.search(r'\bTWEETS\b', text, re.IGNORECASE)):
getPublicTweets(mic, api)
示例5: TweepyApi
# 需要导入模块: from tweepy import API [as 别名]
# 或者: from tweepy.API import direct_messages [as 别名]
#.........这里部分代码省略.........
def to_user(user):
kwargs = {
'screen_name': user.screen_name,
}
return User(**kwargs)
return to_user(self._api.me())
# timelines
def get_home_timeline(self, **kwargs):
tweets = self._api.home_timeline(**kwargs)
retweets = self._api.retweeted_to_me(**kwargs)
tweets.extend(retweets)
return self._to_status(tweets)
def get_user_timeline(self, screen_name, **kwargs):
return self._to_status(self._api.user_timeline(screen_name,
**kwargs))
def get_own_timeline(self, **kwargs):
me = self.verify_credentials()
tweets = self._api.user_timeline(screen_name=me.screen_name,
**kwargs)
retweets = self._api.retweeted_by_me(**kwargs)
tweets.extend(retweets)
return self._to_status(tweets)
def get_mentions(self, **kwargs):
return self._to_status(self._api.mentions(**kwargs))
def get_favorites(self, **kwargs):
return self._to_status(self._api.favorites(**kwargs))
def get_direct_messages(self, **kwargs):
dms = self._api.direct_messages(**kwargs)
sent = self._api.sent_direct_messages(**kwargs)
dms.extend(sent)
return self._to_direct_message(dms)
def get_thread(self, status, **kwargs):
author = get_authors_username(status)
mentioned = get_mentioned_usernames(status)
if author not in mentioned:
mentioned.append(author)
tweets = []
for username in mentioned:
tweets.extend(self.get_user_timeline(username, **kwargs))
def belongs_to_conversation(status):
for username in mentioned:
if username in status.text:
return True
return filter(belongs_to_conversation, tweets)
def get_search(self, text, **kwargs):
# `tweepy.API.search` returns `tweepy.models.SearchResult` objects instead
# `tweepy.models.Status` so we have to convert them differently
def to_status(status):
kwargs = {
'id': status.id,
'created_at': status.created_at,
'user': status.from_user,
'text': status.text,
}
示例6: __init__
# 需要导入模块: from tweepy import API [as 别名]
# 或者: from tweepy.API import direct_messages [as 别名]
class NestBot:
def __init__(self, consumer_key, consumer_secret, access_token, access_token_secret, watermarkFilePath):
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
self.api = API(auth)
self.watermarkFilePath = watermarkFilePath
# 'example: 278910647155179520'
self.last_message_id = self.ReadAllText(watermarkFilePath)
def ReadAllText(self, filePath):
if os.path.exists(filePath):
f = open(filePath, 'r')
text = f.read().strip()
f.close()
if (len(text) == 0):
text = None
else:
text = None
return text;
def WriteAllText(self, filePath, text):
f = open(filePath, 'w')
f.write(text)
f.close()
def shouldExecute(self, sender):
return sender == 'vboctor'
def printMessage(self, id, message, sender, sentAt):
print id, message, sender, sentAt
def executeMessage(self, id, message, sender, sentAt):
if (not self.shouldExecute(sender)):
print 'Skipping "' + message + '" from "' + sender + '"'
elif (message == 'status'):
print 'getting status... not implemented.'
self.api.send_direct_message(user = sender, text = 'Here is your status!!! - ' + str(id))
elif (message == 'away'):
print 'setting away... not implemented.'
self.api.send_direct_message(user = sender, text = 'Your nest is now set to away.' + str(id))
def updateWatermark(self, messageId):
self.last_message_id = str(messageId)
self.WriteAllText(self.watermarkFilePath, self.last_message_id)
def run(self):
while (True):
print 'checking queue...'
messages = self.api.direct_messages(since_id = self.last_message_id)
if (len(messages) == 0):
print ' no work, sleep for a while.'
time.sleep(20)
else:
# reverse the list of messages to process them in chronological order
# this is import to make the last command win and for watermarking to work
messages = reversed(messages)
for message in messages:
self.printMessage(message.id, message.text, message.sender.screen_name, message.created_at)
self.executeMessage(message.id, message.text, message.sender.screen_name, message.created_at)
self.updateWatermark(message.id)
示例7: TweepyAPITests
# 需要导入模块: from tweepy import API [as 别名]
# 或者: from tweepy.API import direct_messages [as 别名]
class TweepyAPITests(unittest.TestCase):
def setUp(self):
auths = []
for consumer_key, consumer_secret, access_key, access_secret in oauth_keys:
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
auths.append(auth)
self.api = API(auths)
self.api.retry_count = 2
self.api.retry_delay = 5
# TODO: Actually have some sort of better assertion
def testgetoembed(self):
data = self.api.get_oembed(test_tweet_id)
self.assertEqual(data["author_name"], "Twitter")
def testhometimeline(self):
self.api.home_timeline()
def testusertimeline(self):
self.api.user_timeline()
self.api.user_timeline("twitter")
def testmentionstimeline(self):
self.api.mentions_timeline()
def testretweetsofme(self):
self.api.retweets_of_me()
def testretweet(self):
# TODO(josh): Need a way to get random tweets to retweet.
raise SkipTest()
def testretweets(self):
self.api.retweets(test_tweet_id)
def testgetstatus(self):
self.api.get_status(id=test_tweet_id)
def testupdateanddestroystatus(self):
# test update
text = "testing %i" % random.randint(0, 1000)
update = self.api.update_status(status=text)
self.assertEqual(update.text, text)
# test destroy
deleted = self.api.destroy_status(id=update.id)
self.assertEqual(deleted.id, update.id)
def testgetuser(self):
u = self.api.get_user("twitter")
self.assertEqual(u.screen_name, "twitter")
u = self.api.get_user(783214)
self.assertEqual(u.screen_name, "twitter")
def testsearchusers(self):
self.api.search_users("twitter")
def testsuggestedcategories(self):
self.api.suggested_categories()
def testsuggestedusers(self):
categories = self.api.suggested_categories()
if len(categories) != 0:
self.api.suggested_users(categories[0].slug)
def testsuggesteduserstweets(self):
categories = self.api.suggested_categories()
if len(categories) != 0:
self.api.suggested_users_tweets(categories[0].slug)
def testme(self):
me = self.api.me()
self.assertEqual(me.screen_name, username)
def testdirectmessages(self):
self.api.direct_messages()
def testsentdirectmessages(self):
self.api.sent_direct_messages()
def testsendanddestroydirectmessage(self):
# send
sent_dm = self.api.send_direct_message(username, text="test message")
self.assertEqual(sent_dm.text, "test message")
self.assertEqual(sent_dm.sender.screen_name, username)
self.assertEqual(sent_dm.recipient.screen_name, username)
# destroy
destroyed_dm = self.api.destroy_direct_message(sent_dm.id)
self.assertEqual(destroyed_dm.text, sent_dm.text)
self.assertEqual(destroyed_dm.id, sent_dm.id)
self.assertEqual(destroyed_dm.sender.screen_name, username)
self.assertEqual(destroyed_dm.recipient.screen_name, username)
def testcreatedestroyfriendship(self):
enemy = self.api.destroy_friendship("twitter")
self.assertEqual(enemy.screen_name, "twitter")
#.........这里部分代码省略.........