Example #1
0
class Treets(object):
    """TODO docstring for Treets"""
    def __init__(self):
        super(Treets, self).__init__()
        self.db_client = DBClient()
        self.data_converter = DataConverter()

    def all_tweets(self, limit=TWEETS_LIMIT):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_tweets(limit)
        return self.tweets_to_geojson(self.result)

    def all_traces(self, limit=TRACES_LIMIT):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_traces(limit)
        return self.traces_to_geojsons(self.result)

    def prepare_template_args(self, template_args, traces, tweets):
        template_args['shown_tweets'] = len(tweets['features'])
        template_args['shown_traces'] = len(traces['features'])
        template_args['tweets_geojson'] = str(tweets)
        template_args['traces_geojson'] = str(traces)

    def search_tweets_near_point(self, coords, dist):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_tweets_near_point(coords, dist)
        return self.tweets_to_geojson(self.result)

    def search_tweets_near_point_and_text(self, coords, text, dist):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_tweets_near_point_and_text(
            coords, dist, text)
        return self.tweets_to_geojson(self.result)

    def search_tweets_text(self, text):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_tweets_for_text(text)
        return self.tweets_to_geojson(self.result)

    def search_user_trace(self, text):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_trace_for_user(text)
        return self.traces_to_geojsons(self.result)

    def search_traces_near_point(self, coords, dist, limit):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_traces_near_point(coords, dist, limit)
        return self.traces_to_geojsons(self.result)

    def search_traces_near_point_and_text(self, coords, dist, text, limit):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_traces_near_point_and_text(
            coords, dist, text, limit)
        return self.traces_to_geojsons(self.result)

    def search_traces_text(self, text, limit):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_traces_for_text(text, limit)
        return self.traces_to_geojsons(self.result)

    def export_trace(self, user_name):
        '''
        TODO docstring
        '''
        self.result = self.db_client.get_tweets_for_user_str(user_name)[0]
        tweets_df = self.data_converter.tweets_to_table(self.result)
        fname = user_name + '_' + time.strftime("%Y%m%d-%H%M%S") + '.csv'
        tweets_df.to_csv(TMP_FOLDER + fname,
                         index=False,
                         sep=';',
                         encoding='utf-8',
                         decimal=',')
        return fname

    def tweets_to_geojson(self, result):
        '''
        TODO docstring
        '''
        return self.data_converter.tweets_to_feature_collection(result)

    def traces_to_geojsons(self, result):
        '''
        Returns a geojson fìcontaining all traces and a geojson containing all tweets
        '''
        return self.data_converter.traces_to_feature_collection(result)