def tweets_user(user): limit = request.args.get('limit') if limit is None: limit = DEFAULT_LIMIT twitter_api = TwitterApi() json_response = twitter_api.getTweetsByUsername(user, limit) summary = twitter_api.extractTweetInfo(json_response) return json.dumps(summary)
def test_createTweetSearchUrl(self): twitter_api = TwitterApi() actual = twitter_api.createTweetSearchUrl('influencer', '5') expected = 'https://api.twitter.com/1.1/search/tweets.json?q=%23influencer&count=5' self.assertEqual(expected, actual)
def test_createUserTweetsUrl(self): twitter_api = TwitterApi() actual = twitter_api.createUserTweetsUrl('nasa', '3') expected = 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=nasa&count=3' self.assertEqual(expected, actual)
def test_createAuthHeader(self): twitter_api = TwitterApi() actual = twitter_api.createAuthHeader() expected = {"Authorization": "Bearer bearer_token"} self.assertEqual(expected, actual)
def tweets_hashtag(hashtag): limit = request.args.get('limit') if limit is None: limit = DEFAULT_LIMIT twitter_api = TwitterApi() json_response = twitter_api.getTweetsByHashtag(hashtag, limit) tweets = json_response['statuses'] summary = twitter_api.extractTweetInfo(tweets) return json.dumps(summary)
def __init__(self, thread_name, followings_queue, profiles_queue, visited_followings_queue, visited_profiles_queue): threading.Thread.__init__(self, name=thread_name) self.api = TwitterApi() self.db = Database() self.followings_queue = followings_queue self.profiles_queue = profiles_queue self.visited_followings_queue = visited_followings_queue self.visited_profiles_queue = visited_profiles_queue
def test_convertTwitterDate(self): twitter_api = TwitterApi() date_twitter = 'Sun Sep 27 15:50:28 +0000 2020' actual = twitter_api.convertTwitterDate(date_twitter) expected = '15:50 PM - 27 Sep 2020' self.assertEqual(expected, actual)
def test_extractHashtags(self): twitter_api = TwitterApi() hashtags = [{'text': 'three'}, {'text': 'seagrass'}] actual = twitter_api.extractHashtags(hashtags) expected = ['three', 'seagrass'] self.assertEqual(expected, actual)
def test_getTweetsByUsername_obtainResultFromApiSuccessfully( self, mocked_header, mocked_url, mocked_get): twitter_api = TwitterApi() mocked_url.return_value = "api_url" mocked_header.return_value = "header" json_response = "json_response" mocked_get.return_value.status_code = 200 mocked_get.return_value.text = json_response twitter_api.getTweetsByUsername('hashtag', '3') mocked_get.assert_called_with("api_url", headers="header")
def test_getTweetsByHashtag_handleExceptionOnApiBadRequest( self, mocked_header, mocked_url, mocked_get): twitter_api = TwitterApi() mocked_url.return_value = "api_url" mocked_header.return_value = "header" json_response = "json_response" mocked_get.return_value.status_code = 400 mocked_get.return_value.text = json_response with self.assertRaises(Exception): twitter_api.getTweetsByHashtag('hashtag', '3') mocked_get.assert_called_with("api_url", headers="header")
# -*- coding: utf-8 -*- import os import sys from settings import Settings from twitter_api import TwitterApi curdir = os.path.dirname(os.path.realpath(__file__)) s = Settings(os.path.join(curdir, "settings.ini")) twitter_api = TwitterApi( s.get_twitter_api_key(), s.get_twitter_api_secret(), s.get_twitter_access_token(), s.get_twitter_access_token_secret(), ) n = int(sys.argv[1]) timeline = twitter_api.twitter_api.user_timeline(count=n) for t in timeline: twitter_api.twitter_api.destroy_status(t.id) print("{0} tweets removed.".format(n))
def test_extractTweetInfo(self): tweets = [{ "created_at": "Thu Apr 06 15:28:43 +0000 2017", "text": "tweet_text_first", "entities": { "hashtags": [{ "text": "first" }, { "text": "second" }], }, "user": { "id": 111, "name": "name_one", "screen_name": "screen_name_one", }, "retweet_count": 10, "favorite_count": 11, }, { "created_at": "Fri Apr 16 15:28:43 +0000 2017", "text": "tweet_text_second", "entities": { "hashtags": [{ "text": "one" }, { "text": "two" }], }, "user": { "id": 222, "name": "name_two", "screen_name": "screen_name_two", }, "retweet_count": 20, "favorite_count": 21, }] twitter_api = TwitterApi() actual = twitter_api.extractTweetInfo(tweets) expected = [ { 'account': { 'fullname': 'name_one', 'href': '/screen_name_one', 'id': 111, }, 'date': '15:28 PM - 06 Apr 2017', 'hashtags': ['first', 'second'], 'likes': 11, 'retweets': 10, 'text': 'tweet_text_first', }, { 'account': { 'fullname': 'name_two', 'href': '/screen_name_two', 'id': 222, }, 'date': '15:28 PM - 16 Apr 2017', 'hashtags': ['one', 'two'], 'likes': 21, 'retweets': 20, 'text': 'tweet_text_second', }, ] self.assertEqual(expected, actual)
def __init__(self): self.api = TwitterApi()
def __init__(self): self.twitter_api = TwitterApi( consumer_key=CONFIG.get('consumer_key'), consumer_secret=CONFIG.get('consumer_secret'), oauth_token=CONFIG.get('oauth_token'), oauth_secret=CONFIG.get('oauth_secret'))
import os import telebot from twitter_api import TwitterApi from twitter_downloader import TwitterDownloader from url_helper import UrlHelper SUPPORTED_DOMAINS = {'twitter': 'twitter.com'} bot = telebot.TeleBot(os.getenv('TELEGRAM_KEY')) url_helper = UrlHelper(SUPPORTED_DOMAINS.values()) twitter_downloader = TwitterDownloader( TwitterApi(os.getenv('TWITTER_API_KEY'), os.getenv('TWITTER_API_SECRET')), url_helper) @bot.message_handler(content_types=['text']) def handle_message(message): if not url_helper.is_url_valid(message.text): return bot.send_message(message.from_user.id, "Send me some url!") if not url_helper.is_supported_domain(message.text): supported_domains_formatted = ', '.join(SUPPORTED_DOMAINS.values()) return bot.send_message( message.from_user.id, 'This website is not supported :( I only support {}'.format( supported_domains_formatted)) send_video(message) def send_video(message):