Files
LinkScope_Client/Modules/Twitter/TwitterSearchByID.py
2021-12-17 13:25:40 -05:00

81 lines
3.3 KiB
Python

#!/usr/bin/env python3
class TwitterSearchByID:
name = "Get Tweets by Twitter Handle"
description = """
Returns Tweets per ID.
"""
originTypes = {'Social Media Handle'}
resultTypes = {'Phrase'}
parameters = {'Max Results': {'description': 'Please enter the maximum number of results to return.',
'type': 'String',
'default': '5'},
'Access Token': {
'description': 'Enter your API Key',
'type': 'String',
'value': ''},
'Secret': {
'description': 'Enter your Secret Key.',
'type': 'String',
'value': ''},
'Consumer API Key': {
'description': 'Enter your API Key',
'type': 'String',
'value': ''},
'Consumer Secret Key': {
'description': 'Enter your Secret Key.',
'type': 'String',
'value': ''},
}
def resolution(self, entityJsonList, parameters):
import tweepy
returnResults = []
try:
linkNumbers = int(parameters['Max Results'])
except ValueError:
return "Invalid integer provided in 'Max Results' parameter"
if linkNumbers <= 0:
return []
access_token = parameters['Access Token'].strip()
access_token_secret = parameters['Secret'].strip()
consumer_key = parameters['Consumer API Key'].strip()
consumer_secret = parameters['Consumer Secret Key'].strip()
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
for entity in entityJsonList:
uid = entity['uid']
twitter_id = entity['Twitter ID']
cursor = tweepy.Cursor(api.user_timeline, id=twitter_id, tweeet_mode='extended').items(linkNumbers)
try:
for tweet in cursor:
index_of_child = len(returnResults)
returnResults.append([{'Phrase':
tweet.text[0: 15] + ' Full Tweet in Notes',
'Notes': tweet.text,
# 'Date Created': tweet.created_at,
'Entity Type': 'Phrase'},
{uid: {'Resolution': 'Tweet', 'Notes': ''}}])
returnResults.append([{'Phrase': 'Re-Tweet Count: ' + str(tweet.retweet_count),
'Entity Type': 'Phrase'},
{index_of_child: {'Resolution': 'Re-Tweet Count:', 'Notes': ''}}])
returnResults.append([{'Phrase': 'Favorite Count: ' + str(tweet.favorite_count),
'Entity Type': 'Phrase'},
{index_of_child: {'Resolution': 'Favorite Count', 'Notes': ''}}])
except tweepy.TweepError:
return 'Invalid API Keys'
return returnResults