Пример #1
0
def index():
    search_results = []
    search_query = None

    if flask.request.method == 'POST':
        form = SearchForm()
        if not form.validate_on_submit():
            # Form is not valid, just return to edit page.
            return render_template('index.html',
                                   current_page='Main',
                                   search_results=search_results,
                                   search_query=search_query)

        search_query = form.search_query.data

        app_key = flask.current_app.config.get('TWITTER_TOKEN_KEY', '')
        app_secret = flask.current_app.config.get('TWITTER_TOKEN_SECRET', '')
        twitter_conf = TwitterConfig.get_by_user(login.current_user)

        if twitter_conf is None:
            log.warn('Cannot get twitter config for %s' % login.current_user)
            return flask.redirect(flask.url_for('config'))

        twitter_api = auth.get_authorized_api(twitter_conf.token_key,
                                              twitter_conf.token_secret,
                                              app_key, app_secret)
        if twitter_api is None:
            log.warn('Cannot get authorized twitter API for %s' %
                     login.current_user)
            return flask.redirect(flask.url_for('config'))

        search_results = search.search(twitter_api,
                                       search_query,
                                       count=flask.current_app.config.get(
                                           'TWEETS_IN_RESULT', 50))

        for tweet in search_results:
            sent_score = sentiment_score(tweet['text'], word_scores)
            tweet[
                'sent_score'] = 'Neutral' if not sent_score else 'Positive' if sent_score > 0 else 'Negative'

    return render_template('index.html',
                           current_page='Main',
                           search_results=search_results,
                           search_query=search_query)
Пример #2
0
    def test_get_authorized_api(self, auth_handler_mock, api_mock):
        res = auth.get_authorized_api(self.token_key, self.token_secret,
                                      self.app_token_key,
                                      self.app_token_secret)

        auth_handler_mock.assert_called_once_with(self.app_token_key,
                                                  self.app_token_secret)

        auth_object_mock = auth_handler_mock(self.app_token_key,
                                             self.app_token_secret)
        auth_object_mock.set_access_token.assert_called_once_with(
            self.token_key, self.token_secret)

        api_mock.assert_called_once_with(auth_object_mock)

        api_object_mock = api_mock(auth_object_mock)
        self.assertTrue(api_object_mock.me.called)
        self.assertEqual(api_object_mock, res)
    def test_get_authorized_api(self, auth_handler_mock, api_mock):
        res = auth.get_authorized_api(self.token_key,
                                       self.token_secret,
                                       self.app_token_key,
                                       self.app_token_secret)

        auth_handler_mock.assert_called_once_with(
            self.app_token_key,
            self.app_token_secret
        )

        auth_object_mock = auth_handler_mock(self.app_token_key,
                                             self.app_token_secret)
        auth_object_mock.set_access_token.assert_called_once_with(
            self.token_key,
            self.token_secret
        )

        api_mock.assert_called_once_with(auth_object_mock)

        api_object_mock = api_mock(auth_object_mock)
        self.assertTrue(api_object_mock.me.called)
        self.assertEqual(api_object_mock, res)
Пример #4
0
def index():
    search_results = []
    search_query = None

    if flask.request.method == "POST":
        form = SearchForm()
        if not form.validate_on_submit():
            # Form is not valid, just return to edit page.
            return render_template(
                "index.html", current_page="Main", search_results=search_results, search_query=search_query
            )

        search_query = form.search_query.data

        app_key = flask.current_app.config.get("TWITTER_TOKEN_KEY", "")
        app_secret = flask.current_app.config.get("TWITTER_TOKEN_SECRET", "")
        twitter_conf = TwitterConfig.get_by_user(login.current_user)

        if twitter_conf is None:
            log.warn("Cannot get twitter config for %s" % login.current_user)
            return flask.redirect(flask.url_for("config"))

        twitter_api = auth.get_authorized_api(twitter_conf.token_key, twitter_conf.token_secret, app_key, app_secret)
        if twitter_api is None:
            log.warn("Cannot get authorized twitter API for %s" % login.current_user)
            return flask.redirect(flask.url_for("config"))

        search_results = search.search(
            twitter_api, search_query, count=flask.current_app.config.get("TWEETS_IN_RESULT", 50)
        )

        for tweet in search_results:
            sent_score = sentiment_score(tweet["text"], word_scores)
            tweet["sent_score"] = "Neutral" if not sent_score else "Positive" if sent_score > 0 else "Negative"

    return render_template("index.html", current_page="Main", search_results=search_results, search_query=search_query)