示例#1
0
    def tweet_wordcloud_from_json(tweet_json, analyzer):
            
        decoded = tweet_json

        tweet_id = decoded['id']
        created_at = decoded['created_at']
        dt = datetime.strptime(created_at[4:], "%b %d %H:%M:%S +0000 %Y")    
        created_at_utc_date = dt.strftime('%Y-%m-%d')
        created_at_utc_time = dt.strftime('%H:%M:%S')

        user_name = None
        if decoded['user']['name']:
            user_name = Util.clean_text(decoded['user']['name'].strip().encode('ascii', 'ignore'))

        screen_name = decoded['user']['screen_name']

        user_desc = None
        if decoded['user']['description']:
            user_desc = Util.clean_text(decoded['user']['description'].strip().encode('ascii', 'ignore'))
    
        user_location = None
        if decoded['user']['location']:
            user_location = Util.clean_text(decoded['user']['location'].strip().encode('ascii', 'ignore'))
        # text = Util.clean_text(decoded['text'].strip().encode('utf-8')).decode('utf-8')

        text = Util.clean_text(decoded['text'].strip().encode('ascii', 'ignore'))
    
        # text for the meantime
        sentiment, wordarray = analyzer.sentiment(text)

        favorite_count = decoded['favorite_count']
        retweet_count = decoded['retweet_count']
    
        # latitude, longitude
        latitude = None
        longitude = None
        if decoded['geo'] is not None:
            latitude = decoded['geo']['coordinates'][0]
            longitude = decoded['geo']['coordinates'][1]

        # place_name, place_full_name, place_country, place_country_code, alt_longitude, alt_latitude
        place_name = None
        place_full_name = None
        place_country = None
        place_country_code = None
        alt_latitude = None
        alt_longitude = None
        if decoded['place'] is not None:
            place_name = decoded['place']['name'].encode('ascii', 'ignore')
            place_full_name = decoded['place']['full_name'].encode('ascii', 'ignore')
            place_country = decoded['place']['country'].encode('ascii', 'ignore')
            place_country_code = decoded['place']['country_code'].encode('ascii', 'ignore')
            alt_longitude, alt_latitude = Util.get_alternative_coordinates(decoded['place']['bounding_box']['coordinates'][0])

        tweet_obj = Tweet(tweet_id, 
                created_at,
                created_at_utc_date,
                created_at_utc_time,
                user_name, 
                screen_name, 
                user_desc, 
                user_location,
                text, 
                favorite_count, 
                retweet_count,
                latitude, 
                longitude,
                place_name, 
                place_full_name,
                place_country, 
                place_country_code,
                alt_latitude, 
                alt_longitude,
                sentiment)

        return tweet_obj, [word.lower() for word in wordarray]