1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
#!/usr/bin/python2.7
import requests, sys
import re
import simplejson as json
URL_BASE = "http://asdf.us/im"
IMAGES_I_LIKE = [
"http://i.asdf.us/im/29/imgrid_1347748334_xx_abridged___pepper.png",
"http://i.asdf.us/im/af/imGrid_1435899447_dmgk.png",
"http://i.asdf.us/im/da/imGrid_1435899431_dmgk.png",
# "http://i.asdf.us/im/e1/Over_1435899330_dmgk.png",
# "http://i.asdf.us/im/49/imGrid_1435898499_dmgk.png",
# "http://i.asdf.us/im/dd/imGradientyellow-blue_1435898433_.png",
]
def post_request(url, data):
r = requests.post(url, data=data)
if r.status_code != 200:
sys.stderr.write("ERROR: %s\n" % r.status_code)
sys.stderr.write("REASON: %s\n" % r.reason)
sys.exit(1)
return json.loads(r.text)
def get_request(url, params={}):
r = requests.get(url, params=params)
if r.status_code != 200:
sys.stderr.write("ERROR: %s\n" % r.status_code)
sys.stderr.write("REASON: %s\n" % r.reason)
sys.exit(1)
try:
return json.loads(r.text)
except Exception as e:
sys.stderr.write("%s\n" % r.text)
sys.stderr.write("%s\n" % e)
def get_api(api_name, params):
return get_request("%s/%s" % (URL_BASE, api_name), params=params)
def parse_newfile(url):
try:
return re.search(r'/([^/]+)$', i).groups()[0]
except IndexError:
return ""
class Backtracker(object):
def __init__(self):
self.bob = 0
self.mama = 4
self.setup()
def setup(self):
self.mama -= 1
self.bob += 1
if self.mama == 0:
return
else:
self.setup()
friend = Backtracker();
print friend.bob
def backtrack(url):
data_history = []
bob = 0
def recurse_back(url):
print parse_newfile(url)
bob += 1
print bob
api_data = get_api("data", {"newfile": parse_newfile(url)})
if not api_data:
return
else:
print "found api data"
data_history.append(api_data)
for element in api_data:
element_data = element.get("data")
next_url = element_data.get("url") or element_data.get("imageinstead")
if next_url:
print "searching for this url %s\n" % next_url.get("url")
recurse_back(next_url.get("url"))
else:
return
recurse_back(url)
return data_history
if __name__ == "__main__":
for i in IMAGES_I_LIKE:
print backtrack(i)
|