def replies(self, tweet, recursive=False, prune=()):
        """
        replies returns a generator of tweets that are replies for a given
        tweet. It includes the original tweet. If you would like to fetch the
        replies to the replies use recursive=True which will do a depth-first
        recursive walk of the replies. It also walk up the reply chain if you
        supply a tweet that is itself a reply to another tweet. You can
        optionally supply a tuple of tweet ids to ignore during this traversal
        using the prune parameter.
        """

        yield tweet

        # get replies to the tweet
        screen_name = tweet['user']['screen_name']
        tweet_id = tweet['id_str']
        log.info("looking for replies to: %s", tweet_id)
        for reply in self.search("to:%s" % screen_name, since_id=tweet_id):

            if reply['in_reply_to_status_id_str'] != tweet_id:
                continue

            if reply['id_str'] in prune:
                log.info("ignoring pruned tweet id %s", reply['id_str'])
                continue

            log.info("found reply: %s", reply["id_str"])

            if recursive:
                if reply['id_str'] not in prune:
                    prune = prune + (tweet_id,)
                    for r in self.replies(reply, recursive, prune):
                        yield r
            else:
                yield reply

        # if this tweet is itself a reply to another tweet get it and
        # get other potential replies to it

        reply_to_id = tweet.get('in_reply_to_status_id_str')
        log.info("prune=%s", prune)
        if recursive and reply_to_id and reply_to_id not in prune:
            t = self.tweet(reply_to_id)
            if t:
                log.info("found reply-to: %s", t['id_str'])
                prune = prune + (tweet['id_str'],)
                for r in self.replies(t, recursive=True, prune=prune):
                    yield r

        # if this tweet is a quote go get that too whatever tweets it
        # may be in reply to

        quote_id = tweet.get('quotes_status_id_str')
        if recursive and quote_id and quote_id not in prune:
            t = self.tweet(quote_id)
            if t:
                log.info("found quote: %s", t['id_str'])
                prune = prune + (tweet['id_str'],)
                for r in self.replies(t, recursive=True, prune=prune):
                    yield r
def replies ( self , tweet , recursive = False , prune = ( ) ) : yield tweet screen_name = tweet [ 'user' ] [ 'screen_name' ] tweet_id = tweet [ 'id_str' ] log . info ( "looking for replies to: %s" , tweet_id ) for reply in self . search ( "to:%s" % screen_name , since_id = tweet_id ) : if reply [ 'in_reply_to_status_id_str' ] != tweet_id : continue if reply [ 'id_str' ] in prune : log . info ( "ignoring pruned tweet id %s" , reply [ 'id_str' ] ) continue log . info ( "found reply: %s" , reply [ "id_str" ] ) if recursive : if reply [ 'id_str' ] not in prune : prune = prune + ( tweet_id , ) for r in self . replies ( reply , recursive , prune ) : yield r else : yield reply reply_to_id = tweet . get ( 'in_reply_to_status_id_str' ) log . info ( "prune=%s" , prune ) if recursive and reply_to_id and reply_to_id not in prune : t = self . tweet ( reply_to_id ) if t : log . info ( "found reply-to: %s" , t [ 'id_str' ] ) prune = prune + ( tweet [ 'id_str' ] , ) for r in self . replies ( t , recursive = True , prune = prune ) : yield r quote_id = tweet . get ( 'quotes_status_id_str' ) if recursive and quote_id and quote_id not in prune : t = self . tweet ( quote_id ) if t : log . info ( "found quote: %s" , t [ 'id_str' ] ) prune = prune + ( tweet [ 'id_str' ] , ) for r in self . replies ( t , recursive = True , prune = prune ) : yield r
replies returns a generator of tweets that are replies for a given
        tweet. It includes the original tweet. If you would like to fetch the
        replies to the replies use recursive=True which will do a depth-first
        recursive walk of the replies. It also walk up the reply chain if you
        supply a tweet that is itself a reply to another tweet. You can
        optionally supply a tuple of tweet ids to ignore during this traversal
        using the prune parameter.