Advertisement
EmptySet5150

Twitter Bot - Like Follow RwTweet

Feb 2nd, 2020
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.58 KB | None | 0 0
  1. #!/usr/bin/python3
  2. import random
  3. import tweepy
  4. import time
  5. from user_data import keys, search_terms
  6.  
  7.  
  8. consumer_key = keys['consumer_key']
  9. consumer_secret = keys['consumer_secret']
  10. access_token = keys['access_token']
  11. access_token_secret = keys['access_token_secret']
  12. handle = keys['handle']
  13.  
  14.  
  15. auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
  16. auth.set_access_token(access_token, access_token_secret)
  17. api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True, retry_count=5, retry_delay=1, timeout=12)
  18.  
  19. followed = []
  20.  
  21.  
  22. def lfrt():
  23.     terms = search_terms
  24.     query = random.choice(terms)
  25.     number_tweets = 25
  26.     search = tweepy.Cursor(api.search, q=query, result_type="recent", lang="en", wait_on_rate_limit=True).items(number_tweets)
  27.     print("Searching... " + query)
  28.     my_id = api.me()
  29.     for status in search:
  30.         if (status.user.id) == (my_id):
  31.             print("Don't like your own post")
  32.             continue
  33.         try:
  34.                 time.sleep(10)
  35.                 api.retweet(id=status.id)
  36.                 api.create_favorite(id=status.id)
  37.                 api.create_friendship(id=status.user.id)
  38.                 followed.append(status.user.id)
  39.                 print("Liked, Retweeted, and Followed... " + str(status.user.screen_name.encode('utf8')))
  40.         except tweepy.TweepError as e:
  41.             if (e.args[0][0]['code'] == 139):
  42.                 print("You have already liked... " + str(status.user.screen_name.encode('utf8')))
  43.                 continue
  44.             if (e.args[0][0]['code'] == 88):
  45.                 print("Rate limited... ")
  46.                 time.sleep(60*15)
  47.                 continue
  48.             if (e.args[0][0]['code'] == 327):
  49.                 print("You have already retweeted... " + str(status.user.screen_name.encode('utf8')))
  50.                 continue
  51.             print("Error with tweet... " + str(status.id))
  52.             api.create_friendship(id=status.user.id)
  53.  
  54.            
  55. def unfollow():
  56.     print("Followed list is too long... ")
  57.     for user in followed:
  58.         try:
  59.             status = api.show_friendship(source_screen_name=handle, target_id=user)
  60.         except:
  61.             print("Rate limited... ")
  62.             time.sleep(60*15)
  63.         if (str(status[1].following) == "False"):
  64.             try:
  65.                 api.destroy_friendship(id=user)
  66.                 print("Unfollowed... " + str(handle))
  67.                 followed.remove(user)
  68.                 time.sleep(10)
  69.                 continue
  70.             except:
  71.                 print("Could not unfollow... " + str(handle))
  72.                 time.sleep(10)
  73.             followed.remove(user)
  74.         elif (str(status[1].following) == "True"):
  75.             print("Is following you... " + str(handle))
  76.             followed.remove(user)
  77.             continue
  78.  
  79.  
  80. def clean_up():
  81.     followers = api.followers_ids(my_ids)
  82.     friends = api.friends_ids(my_ids)
  83.  
  84.     for nofoll in friends:
  85.         if nofoll not in followers:
  86.             time.sleep(10)
  87.             api.destroy_friendship(f)
  88.             print("Unfollowed... " + str(handle))
  89.  
  90.  
  91. def write_to_file(filename, list):
  92.     for item in list:
  93.         filename.write(str(item) + "\n")
  94.  
  95.  
  96. for i in range(0,6):
  97.     with open('ufd.data') as foll:
  98.             followed = foll.read().splitlines()
  99.             if (len(followed) > 50):
  100.                 unfollow()
  101.     lfrt()
  102.     print("Logging users... ")
  103.     followed_users = open("followed.txt", "w")
  104.     write_to_file(followed_users, followed)
  105.     followed_users.close()
  106.     print("Sleeping... ")
  107.     time.sleep(150)
  108.  
  109. clean_up()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement