def getMoreImages(search_term, search_index): ipAddress = environ.get('REMOTE_ADDR', '127.0.0.1') # Add search term to list FS.recordSearchTerm(search_term) # Load images from disk if we've already retrieved them response = FS.getStoredImages(search_term, search_index) if len(response.images) > 0: # Return 'em if we got 'em return response # Fetch new images response = Google.searchImages(search_term, search_index, source_ip = ipAddress, safe = "off") if response.error != None: return response # No error directory = FS.getImageDir(search_term) # Add images to summary FS.saveSummaryOfImages(response.images, directory, response.exhausted, search_index + FS.BATCH_SIZE) # Save image info in separate files for image in response.images: FS.saveImageToFile(image, directory) return response
return response from Image import Image images = [] for (current_index, json_image) in enumerate(json['responseData']['results']): imageUrl = json_image['unescapedUrl'] meta = httpy.get_meta(imageUrl, timeout=5) if 'Content-type' not in meta or 'image' not in meta[ 'Content-Type']: # Image is not an image. continue try: image = Image(json=json_image) image.imageIndex = start_index + current_index + 1 images.append(image) except Exception, e: # Don't fail completely when deserializing single images pass response.images = images return response if __name__ == '__main__': response = Google.searchImages("butterfly", 0) for image in response.images: print image.toJSON() from FS import FS FS.saveSummaryOfImages(response.images, 'butterfly', response.exhausted, len(response.images))
if 'results' not in json['responseData']: response.error = 'invalid response from google while searching "%s":\n%s' \ % (search_text, response) response.retryableError = False return response from Image import Image images = [] for (current_index, json_image) in enumerate(json['responseData']['results']): imageUrl = json_image['unescapedUrl'] meta = httpy.get_meta(imageUrl, timeout=5) if 'Content-type' not in meta or 'image' not in meta['Content-Type']: # Image is not an image. continue try: image = Image(json=json_image) image.imageIndex = start_index + current_index + 1 images.append(image) except Exception, e: # Don't fail completely when deserializing single images pass response.images = images return response if __name__ == '__main__': response = Google.searchImages("butterfly", 0) for image in response.images: print image.toJSON() from FS import FS FS.saveSummaryOfImages(response.images, 'butterfly', response.exhausted, len(response.images))