robbiebarrat / twitter-contest-enterer

Twitter bot that mass-enters contests on twitters, and (mostly) avoids bot-detection accounts.
MIT License
135 stars 24 forks source link

Instant error when running script #5

Open PascalvanDongen opened 6 years ago

PascalvanDongen commented 6 years ago

When I run the script I get this error instantly: Traceback (most recent call last): File "twitterbot1.py", line 67, in <module> run() File "twitterbot1.py", line 62, in run search(api.search(q=key)) File "twitterbot1.py", line 37, in search if is_user_bot_hunter(str(i.author.name), str(i.author.screen_name)) == False: UnicodeEncodeError: 'ascii' codec can't encode character u'\U0001f384' in position 0: ordinal not in range(128)

EddRJ commented 6 years ago

Same issue here. The bot will run but then produce that error message after a few cycles, or it just produces that message instantly.

robbiebarrat commented 6 years ago

Alright so I rolled back to a previous commit where it doesn't throw that error; before i tried to update the bot detection measures...

It should be working now; but i remember @PascalvanDongen was having troubles with it retweeting some vegas giveaways account that it shouldn't be retweeting; give me 2 or 3 days and that'll be fixed, too.

EddRJ commented 6 years ago

Working like a charm. Thank you.

PascalvanDongen commented 6 years ago

Now i am getting this error: Traceback (most recent call last): File "twitterbot.py", line 67, in <module> run() File "twitterbot.py", line 62, in run search(api.search(q=key)) File "/usr/local/lib/python2.7/dist-packages/tweepy/binder.py", line 245, in _call return method.execute() File "/usr/local/lib/python2.7/dist-packages/tweepy/binder.py", line 229, in execute raise TweepError(error_msg, resp, api_code=api_error_code) tweepy.error.TweepError: [{u'message': u'Invalid or expired token.', u'code': 89}]

Alkesst commented 6 years ago

This error usually appears when using python 2.x due to the string encoding. Python 2.x uses ascii strings by default. It is required to use .encode('utf8')/.decode('utf8') in the right strings to avoid getting the error. Other way to avoid the error is by adding u"just a string" to all the strings. (I regret for my bad english, I hope it helps)

P.S. Tweepy uses by default the unicode strings.