SHOW:
|
|
- or go back to the newest paste.
1 | import urllib | |
2 | import urllib | |
3 | import urllib2 | |
4 | import time | |
5 | import json | |
6 | import random | |
7 | ||
8 | print "Build the Void" | |
9 | ||
10 | print "Getting user agent list for anonymity (please wait)" | |
11 | 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("#")])) | |
12 | ||
13 | accounts = [] | |
14 | sessions = {} | |
15 | print "For each account you want to use, enter it in like username:password" | |
16 | print "When you're done, type 'done'" | |
17 | user_input = "" | |
18 | while (user_input != "done"): | |
19 | user_input = raw_input("Account-> ") | |
20 | if user_input.lower() != "done": | |
21 | accounts.append(user_input) | |
22 | ||
23 | opener = urllib2.build_opener() | |
24 | opener.addheaders = [('User-Agent', random.choice(user_agent_list))] | |
25 | for account in accounts: | |
26 | username = account.split(":")[0] | |
27 | password = account.split(":")[1] | |
28 | data = urllib.urlencode({'op': 'login-main', 'user': username, 'passwd': password, 'api_type': 'json'}) | |
29 | resp = opener.open('https://www.reddit.com/api/login/'+urllib.quote(username), data).read() | |
30 | _data = json.loads(resp)["json"].get("data") | |
31 | while _data == None: | |
32 | opener = urllib2.build_opener() | |
33 | opener.addheaders = [('User-Agent', random.choice(user_agent_list))] | |
34 | resp = opener.open('https://www.reddit.com/api/login/'+urllib.quote(username), data).read() | |
35 | _data = json.loads(resp)["json"].get("data") | |
36 | sessions[username] = _data["cookie"] | |
37 | ||
38 | def paint_black(xtest,ytest): | |
39 | try: | |
40 | data = urllib.urlencode({'x': xtest, 'y': ytest, 'color': void_color}) | |
41 | newopener = urllib2.build_opener() | |
42 | newopener.addheaders = [('User-Agent', random.choice(user_agent_list))] | |
43 | newopener.addheaders.append(('Cookie', 'reddit_session='+cookie)) | |
44 | modhash = json.loads(newopener.open("https://reddit.com/api/me.json").read())["data"]["modhash"] | |
45 | newopener.addheaders.append(('x-modhash', modhash)) | |
46 | next=newopener.open("https://www.reddit.com/api/place/draw.json", data).read() | |
47 | print next | |
48 | finalresp = newopener.open("https://www.reddit.com/api/place/pixel.json?x="+str(xtest)+"&y="+str(ytest)).read() | |
49 | return finalresp | |
50 | except urllib2.HTTPError: | |
51 | print 'skipping' | |
52 | ||
53 | print "Running Build the Void" | |
54 | void_color = 3 # BLACK | |
55 | - | center = [805, 417] # x,y of center of void |
55 | + | center = [25, 25] # x,y of center of void |
56 | while True: | |
57 | # Fill the void | |
58 | for session in sessions.keys(): | |
59 | cookie = sessions[session] | |
60 | color = 3 | |
61 | counter = 5 | |
62 | while color == void_color: | |
63 | cx=[ x for x in range(center[0]-counter,center[0]+counter) ] | |
64 | cy=[ x for x in range(center[1]-counter,center[1]+counter) ] | |
65 | checklist = [] | |
66 | for x in cx: | |
67 | for y in cy: | |
68 | checklist.append((x,y)) | |
69 | random.shuffle(checklist) | |
70 | for check in checklist: | |
71 | # Find a non-black square | |
72 | xtest = check[0] | |
73 | ytest = check[1] | |
74 | resp = opener.open("https://www.reddit.com/api/place/pixel.json?x="+str(xtest)+"&y="+str(ytest)).read() | |
75 | try: | |
76 | color = int(json.loads(resp)["color"]) | |
77 | except Exception, e: | |
78 | print "Exception" | |
79 | print resp | |
80 | color = 3 | |
81 | if color != void_color: | |
82 | break | |
83 | counter += 10 | |
84 | print "Found a non-void color at", xtest, ytest | |
85 | print 'https://www.reddit.com/r/place/#x=%s&y=%s' % (xtest, ytest) | |
86 | finalresp = paint_black(xtest,ytest) | |
87 | if finalresp: | |
88 | if session in finalresp: | |
89 | print "Added successfully" | |
90 | else: | |
91 | print finalresp | |
92 | time.sleep(305) |