Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2017
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.36 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # ------------- EDIT THESE NUMBERS IF YOU WANT ---------------------------
  3.  
  4. # COORDINATES TO ATTACK
  5. center = [173,738] # ricksfoot
  6.  
  7. user_input_x = raw_input("Startpos X: ")
  8. user_input_y = raw_input("Startpos Y: ")
  9. if user_input_x != "" and user_input_y != "":
  10.     center = [int(user_input_x),int(user_input_y)]
  11.  
  12.  
  13. # COLOR TO PLACE - 3 IS BLACK MOTHERFUCKERS
  14. void_color = 3
  15.  
  16.  
  17. # ------------------------------------------------------------------------
  18.  
  19. import urllib
  20. import urllib2
  21. import time
  22. import json
  23. import random
  24. import math
  25.  
  26. __version__ = 1.0
  27.  
  28.  
  29. print "Build the Void"
  30. print "For each account you want to use, enter it in like username:password"
  31. print "When you're done, type 'done'"
  32.  
  33. accounts = []
  34. while True:
  35.     user_input = raw_input("Account-> ")
  36.     if user_input.lower() != 'done' and user_input!= '':
  37.         accounts.append(user_input)
  38.     else:
  39.         break
  40.  
  41. # ------------------------------------------------------------------------
  42.  
  43. def main( accounts ):
  44.    
  45.     print "Getting user agent list for anonymity (please wait)"
  46.     user_agent_list=list(set([ua for ua in urllib.urlopen("https://raw.githubusercontent.com/sqlmapproject/sqlmap/master/txt/user-agents.txt").read().splitlines() if not ua.startswith("#")]))
  47.    
  48.     sessions = {}
  49.    
  50.     opener = urllib2.build_opener()
  51.     opener.addheaders = [('User-Agent', random.choice(user_agent_list))]
  52.     for account in accounts:
  53.         username = account.split(":")[0]
  54.         password = ':'.join(account.split(":")[1:])
  55.         data = urllib.urlencode({'op': 'login-main', 'user': username, 'passwd': password, 'api_type': 'json'})
  56.         rawresp = opener.open('https://www.reddit.com/api/login/'+urllib.quote(username), data).read()
  57.         response = json.loads(rawresp)
  58.         if not response['json'].get('errors'):
  59.             sessions[username] = response['json']['data']['cookie']
  60.         else:
  61.             print 'Error: connection problem for account: '+username
  62.             print response
  63.             continue
  64.  
  65.     print "Running Build the Void on pos",center[0],center[1]
  66.        
  67.     while True:
  68.         # Fill the void
  69.         for session in sessions.keys():
  70.            
  71.            
  72.             "##########################################"
  73.            
  74.            
  75.             cookie = sessions[session]
  76.             color = void_color
  77.             counter = 0
  78.             xtest = 0
  79.             ytest = 0
  80.             visited = []
  81.            
  82.             def add_check ( coords ):
  83.                 for e in visited:
  84.                     if e[0] == coords[0] and e[1] == coords[1]:
  85.                         return 0
  86.                 return 1
  87.            
  88.             while color == void_color :
  89.                
  90.                 if counter == 9:
  91.                     counter = 0
  92.                    
  93.                     center[0] += random.randint(-2,2)
  94.                     center[1] += random.randint(-2,2)
  95.                    
  96.                 if counter == 0:
  97.                     xtest = center[0]
  98.                     ytest = center[1]
  99.                 if counter == 1:
  100.                     xtest = center[0]+1
  101.                     ytest = center[1]-1
  102.                 if counter == 2:
  103.                     xtest = center[0]+1
  104.                     ytest = center[1]
  105.                 if counter == 3:
  106.                     xtest = center[0]+1
  107.                     ytest = center[1]+1
  108.                 if counter == 4:
  109.                     xtest = center[0]-1
  110.                     ytest = center[1]-1
  111.                 if counter == 5:
  112.                     xtest = center[0]-1
  113.                     ytest = center[1]
  114.                 if counter == 6:
  115.                     xtest = center[0]-1
  116.                     ytest = center[1]+1
  117.                 if counter == 7:
  118.                     xtest = center[0]
  119.                     ytest = center[1]+1
  120.                 if counter == 8:
  121.                     xtest = center[0]
  122.                     ytest = center[1]-1
  123.                
  124.                 counter += 1
  125.                
  126.                 if add_check ( [xtest,ytest] ):
  127.                     resp = opener.open("https://www.reddit.com/api/place/pixel.json?x="+str(xtest)+"&y="+str(ytest)).read()
  128.                     try:
  129.                         color = int(json.loads(resp)["color"])
  130.                     except Exception, e:
  131.                         color = void_color
  132.                
  133.                 if color == void_color:
  134.                     visited.append([xtest,ytest])
  135.            
  136.             visited = []
  137.            
  138.             "##########################################"
  139.              
  140.             print time.asctime( time.localtime(time.time()) ),"  Found a non-void color at", xtest, ytest
  141.             data = urllib.urlencode({'x': xtest, 'y': ytest, 'color': void_color})
  142.             newopener = urllib2.build_opener()
  143.             newopener.addheaders = [('User-Agent', random.choice(user_agent_list))]
  144.             newopener.addheaders.append(('Cookie', 'reddit_session='+cookie))
  145.             modhash = json.loads(newopener.open("https://reddit.com/api/me.json").read())["data"]["modhash"]
  146.             newopener.addheaders.append(('x-modhash', modhash))
  147.             next=newopener.open("https://www.reddit.com/api/place/draw.json", data).read()
  148.             print "   ",next
  149.             finalresp = newopener.open("https://www.reddit.com/api/place/pixel.json?x="+str(xtest)+"&y="+str(ytest)).read()
  150.             if session in finalresp:
  151.                 print "   Added successfully"
  152.             else:
  153.                 print finalresp
  154.         time.sleep(305)
  155.  
  156.    
  157. # ------------------------------------------------------------------------
  158.  
  159. # If any problem occurs, keep retrying forever. All hail the void.
  160. genSessions( accounts )
  161. while True:
  162.     # TODO: Keep track of individual account cooldowns. Currently if an account in the queue has a cooldown the others after it aren't tried until that cooldown is finished
  163.     try:
  164.         main( accounts )
  165.     except Exception as e:
  166.         if str(e) == "HTTP Error 502: Bad Gateway":
  167.             print '502 error! Reddit being shit as always!'
  168.             print 'Retrying in 2 seconds...'
  169.             time.sleep(2);
  170.         else:
  171.             print 'Error: ' + str(e) + '\n'
  172.             print '429 error! Account is on cooldown.'
  173.             print 'Retrying in 15 seconds'
  174.             time.sleep(15)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement