Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python3
- import random
- import tweepy
- import time
- from user_data import keys, search_terms
- consumer_key = keys['consumer_key']
- consumer_secret = keys['consumer_secret']
- access_token = keys['access_token']
- access_token_secret = keys['access_token_secret']
- handle = keys['handle']
- auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
- auth.set_access_token(access_token, access_token_secret)
- api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, retry_count=5, retry_delay=1, timeout=12)
- followed = []
- def lfrt():
- terms = search_terms
- query = random.choice(terms)
- number_tweets = 25
- search = tweepy.Cursor(api.search, q=query, result_type="recent", lang="en", wait_on_rate_limit=True).items(number_tweets)
- print("Searching... " + query)
- my_id = api.me()
- for status in search:
- if (status.user.id) == (my_id):
- print("Don't like your own post")
- continue
- try:
- time.sleep(10)
- api.retweet(id=status.id)
- api.create_favorite(id=status.id)
- api.create_friendship(id=status.user.id)
- followed.append(status.user.id)
- print("Liked, Retweeted, and Followed... " + str(status.user.screen_name.encode('utf8')))
- except tweepy.TweepError as e:
- if (e.args[0][0]['code'] == 139):
- print("You have already liked... " + str(status.user.screen_name.encode('utf8')))
- continue
- if (e.args[0][0]['code'] == 88):
- print("Rate limited... ")
- time.sleep(60*15)
- continue
- if (e.args[0][0]['code'] == 327):
- print("You have already retweeted... " + str(status.user.screen_name.encode('utf8')))
- continue
- print("Error with tweet... " + str(status.id))
- api.create_friendship(id=status.user.id)
- def unfollow():
- print("Followed list is too long... ")
- for user in followed:
- try:
- status = api.show_friendship(source_screen_name=handle, target_id=user)
- except:
- print("Rate limited... ")
- time.sleep(60*15)
- if (str(status[1].following) == "False"):
- try:
- api.destroy_friendship(id=user)
- print("Unfollowed... " + str(handle))
- followed.remove(user)
- time.sleep(10)
- continue
- except:
- print("Could not unfollow... " + str(handle))
- time.sleep(10)
- followed.remove(user)
- elif (str(status[1].following) == "True"):
- print("Is following you... " + str(handle))
- followed.remove(user)
- continue
- def clean_up():
- followers = api.followers_ids(my_ids)
- friends = api.friends_ids(my_ids)
- for nofoll in friends:
- if nofoll not in followers:
- time.sleep(10)
- api.destroy_friendship(f)
- print("Unfollowed... " + str(handle))
- def write_to_file(filename, list):
- for item in list:
- filename.write(str(item) + "\n")
- for i in range(0,6):
- with open('ufd.data') as foll:
- followed = foll.read().splitlines()
- if (len(followed) > 50):
- unfollow()
- lfrt()
- print("Logging users... ")
- followed_users = open("followed.txt", "w")
- write_to_file(followed_users, followed)
- followed_users.close()
- print("Sleeping... ")
- time.sleep(150)
- clean_up()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement