def do_compute(self): # step 1. get png url and download png_prompt = TextHelper.find_text_between_tag(self.web_source, "<img src=\"", "\"/>") png_url = WebHelper.join_url(self.url, png_prompt) png_local = WebHelper.get_url_page(png_url) WebHelper.download(png_url, png_local) # step 2. get prompt information png = Image.open(png_local) row = [png.getpixel((x, png.size[1]/2)) for x in range(0, png.size[0], 7)] print ''.join([chr(r) for r, g, b, d in row if r == g and g == b]) # get hint: smart guy, you made it. the next level is [105, 110, 116, 101, 103, 114, 105, 116, 121] # step 3. set prompt for next url self.set_prompt(''.join([chr(i) for i in [105, 110, 116, 101, 103, 114, 105, 116, 121]])) # step . clean file FileHelper.remove_file(png_local)
def do_compute(self): # step 1. Get hint from page source hint = TextHelper.find_text_between_tag(self.web_source, "<html> <!-- <-- ", " -->\n<head>") zip_url = WebHelper.change_suffix_url(self.url, hint) # step 2. Download zip to local and extract tmp_zip = zip_url[zip_url.rindex("/") + 1:] tmp_folder = tmp_zip[:tmp_zip.index(".")] WebHelper.download(zip_url, tmp_zip) zip_ref = zipfile.ZipFile(tmp_zip, 'r') zip_ref.extractall(tmp_folder) zip_ref.close() # step 3. Get next hint readme_txt = open(tmp_folder + "/readme.txt", 'r').read() start_txt = TextHelper.find_text_between_tag(readme_txt, "hint1: start from ", "\n") next_hint = T6.read_traverse(start_txt) print next_hint # Hint: Collect the comments. # step 4. Get comments print T6.collect_comments( tmp_zip, start_txt) # Comments: HOCKEY (Small letter oxygen) # step 5. Wrong way wrong_url = WebHelper.join_url(self.url, "hockey") print WebHelper.get_web_source( wrong_url) # it's in the air. look at the letters. # step 6. Get next url hint self.set_prompt(WebHelper.join_url(self.url, "oxygen")) # step 7. Clean folder FileHelper.remove_folder(tmp_folder) FileHelper.remove_file(tmp_zip)