def main(): t = TwitterAPI() query_1 = sys.argv[1] query_2 = sys.argv[2] tweet_limit = sys.argv[3] search_results_1 = t.search_tweets(query_1, tweet_limit) search_results_2 = t.search_tweets(query_2, tweet_limit) print improved_similarity(search_results_1, search_results_2)
def followers(self, celebrity): match = self._get_match(celebrity) if match is None: raise ValueError(celebrity) (celebrity_name, celebrity_handle) = match tapi = TwitterAPI() follower_count = tapi.followers(celebrity_handle) return "%s has %d Twitter followers." % (celebrity_name.title(), follower_count)
def main(): t = TwitterAPI() query_1 = sys.argv[1] query_2 = sys.argv[2] tweet_limit = sys.argv[3] search_results_1 = t.search_tweets(query_1, tweet_limit) search_results_2 = t.search_tweets(query_2, tweet_limit) query_token_set_1 = set(tokenize(' '.join(search_results_1))) query_token_set_2 = set(tokenize(' '.join(search_results_2))) print jaccard_similarity(query_token_set_1, query_token_set_2)
def process(request): user_identifier = request.POST['user_identifier'] user_identifier_type = request.POST['user_identifier_type'] twitter_api = TwitterAPI() try: response = redirect('result') if user_identifier_type == "user_id": user = Users.objects.get(user_id=user_identifier) response.set_cookie('app_user_id', user_identifier) else: user = Users.objects.get(user_name=user_identifier) response.set_cookie('app_user_name', user_identifier) try: api = twitter_api.get_api_object(user.user_access_token, user.user_access_secret) response.set_cookie('app_access_token', user.user_access_token) response.set_cookie('app_access_secret', user.user_access_secret) except tweepy.TweepError: user.delete() print "Authentication failed. Redirecting user to relogin" redirect_url = twitter_api.auth_handler.get_authorization_url() request_token = twitter_api.auth_handler.request_token response = redirect(redirect_url) response.set_cookie('request_token', request_token) if user_identifier_type == "user_id": response.set_cookie('app_user_id', user_identifier) else: response.set_cookie('app_user_name', user_identifier) return response except Users.DoesNotExist: print "User not found in DB. Will redirect user to fetch verifier token" response = redirect(twitter_api.auth_handler.get_authorization_url()) if user_identifier_type == "user_id": response.set_cookie('app_user_id', user_identifier) else: response.set_cookie('app_user_name', user_identifier) request_token = twitter_api.auth_handler.request_token response.set_cookie('request_token', request_token) return response
def init_twitter_api( self ): # this will throw StopIteration if all proxies have been tried... if self.proxies: try: self.client_args['proxies'] = next( self.proxies)['proxy_dict'] # this will throw out # logger.info("client_args: %s"%json.dumps(self.client_args)) except StopIteration as exc: raise except Exception as exc: self.init_twitter_api() if self.twitter_api: del self.twitter_api # crawler_id=self.crawler_id, self.twitter_api = TwitterAPI(apikeys=self.apikeys, client_args=self.client_args)
def list(self): if (time.time() - self.last_request) >= CACHE_TIME: t = TwitterAPI() active = t.get_active_tweets("#riverguard", "36.528580", "-6.213026", RADIUS)["statuses"] passive = t.get_passive_tweets("36.528580", "-6.213026", RADIUS)["statuses"] passive = t.extract_image_tweets(passive)[:15] v = VisionAPI() passive = v.tag_images(passive) relevant_tags = ["waste", "algae", "fish", "water", "litter"] passive = self.filter_non_relevant_tweets(passive, relevant_tags) tweets = active + passive self.log.info('getting tweets from twitter') for tweet in tweets: self.repository.create(tweet) self.last_request = time.time() return self.repository.list()
def eval_emotion(twitter_name): print("Start evaluating") waston_emotion = WastonEmotion(cfg.waston_name, cfg.waston_password) twitter_api = TwitterAPI(cfg.twitter_key, cfg.twitter_secret) twitter_api.fetch_bearer_key() data = twitter_api.get_timelines_by_screen_name(twitter_name) print("Data fetched") ret = "<!DOCTYPE html><html><head><title>Show Items</title><script type='text/javascript' src='../static/jquery.js'></script> \ <script>" username, profile_image_url = twitter_api.get_user_name_and_image(twitter_name) ret += 'profile_image_url="{}";'.format(profile_image_url) ret += 'username="******";'.format(username) ret += 'background_file_name="../static/background02.png";' ret += 'fear="#D0C9C1";' ret += 'sadness="#C4CCC7";' ret += 'joy="#F4DFC1";' ret += 'anger="#D5BBAA";' ret += 'disgust="#988A81";\n' ret += 'color_list=[' color_list = [] emotion_list = [] for item in data: res = waston_emotion.getEmotion(item['text']) if 'emotion' in res: emotion_list.append(get_max_score_key(res['emotion']['document']['emotion'])) print(item['text']) emotion_count = len(emotion_list) for idx, item in enumerate(emotion_list): ret += "[{},{}],".format(idx/(emotion_count - 1), item) ret += "];\n" ret += "</script><script type='text/javascript' src='../static/main.js'></script>" ret += "</head><body><canvas id='canvas1' height='640', width='932'></canvas><img src='../static/background02.png' style='display:none' id='bg-img'><img src='"+ profile_image_url+ "' style='display:none' id='profile-img'></body></html>" return ret
def result(request): twitter_api = TwitterAPI() if ('app_access_token' in request.COOKIES.keys()) or ('app_access_secret' in request.COOKIES.keys()): api = twitter_api.get_api_object( request.COOKIES.get('app_access_token'), request.COOKIES.get('app_access_secret')) user_id = api.me().id_str else: api = twitter_api.get_api_object_from_verifier( request.GET['oauth_verifier'], request.COOKIES.get('request_token')) user_access_token = twitter_api.auth_handler.access_token user_access_secret = twitter_api.auth_handler.access_token_secret user_id = api.me().id_str user_name = api.me().screen_name new_user_entry = Users(user_name=user_name, user_id=str(user_id), user_access_secret=user_access_secret, user_access_token=user_access_token) new_user_entry.save() calculated_value = PostTimeCalculator.calculate(user_id, api) best_time_to_post = calculated_value['best_time_to_post'] best_day_to_post = calculated_value['best_day_to_post'] return render( request, 'TimeToPost/result.html', { 'best_time_to_post': best_time_to_post, 'best_day_to_post': best_day_to_post })
queries = loop.run_until_complete(api.get_tweets(queries)) loop.close() tweets = [tweet for query in queries for tweet in query] return tweets if __name__ == "__main__": # Get credentials consumer_key = os.getenv('TWITTER_KEY') consumer_secret = os.getenv('TWITTER_SECRET_KEY') access_token = os.getenv('TWITTER_ACCESS_TOKEN') access_token_secret = os.getenv('TWITTER_ACCESS_TOKEN_SECRET') # Get tweets api = TwitterAPI(consumer_key, consumer_secret, access_token, access_token_secret) queries = ['pizza', 'virus', 'corona'] tweets = get_tweets_from_api(api, queries) # Export data importer_exporter = ImporterExporter() # Local if os.getenv('ENV') == 'dev': filename = os.getenv('LOCAL_FILENAME') header = api.get_tweet_contents() importer_exporter.local_export(filename, header=header, data=tweets) # S3 else: filename = os.getenv('S3_FILENAME')
import strings from flask import Flask from database import Database from models import Tweet from twitter_api import TwitterAPI from datetime import datetime print("- INITIALIZING SCRIPT TO FETCH TWEETS ") print("HORA CERTA ROGERINHO: %s" % (str(datetime.now()))) app = Flask(__name__) print("- INSTANTIATING DATABASE ") database = Database(app) print("- INSTANTIATING TWITTER API") source_twitter = TwitterAPI(strings.SOURCE, database) print("- GETTING TWEET LIST") tweet_list = source_twitter.get_timeline_tweets() print("- SAVE TWEETS TO THE DATABASE") if (tweet_list): print("- %d TWEETS FETCHED" % (len(tweet_list))) for tweet in tweet_list: tweet_id = str(tweet['id']) text = tweet['text'] origin = tweet['origin'] sentiment = 0 tweet = Tweet(tweet_id, text, sentiment, origin) database.post_tweet(tweet) print(" - TWEET %s SAVED TO DATABASE WITH SUCCESS" % (tweet_id))
from VisionAPI import VisionAPI from twitter_api import TwitterAPI from flask import jsonify t = TwitterAPI() active = t.get_active_tweets("#riverguard", "36.528580", "-6.213026", "5")["statuses"] print len(active) passive = t.get_passive_tweets("36.528580", "-6.213026", "5")["statuses"] print len(passive) passive = t.extract_image_tweets(passive)[:15] print len(passive) v = VisionAPI() passive = v.tag_images(passive) print len(passive) tweets = active + passive result = jsonify(tweets) print result
import time import redis import sentry_sdk from dateutil import parser from tracker_api import TrackerAPI from twitter_api import TwitterAPI logger = logging.getLogger(__name__) logger.setLevel(logging.INFO) db = redis.from_url(os.environ.get('REDIS_URL')) sentry_sdk.init(os.environ.get('SENTRY_URL')) tracker_api = TrackerAPI() twitter_api = TwitterAPI() def load_data(): data = tracker_api.get_data_by_country() global_data = { 'confirmed': f"{data['latest']['confirmed']:,}", 'deaths': f"{data['latest']['deaths']:,}", 'last_updated': data['locations'][0]['last_updated'] } db.hmset('global_latest', global_data) def compose_tweet(confirmed: int, deaths: int, handle: str, last_updated: datetime.datetime): time_delta = (
def __init__(self, path, log): self.last_request = time.time() - CACHE_TIME self.log = log self.twitterAPI = TwitterAPI() self.repository = Persistence(path, logging.getLogger(__name__)) self.repository.init_db()
import tweepy from database import Database from flask import Flask, jsonify, request from flask_cors import CORS from models import Tweet from tweepy import OAuthHandler from twitter_api import TwitterAPI BAD = 1 GOOD = 2 IGNORE = 3 app = Flask(__name__) database = Database(app) source_twitter = TwitterAPI(strings.SOURCE, database) destination_twitter = TwitterAPI(strings.DESTINATION, database) CORS(app) @app.route('/tweets', methods=['GET']) def get_tweets(): """ Call the twitter api to get up to 200 tweets from source timeline. Return: json: the tweet list in json format. """