I'm trying to exclude retweets
and replies
in my Twython
search.
Here is my code:
from twython import Twython, TwythonError
app_key = "xxxx"
app_secret = "xxxx"
oauth_token = "xxxx"
oauth_token_secret = "xxxx"
naughty_words = [" -RT"]
good_words = ["search phrase", "another search phrase"]
filter = " OR ".join(good_words)
blacklist = " -".join(naughty_words)
keywords = filter + blacklist
twitter = Twython(app_key, app_secret, oauth_token, oauth_token_secret)
search_results = twitter.search(q=keywords, count=100)
The problem is that the -RT
function isn't really working.
EDIT:
I've tried @forge suggestion, and while it does print the if tweets are not retweets or replies, when I incorporate them into the code below, the bot still finds tweets, retweets, quotes and replies.
twitter = Twython(app_key, app_secret, oauth_token, oauth_token_secret) query = 'beer OR wine AND -filter:retweets AND -filter:replies'
response = twitter.search(q=query, count=100)
statuses = response['statuses']
try:
for tweet in statuses:
try:
twitter.retweet(id = tweet["id_str"])
except TwythonError as e:
print e
except TwythonError as e:
print e
Any ideas? Is there a filter:quotes
?
The correct syntax is
-filter:retweets
.If you would like to search on terms
"search phrase"
or"another search phrase"
and exclude retweets, then thequery
should be:To exclude replies as well, add
-filter:replies
like this:This should be working, you can verify it by checking the status fields
in_reply_to_status_id
andretweeted_status
:in_reply_to_status_id
is emptyretweeted_status
With
Twython
: