def update_facebook_comments(url, entity_uuid): access_token = get(User, email='*****@*****.**').code graph = facebook.GraphAPI(access_token) post_response = graph.get_object('me/posts') comments = [] counter = 0 while post_response.get('paging', {}).get('next') is not None: for post in post_response['data']: if url in post.get('message', ''): comment_response = graph.request('{}/comments'.format( post.get('id'))) comments = comments + comment_response.get('data') while comment_response.get('paging', {}).get('next') is not None: after = comment_response.get('paging', {}).get('cursors', {}).get('after') comment_response = graph.request( '{}/comments'.format(post.get('id')), {'after': after}) comments = comments + comment_response.get('data') link = "https://www.facebook.com/photo.php?fbid={}".format( post.get('id').split('_')[0]) comments = [ process_fb_comment(comment, link, graph) for comment in comments ] for comment in comments: Comment.add_or_update(comment.get('id'), entity_uuid, comment) return comments if counter > 10: return [] post_response = requests.get( post_response.get('paging', {}).get('next')).json()
def get_mentions(screen_name, tweet_id, api, entity_uuid): tweets = [] for mention in tweepy.Cursor(api.search, q=screen_name, rpp=50).items(): if mention.in_reply_to_status_id == tweet_id: Comment.add_or_update(mention.id, entity_uuid, process_tweet(mention)) tweets.append(mention) return tweets
def find_all_comments(): auth = tweepy.OAuthHandler(config.TWITTER_CONSUMER_KEY, config.TWITTER_CONSUMER_SECRET) api = tweepy.API(auth) tweets = search_twitter('kateheddleston.com', api) tweets = tweets + search_user_timeline('heddle317', 'kateheddleston.com', api) tweets = [process_tweet(tweet) for tweet in tweets] for tweet in tweets: Comment.add_or_update(tweet.get('id'), tweet.get('entity_uuid'), tweet) return tweets
def search_twitter(url, api, entity_uuid): tweets = [] for tweet in tweepy.Cursor(api.search, q=url, rpp=100, include_entities=True,).items(): tweet.entity_uuid = get_entity_uuid(tweet.entities.get('urls')) Comment.add_or_update(tweet.id, entity_uuid, process_tweet(tweet)) tweets.append(tweet) tweets = tweets + get_mentions(tweet.author.screen_name, tweet.id, api, entity_uuid) return tweets
def search_twitter(url, api, entity_uuid): tweets = [] for tweet in tweepy.Cursor( api.search, q=url, rpp=100, include_entities=True, ).items(): tweet.entity_uuid = get_entity_uuid(tweet.entities.get('urls')) Comment.add_or_update(tweet.id, entity_uuid, process_tweet(tweet)) tweets.append(tweet) tweets = tweets + get_mentions(tweet.author.screen_name, tweet.id, api, entity_uuid) return tweets
def update_facebook_comments(url, entity_uuid): access_token = get(User, email='*****@*****.**').code graph = facebook.GraphAPI(access_token) post_response = graph.get_object('me/posts') comments = [] counter = 0 while post_response.get('paging', {}).get('next') is not None: for post in post_response['data']: if url in post.get('message', ''): comment_response = graph.request('{}/comments'.format(post.get('id'))) comments = comments + comment_response.get('data') while comment_response.get('paging', {}).get('next') is not None: after = comment_response.get('paging', {}).get('cursors', {}).get('after') comment_response = graph.request('{}/comments'.format(post.get('id')), {'after': after}) comments = comments + comment_response.get('data') link = "https://www.facebook.com/photo.php?fbid={}".format(post.get('id').split('_')[0]) comments = [process_fb_comment(comment, link, graph) for comment in comments] for comment in comments: Comment.add_or_update(comment.get('id'), entity_uuid, comment) return comments if counter > 10: return [] post_response = requests.get(post_response.get('paging', {}).get('next')).json()