def getTweets(user,clean=True,includeRetweets=False,maxTweets=1000000,includeOtherMentions=True): twitter_access_token_key,twitter_access_token_secret,twitter_consumer_key,twitter_consumer_secret = Config.getTwitterKeys() api = TwitterAPI(twitter_access_token_key,twitter_access_token_secret, twitter_consumer_key, twitter_consumer_secret) tweets = [] li = api.fetch_by_user_names(user.twitterId,clean = clean) while li is not None and len(li) > 0: if "errors" in li and li["errors"][0]["code"] == 88: return [] for tweet in li: tweetText = str(tweet['text'].encode("utf-8")).replace('\\n', ' ').replace('\\r', '').strip()[2:-1] if not includeRetweets and tweetText.startswith('RT'): continue if not includeOtherMentions and "@" in tweet['text']: continue if clean: tweetText = re.sub(r'https?:\/\/[^\s]*','',tweetText, flags=re.MULTILINE) tweetText = re.sub(r'\\x..','',tweetText, flags=re.MULTILINE) tweetText = re.sub(r'&','and',tweetText, flags=re.IGNORECASE) tweetText = re.sub(r'[\s\t]+',' ',tweetText, flags=re.IGNORECASE) tweetText.replace('#','') tweetText = re.sub('^\s*rt\s',' ',tweetText,flags=re.IGNORECASE) if not validTweet(tweetText): continue st = Status() st.id = tweet['id'] st.likes = tweet['favorite_count'] st.shares = tweet['retweet_count'] st.CreatedOn = tweet['created_at'] st.statusType = 1 st.statusText = tweetText st.language = tweet["lang"] tweets.append(st) minId = min(tweets,key=lambda p:p.id).id li = api.fetch_by_user_names(user.twitterId,id= minId - 1,clean = clean) if len(tweets) > maxTweets or li is None or len(li) < 10: break return tweets