Beispiel #1
0
    def process(self):
        twitterAccount = parse_twitter_credential()
        twitterApi = TwitterApi(twitterAccount)
        eventReaderProcessor = EventReaderProcessor(
            os.path.abspath("./events.csv"))
        events = eventReaderProcessor.process()
        searchResultList = []

        for e in events:
            searchResult = twitterApi.search(e.getSubject(), e.getDate())
            tweets = searchResult["tweets"]
            tweets = [{
                "similarity": similarity(e.getSubject(), tweet[1]),
                "text": tweet[1]
            } for tweet in tweets]
            searchResult["tweets"] = list(
                filter(
                    lambda tweet: tweet["similarity"] >
                    RELATED_TWEET_SIMILARITY_THRESHOLD, tweets))
            searchResultList.append(searchResult)

        analysis = Analysis(searchResultList)
        for tweetSearchResult in searchResultList:
            tweetSearchResult["analysisResult"] = analysis.analyze(
                tweetSearchResult)

        return searchResultList
Beispiel #2
0
 def on_button_clicked():
     alert = QMessageBox()
     params = {k: v.text() for k, v in self.param_edits.items()}
     self.twitter_node = TwitterApi(params=params)
     if self.twitter_node.is_tweepy_connected():
         self.login_tweepy_screen = QGroupBox("Tweepy Connection")
         alert.setText("Tweepy is connected")
     else:
         alert.setText("Tweepy is connected")
     alert.exec_()
    def __init__(self, storage, **kwargs):
        super(TwitterTrainer, self).__init__(storage, **kwargs)
        from twitter import TwitterApi

        # The word to be used as the first search term when searching for tweets
        self.random_seed_word = kwargs.get('random_seed_word', 'random')

        self.api = TwitterApi(
            consumer_key=kwargs.get('twitter_consumer_key'),
            consumer_secret=kwargs.get('twitter_consumer_secret'),
            access_token_key=kwargs.get('twitter_access_token_key'),
            access_token_secret=kwargs.get('twitter_access_token_secret'))
Beispiel #4
0
 def get_official(cls) -> '_ApiOfficial':
     api = TwitterApi(consumer_key=Config.CONSUMER_KEY,
                      consumer_secret=Config.CONSUMER_SECRET,
                      access_token_key=Config.ACCESS_TOKEN,
                      access_token_secret=Config.ACCESS_TOKEN_SECRET)
     api.VerifyCredentials()
     return _ApiOfficial(api)
def getFramesAndTweetThen(url, imagesFolder, videoName, TIMER):

    # get video from youtube
    video = pafy.new(url)
    best = video.getbest(preftype="mp4")

    vidcap = cv2.VideoCapture(best.url)
    success, image = vidcap.read()
    count = 1

    while success:

        # save frame as JPEG file
        cv2.imwrite("%s/frame%d.jpg" % (imagesFolder, count), image)
        success, image = vidcap.read()

        print("Posting frame %d" % (count))

        # Tweet image and description
        TwitterApi(
            "%s/frame%d.jpg" % (imagesFolder, count),
            'Frame %d do video %s (postado a cada %ds)' %
            (count, videoName, int(TIMER)))

        count += 1

        time.sleep(int(TIMER))
Beispiel #6
0
def post_entity_tweet(
        view_set_obj: Union[ActionViewSet, QuoteViewSet]) -> None:
    """Função que posta um tweet de uma entidade (ação ou declaração).

    Args:
        view_set_obj (Union[ActionViewSet, QuoteViewSet]): O ViewSet da entidade.
    """
    api = TwitterApi(
        consumer_key=settings.TWITTER_API_KEY,
        consumer_secret=settings.TWITTER_API_SECRET_KEY,
        access_token_key=settings.TWITTER_API_TOKEN,
        access_token_secret=settings.TWITTER_API_SECRET_TOKEN,
    )

    entity_name = view_set_obj.__class__.__name__.split("ViewSet")[0].lower()
    infos = _get_random_entity(view_set_obj=view_set_obj)
    if isinstance(view_set_obj, QuoteViewSet):
        infos["description"] = f'"{infos["description"]}"'

    try:
        api.PostUpdate(status=(
            f"{infos['description']}\n\nMais informações: "
            f"http://bolsonaro-api.herokuapp.com/{entity_name}s/{infos['id']}/"
        ))
        logger.info("%s tweet postado com sucesso. ID da entidade: %s",
                    entity_name, infos["id"])
    except TwitterError as error:
        logger.error("Erro ao postar no twitter: %s", error.message)
Beispiel #7
0
    def __init__(self, storage, **kwargs):
        super(TwitterTrainer, self).__init__(storage, **kwargs)
        from twitter import Api as TwitterApi

        self.api = TwitterApi(
            consumer_key=kwargs.get('twitter_consumer_key'),
            consumer_secret=kwargs.get('twitter_consumer_secret'),
            access_token_key=kwargs.get('twitter_access_token_key'),
            access_token_secret=kwargs.get('twitter_access_token_secret'))
    def __init__(self, chatbot, **kwargs):
        super().__init__(chatbot, **kwargs)
        from twitter import Api as TwitterApi

        # The word to be used as the first search term when searching for tweets
        self.random_seed_word = kwargs.get('random_seed_word', 'random')
        self.lang = kwargs.get('twitter_lang')

        self.api = TwitterApi(
            consumer_key=kwargs.get('twitter_consumer_key'),
            consumer_secret=kwargs.get('twitter_consumer_secret'),
            access_token_key=kwargs.get('twitter_access_token_key'),
            access_token_secret=kwargs.get('twitter_access_token_secret'))
    def get(self):
        logging.info("GetTrendsTask starting...")

        try:
            # create twitter client
            client = TwitterApi(
                consumer_key=Crenditals.CONSUMER_KEY,
                consumer_secret=Crenditals.CONSUMER_SECRET,
                access_token_key=Crenditals.CLIENT_TOKEN,
                access_token_secret=Crenditals.CLIENT_SECRET)

            q_futures = []
            for region in Globals.REGIONS:
                # request trends from twitter
                response = client.getTrendsByWoeid(woeid=region)
                # get current timestamp in seconds
                timestamp = int(time.time())
                # put trends to db
                entityList = []
                for trend in response:
                    entityList.append(
                        TrendWindow(
                            name=trend['name'],
                            woeid=region,
                            timestamp=timestamp,
                            time=10,
                            volume=trend['tweet_volume']))
                q_futures.extend(ndb.put_multi_async(entityList))
                self.updateCacheValues(region, entityList)

            # wait all async put operations to finish.
            ndb.Future.wait_all(q_futures)
        except ValueError as v_e:
            logging.error(v_e)
            # self.retry()
        except Exception, e:
            traceback.print_exc()
            Error(msg=str(e), timestamp=int(time.time())).put()
            SendEmail().send('Error on GetTrendsTask', str(e))
def send_tweets(Type=None):
    global Twitter,T_status
    if not T_status:
        print "Twitter login attempt.."
        Twitter = TwitterApi(
            consumer_key        = RajivPySms.CREDENTIALS['twitter']['consumer_key'],
            consumer_secret     = RajivPySms.CREDENTIALS['twitter']['consumer_secret'], 
            access_token_key    = RajivPySms.CREDENTIALS['twitter']['access_token_key'], 
            access_token_secret = RajivPySms.CREDENTIALS['twitter']['access_token_secret']
        )
        T_status = True
    prepare_data(Type)
    print "tweeting",Type
    Twitter.PostUpdate(DATA[Type])
Beispiel #11
0
 def __init__(self, **kwargs):
     nltk.download("averaged_perceptron_tagger")
     self.twitter = TwitterApi(
         consumer_key=kwargs.get("twitter_consumer_key"),
         consumer_secret=kwargs.get("twitter_consumer_secret"),
         access_token_key=kwargs.get("twitter_access_token_key"),
         access_token_secret=kwargs.get("twitter_access_token_secret")
     )
     self.google_service_url = 'https://kgsearch.googleapis.com/v1/entities:search?'
     self.google_params = {
         'limit': 1,
         'indent': True,
         'key': "AIzaSyDML6wf5I7tdkyPdNq-gPT4zUtPiZgRudE",
     }
     self.kernel = self._get_kernel()
     self.chatbot = self._get_chatterbot()
     self.sessions_path = kwargs.get("sessions_path")
Beispiel #12
0
class Twitter(QDialog):
    def __init__(self, parent=None):
        super(Twitter, self).__init__(parent)
        self.param_edits = {
            'consumer_key': QLineEdit(),
            'consumer_secret': QLineEdit(),
            'access_token': QLineEdit(),
            'access_token_secret': QLineEdit()
        }
        self.login_tweepy_screen = None
        self.authenticate_tweepy()

        main_layout = QGridLayout()
        main_layout.addWidget(self.login_tweepy_screen, 3, 0)
        self.setLayout(main_layout)

        self.twitter_node = None

    def authenticate_tweepy(self):
        self.login_tweepy_screen = QGroupBox("Tweepy Connection")
        layout = QVBoxLayout()

        labels = []
        for param in self.param_edits:
            l = QLabel(param)
            layout.addWidget(l)
            labels.append(l)
            layout.addWidget(self.param_edits[param])

        def on_button_clicked():
            alert = QMessageBox()
            params = {k: v.text() for k, v in self.param_edits.items()}
            self.twitter_node = TwitterApi(params=params)
            if self.twitter_node.is_tweepy_connected():
                self.login_tweepy_screen = QGroupBox("Tweepy Connection")
                alert.setText("Tweepy is connected")
            else:
                alert.setText("Tweepy is connected")
            alert.exec_()

        button = QPushButton('Connect')
        layout.addWidget(button)
        button.clicked.connect(on_button_clicked)
        layout.addWidget(button)
        self.login_tweepy_screen.setLayout(layout)
class TwitterTrainer(Trainer):
    """
	Allows the chat bot to be trained using data
	gathered from Twitter.

	:param random_seed_word: The seed word to be used to get random tweets from the Twitter API.
							 This parameter is optional. By default it is the word 'random'.
	"""
    def __init__(self, storage, **kwargs):
        super(TwitterTrainer, self).__init__(storage, **kwargs)
        from twitter import TwitterApi

        # The word to be used as the first search term when searching for tweets
        self.random_seed_word = kwargs.get('random_seed_word', 'random')

        self.api = TwitterApi(
            consumer_key=kwargs.get('twitter_consumer_key'),
            consumer_secret=kwargs.get('twitter_consumer_secret'),
            access_token_key=kwargs.get('twitter_access_token_key'),
            access_token_secret=kwargs.get('twitter_access_token_secret'))

    def random_word(self, base_word):
        """
		Generate a random word using the Twitter API.

		Search twitter for recent tweets containing the term 'random'.
		Then randomly select one word from those tweets and do another
		search with that word. Return a randomly selected word from the
		new set of results.
		"""
        import random
        random_tweets = self.api.GetSearch(term=base_word, count=5)
        random_words = get_words_from_tweets(random_tweets)
        random_word = random.choice(list(random_words))
        tweets = self.api.GetSearch(term=random_word, count=5)
        words = get_words_from_tweets(tweets)
        word = random.choice(list(words))
        return word

    def get_statements(self):
        """
		Returns list of random statements from the API.
		"""
        from twitter import TwitterError
        statements = []

        # Generate a random word
        random_word = self.random_word(self.random_seed_word)

        self.logger.info(
            u'Requesting 50 random tweets containing the word {}'.format(
                random_word))
        tweets = self.api.GetSearch(term=random_word, count=50)
        for tweet in tweets:
            statement = Statement(tweet.text)

            if tweet.in_reply_to_status_id:
                try:
                    status = self.api.GetStatus(tweet.in_reply_to_status_id)
                    statement.add_response(Response(status.text))
                    statements.append(statement)
                except TwitterError as error:
                    self.logger.warning(str(error))

        self.logger.info('Adding {} tweets with responses'.format(
            len(statements)))

        return statements

    def train(self):
        for _ in range(0, 10):
            statements = self.get_statements()
            for statement in statements:
                self.storage.update(statement)
from twitter.error import TwitterError

ssm = boto3.client('ssm')

twitter_params = {
    param['Name'].rsplit('/', 1)[-1]: param['Value']
    for param in ssm.get_parameters(Names=[
        '/howsmydrivinganalytics/consumer_key',
        '/howsmydrivinganalytics/consumer_secret',
        '/howsmydrivinganalytics/access_token_key',
        '/howsmydrivinganalytics/access_token_secret'
    ],
                                    WithDecryption=True)['Parameters']
}

twitter = TwitterApi(**twitter_params)

con = sqlite3.connect('../archive.db')
cur = con.cursor()

for tweet_id, text in cur.execute('select tweet_id, content from tweets'):
    if os.path.exists('archive_images/{}.jpg'.format(tweet_id)):
        print('skipping {}'.format(tweet_id))
        continue
    if os.path.exists('archive_images/{}.jpg'.format(tweet_id)):
        print('getting details {}'.format(tweet_id))
        continue
    if 'balance of $0.00' in text or 'not found' in text:
        print('skipping(notix) {}'.format(text))
        continue
    tweet = twitter.GetStatus(tweet_id, include_entities=True)
Beispiel #15
0
 def __init__(self):
     self.t = TwitterApi(auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY, CONSUMER_SECRET))
Beispiel #16
0
import logging

from twitter import TwitterAuth, TwitterApi
from resources.config import configuration

logging.getLogger("").setLevel(logging.INFO)

twitter = TwitterApi(
    TwitterAuth.get_oauth1_auth(
        configuration["twitter"]["consumer_key"],
        configuration["twitter"]["consumer_secret"],
        configuration["twitter"]["access_token_key"],
        configuration["twitter"]["access_token_secret"],
    ))


def main():
    global twitter
    from resources.flask_server import app

    app.run(
        host=configuration["http"]["bind"]["host"],
        port=configuration["http"]["bind"]["port"],
        debug=False,
        threaded=True,
    )
Beispiel #17
0
        f.close()
        return make_tweet_list(popped_tweet)


tweet_list = []
for tweet in sys.argv[1:]:
    tweet_list += make_tweet_list(tweet)
if not tweet_list:
    tweet_list = pop_a_tweet()

#"""
if tweet_list:
    print 'Attempting Twitter Api Login...'
    Twitter = TwitterApi(
        consumer_key=CREDENTIALS.get("consumer_key"),
        consumer_secret=CREDENTIALS.get("consumer_secret"),
        access_token_key=CREDENTIALS.get("access_token_key"),
        access_token_secret=CREDENTIALS.get("access_token_secret")
    )
    ME = Twitter.VerifyCredentials().screen_name
    print "Current user is @" + ME
    if tweet_list[0] == '-g':
        user_list = tweet_list[1:]
        if user_list:
            for user in user_list:
                print
                print "Recent tweets from " + user + ":"
                print "===================" + "=" * (len(user) + 1)
                tweets = Twitter.GetUserTimeline(user[1:])
                #count = 0
                for tweet in tweets:
                    #if count == 5: break;