Guest User

Python Twitter Coordinate Script by Nuance (HackForums)

a guest
Feb 1st, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.13 KB | None | 0 0
  1. import sys, time, tweepy
  2.  
  3. auth = tweepy.OAuthHandler('YOUR CONSUMER KEY', 'YOUR CONSUMER SECRET')
  4. auth.set_access_token('YOUR ACCESS TOKEN', 'YOUR ACCESS TOKEN SECRET')
  5.  
  6. api = tweepy.API(auth, retry_count=10, timeout=120, wait_on_rate_limit=True)
  7.  
  8. def getFollowerCoordinates():
  9.  
  10.     print('\n---------- Get Coordinates of Followers ----------\n')
  11.  
  12.     while True:
  13.  
  14.         targetUser = input('Target User Handle or [R]eturn: @')
  15.  
  16.         if targetUser == 'Return' or targetUser == 'return' or targetUser == 'R' or targetUser == 'r':
  17.             return None
  18.  
  19.         try:
  20.             targetUser = api.get_user(targetUser)
  21.             break
  22.  
  23.         except:
  24.             print('User not found.')
  25.  
  26.     outputFileName = input('Output File Name: ')
  27.     outputFile = open(outputFileName + '.txt', 'w', encoding='utf-8')
  28.     outputFile.close()
  29.  
  30.     print()
  31.  
  32.     followerPageCount = 0
  33.  
  34.     for followerPage in tweepy.Cursor(api.followers, screen_name=targetUser.screen_name).pages():
  35.         followerPageCount += 1
  36.         #print('Currently on Follower Page ' + str(followerPageCount) + ' of ' + str(int(targetUser.followers_count / 20)) + ' for ' + targetUser.name + ' (@' + targetUser.screen_name + ').')
  37.         for follower in followerPage:
  38.             if follower.geo_enabled == True and follower.protected == False:
  39.                 tweetPageCount = 0
  40.                 hadCoords = False
  41.                 for tweetPage in tweepy.Cursor(api.user_timeline, screen_name=follower.screen_name, count=200).pages():
  42.                     tweetPageCount += 1
  43.                     #print('Currently on Tweet Page ' + str(tweetPageCount) + ' of ' + str(int(follower.statuses_count / 200)) + ' for ' + follower.name + ' (@' + follower.screen_name + ').')
  44.                     for tweet in tweetPage:
  45.                         if tweet.geo != None:
  46.                             if hadCoords == False:
  47.                                 hadCoords = True
  48.                                 outputFile = open(outputFileName + '.txt', 'at', encoding='utf-8')
  49.                                 outputFile.write('-------------------------------------------------- ' + follower.name + '\'s (@' + follower.screen_name + ') Coordinates --------------------------------------------------\n')
  50.                                 if follower.description != '':
  51.                                     outputFile.write('Bio: ' + follower.description + '\n')
  52.                                 if follower.location != '':
  53.                                     outputFile.write('Location: ' + follower.location + '\n')
  54.                                 if follower.url != None:
  55.                                     outputFile.write('Website: ' + follower.url + '\n')
  56.                                 outputFile.close()
  57.                                 print('-------------------------------------------------- ' + follower.name + '\'s (@' + follower.screen_name + ') Coordinates --------------------------------------------------')
  58.                                 if follower.description != '':
  59.                                     print('Bio: ' + follower.description)
  60.                                 if follower.location != '':
  61.                                     print('Location: ' + follower.location)
  62.                                 if follower.url != None:
  63.                                     print('Website: ' + follower.url)
  64.                             coordString = tweet.geo
  65.                             outputFile = open(outputFileName + '.txt', 'at', encoding='utf-8')
  66.                             outputFile.write(str(coordString['coordinates']) + ' as of ' + str(tweet.created_at) + '\nReference: https://twitter.com/' + follower.screen_name + '/status/' + tweet.id_str + '\n')
  67.                             outputFile.close()
  68.                             print(str(coordString['coordinates']) + ' as of ' + str(tweet.created_at) + '\nReference: https://twitter.com/' + follower.screen_name + '/status/' + tweet.id_str)
  69.                     time.sleep(26)
  70.         time.sleep(122)
  71.  
  72.  
  73. def getFollowingCoordinates():
  74.  
  75.     print('\n---------- Get Coordinates of Friends (Following) ----------\n')
  76.  
  77.     while True:
  78.  
  79.         targetUser = input('Target User Handle or [R]eturn: @')
  80.  
  81.         if targetUser == 'Return' or targetUser == 'return' or targetUser == 'R' or targetUser == 'r':
  82.             return None
  83.  
  84.         try:
  85.             targetUser = api.get_user(targetUser)
  86.             break
  87.  
  88.         except:
  89.             print('User not found.')
  90.  
  91.     outputFileName = input('Output File Name: ')
  92.     outputFile = open(outputFileName + '.txt', 'w', encoding='utf-8')
  93.     outputFile.close()
  94.  
  95.     print()
  96.  
  97.     friendPageCount = 0
  98.  
  99.     for friendsPage in tweepy.Cursor(api.friends, screen_name=targetUser.screen_name).pages():
  100.         friendPageCount += 1
  101.         #print('Currently on Following Page ' + str(friendsPageCount) + ' of ' + str(int(targetUser.friends_count / 20)) + ' for ' + targetUser.name + ' (@' + targetUser.screen_name + ').')
  102.         for friend in friendsPage:
  103.             if friend.geo_enabled == True and friend.protected == False:
  104.                 tweetPageCount = 0
  105.                 hadCoords = False
  106.                 for tweetPage in tweepy.Cursor(api.user_timeline, screen_name=friend.screen_name, count=200).pages():
  107.                     tweetPageCount += 1
  108.                     #print('Currently on Tweet Page ' + str(tweetPageCount) + ' of ' + str(int(friend.statuses_count / 200)) + ' for ' + friend.name + ' (@' + targetUser.screen_name + ').')
  109.                     for tweet in tweetPage:
  110.                         if tweet.geo != None:
  111.                             if hadCoords == False:
  112.                                 hadCoords = True
  113.                                 outputFile = open(outputFileName + '.txt', 'at', encoding='utf-8')
  114.                                 outputFile.write('-------------------------------------------------- ' + friend.name + '\'s (@' + friend.screen_name + ') Coordinates --------------------------------------------------\n')
  115.                                 if friend.description != '':
  116.                                     outputFile.write('Bio: ' + friend.description)
  117.                                 if friend.location != '':
  118.                                     outputFile.write('Location: ' + friend.location)
  119.                                 if friend.url != None:
  120.                                     outputFile.write('Website: ' + friend.url)
  121.                                 outputFile.close()
  122.                                 print('-------------------------------------------------- ' + friend.name + '\'s (@' + friend.screen_name + ') Coordinates --------------------------------------------------')
  123.                                 if friend.description != '':
  124.                                     print('Bio: ' + friend.description)
  125.                                 if friend.location != '':
  126.                                     print('Location: ' + friend.location)
  127.                                 if friend.url != None:
  128.                                     print('Website: ' + friend.url)
  129.                             coordString = tweet.geo
  130.                             outputFile = open(outputFileName + '.txt', 'at', encoding='utf-8')
  131.                             outputFile.write(str(coordString['coordinates']) + ' as of ' + str(tweet.created_at) + '\nReference: https://twitter.com/' + friend.screen_name + '/status/' + tweet.id_str + '\n')
  132.                             outputFile.close()
  133.                             print(str(coordString['coordinates']) + ' as of ' + str(tweet.created_at) + '\nReference: https://twitter.com/' + friend.screen_name + '/status/' + tweet.id_str)
  134.                     time.sleep(26)
  135.         time.sleep(122)
  136.  
  137.  
  138. while True:
  139.  
  140.  
  141.     print('---------- Nuance\'s Twitter Menu ----------\n')
  142.     print('1) Get Coordinates of Followers')
  143.     print('2) Get Coordinates of Friends (Following)')
  144.     print('3) Exit\n')
  145.  
  146.     menuChoice = input('> ')
  147.  
  148.     if menuChoice == '1':
  149.         getFollowerCoordinates()
  150.         print('\n')
  151.     elif menuChoice == '2':
  152.         getFollowingCoordinates()
  153.         print('\n')
  154.     elif menuChoice == '3':
  155.         sys.exit()
Advertisement
Add Comment
Please, Sign In to add comment