Пример #1
0
	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
Пример #2
0
            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))
Пример #3
0
		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))