Skip to content

Instantly share code, notes, and snippets.

@ErisBlastar
Forked from jmoz/twitter_favouriter.py
Last active October 19, 2020 07:48
Show Gist options
  • Save ErisBlastar/6144424 to your computer and use it in GitHub Desktop.
Save ErisBlastar/6144424 to your computer and use it in GitHub Desktop.
Fixes UTF-8 UNICODE character problem when pulling text from Tweets to stop an error.
# Original by James Morris JMOZ at: http://blog.jmoz.co.uk/increase-your-twitter-followers/
# Modified by Eris Blastar http://iwethey.neocities.org/ [email protected] to encode UTF-8 strings in case
# of foriegn language and odd characters. PS you will need Python 2.7 as Python 3.X won't work
# and of course the Twitter library https://pypi.python.org/pypi/twitter
# plus the setuptool to install the library the Windows version is here: http://www.lfd.uci.edu/~gohlke/pythonlibs/
# You need your API key from https://dev.twitter.com/discussions/631 and make sure it isn't set to
# read-only when you make the access token.
# Good luck, Eris.
from twitter import Twitter, OAuth, TwitterHTTPError
# -*- coding: utf-8 -*-
import sys
OAUTH_TOKEN = 'foo'
OAUTH_SECRET = 'bar'
CONSUMER_KEY = 'baz'
CONSUMER_SECRET = 'bat'
t = Twitter(auth=OAuth(OAUTH_TOKEN, OAUTH_SECRET, CONSUMER_KEY, CONSUMER_SECRET))
print sys.stdout.encoding
def search_tweets(q, count=100, max_id=None):
return t.search.tweets(q=q, result_type='recent', count=count, lang="en", max_id=max_id)
def favorites_create(tweet):
try:
result = t.favorites.create(_id=tweet['id'])
print "Favorited: %s, %s" % (result['text'].encode(sys.stdout.encoding, errors='replace'), result['id'])
return result
except TwitterHTTPError as e:
print "Error: ", e
return None
def search_and_fav(q, count=100, max_id=None):
result = search_tweets(q, count, max_id)
first_id = result['statuses'][0]['id']
last_id = result['statuses'][-1]['id']
success = 0
for t in result['statuses']:
if favorites_create(t) is not None:
success += 1
print "Favorited total: %i of %i" % (success, len(result['statuses']))
print "First id %s last id %s" % (first_id, last_id)
@ErisBlastar
Copy link
Author

Put this code into a file named tweetbot.py:

import twitter_favouriter

twitter_favouriter.search_and_fav('#ebook', 100)

Then save it and run it like this:

python tweetbot.py

In the same directory that you save this gist as

twitter_favouriter.py

Then file for an API keyset from Twitter and fill in the foo and bar etc settings to your account.

Change #ebook to any hashtag you want to retweet tweets for.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment