コード例 #1
0
    def new_tweet_from_json(self, data):
        """
        Converts a json string to a tweet instance.

        Args:
            data: json string containing twitter data
        Returns:
            twitter.models.status instance
        """
        tweet = Status.NewFromJsonDict(data)
        if 'urls' in data:
            tweet.urls = [Url.NewFromJsonDict(u) for u in data['urls']]
        else:
            tweet.urls = []
        if 'user_mentions' in data:
            tweet.user_mentions = [
                User.NewFromJsonDict(u) for u in data['user_mentions']
            ]
        else:
            tweet.user_mentions = []
        if 'hashtags' in data:
            tweet.hashtags = [
                Hashtag.NewFromJsonDict(h) for h in data['hashtags']
            ]
        else:
            tweet.hashtags = []
        return tweet
コード例 #2
0
    def NewFromJsonDict(data):
        """Create a new instance based on a JSON dict.

        Args:
          data: A JSON dict, as converted from the JSON in the twitter API
        Returns:
          A twitter.Status instance
        """
        if 'user' in data:
            from twitter import User
            # Have to do the import here to prevent cyclic imports in the __init__.py
            # file
            user = User.NewFromJsonDict(data['user'])
        else:
            user = None
        if 'retweeted_status' in data:
            retweeted_status = Status.NewFromJsonDict(data['retweeted_status'])
        else:
            retweeted_status = None

        if 'current_user_retweet' in data:
            current_user_retweet = data['current_user_retweet']['id']
        else:
            current_user_retweet = None

        urls = None
        user_mentions = None
        hashtags = None
        media = None
        if 'entities' in data:
            if 'urls' in data['entities']:
                urls = [
                    Url.NewFromJsonDict(u) for u in data['entities']['urls']
                ]
            if 'user_mentions' in data['entities']:
                from twitter import User

                user_mentions = [
                    User.NewFromJsonDict(u)
                    for u in data['entities']['user_mentions']
                ]
            if 'hashtags' in data['entities']:
                hashtags = [
                    Hashtag.NewFromJsonDict(h)
                    for h in data['entities']['hashtags']
                ]
            if 'media' in data['entities']:
                media = data['entities']['media']
            else:
                media = []

        # the new extended entities
        if 'extended_entities' in data:
            if 'media' in data['extended_entities']:
                media = [m for m in data['extended_entities']['media']]

        return Status(
            created_at=data.get('created_at', None),
            favorited=data.get('favorited', None),
            favorite_count=data.get('favorite_count', None),
            id=data.get('id', None),
            text=data.get('text', None),
            location=data.get('location', None),
            lang=data.get('lang', None),
            in_reply_to_screen_name=data.get('in_reply_to_screen_name', None),
            in_reply_to_user_id=data.get('in_reply_to_user_id', None),
            in_reply_to_status_id=data.get('in_reply_to_status_id', None),
            truncated=data.get('truncated', None),
            retweeted=data.get('retweeted', None),
            source=data.get('source', None),
            user=user,
            urls=urls,
            user_mentions=user_mentions,
            hashtags=hashtags,
            media=media,
            geo=data.get('geo', None),
            place=data.get('place', None),
            coordinates=data.get('coordinates', None),
            contributors=data.get('contributors', None),
            retweeted_status=retweeted_status,
            current_user_retweet=current_user_retweet,
            retweet_count=data.get('retweet_count', None),
            possibly_sensitive=data.get('possibly_sensitive', None),
            scopes=data.get('scopes', None),
            withheld_copyright=data.get('withheld_copyright', None),
            withheld_in_countries=data.get('withheld_in_countries', None),
            withheld_scope=data.get('withheld_scope', None))