#!/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)