Exemplo n.º 1
0
    def parse(self, response):
        self.log('Scrapping: {}({})'.format(self.brand, response.url))
        images = response.css('.models > div.col-4 > a > img::attr(src)').extract()
        print('parsing')

        for img_url in images:
            # skip empty image
            if img_url.endswith('no-image-170x113.jpg'):
                self.log('Skipping empty image: {}'.format(img_url))
                continue

            # skip image if it already in DB
            try:
                Image.objects.get(pk=img_url)
                self.log('Image already exists: {}'.format(img_url))
                continue
            except Image.DoesNotExist:
                pass

            img = Image(url=img_url,
                        is_car=True,
                        test_set=random.randint(1, 100) < 10,
                        brand=self.brand)
            
            img.save()
            print('saved: ', img_url)

            self.log('New image saved: {}'.format(img_url))

            time.sleep(5)
Exemplo n.º 2
0
	def post(self, type, token_code):

		'''
			This is where our Flash uploader sends the data
			As Flash doesn't care about cookies or sessions,
			we have to send a token to authentificate...
		'''

		log = Log()

		token = Token.gql("WHERE code = :1", token_code ).get()
		
		if token:
			if token.expires > datetime.now():

				account = token.account
				
				if account.avatar:
				  account.avatar.delete()
				  account.avatar = None

				data = self.request.get('Filedata')
						
				image = images.resize(data, 100, 100)
				avatar = Image()
				avatar.data = db.Blob( image )
				avatar.put()
				
				account.avatar = avatar.key()
				account.put()

				# Update the memcache
				memcache.add('avatar'+account.nickname, account.avatar.data, 60)
				
				log.data = 'Valid Token, avatar changed.'

			else:
				log.data = 'Token expired'
		else:
			log.data = 'No such token'
			
		log.put()
		
		print 'Content-Type: text/plain'
		print ''
		print 'Hello, world!'
Exemplo n.º 3
0
	def get(self, name):

		data = memcache.get('thumb' + name)
		if data:
			imagetype = imghdr.what(file, data)
		else:
			image = Image.gql("WHERE name = :1", name).get()
			imagetype = image.type
			data = image.thumb
		
		if data:						  
			memcache.add('thumb' + name, data, 60)
			if imagetype == 'jpeg':
				self.response.headers['Content-Type'] = "image/jpg"
			elif imagetype == 'gif':
				self.response.headers['Content-Type'] = "image/gif"
			elif imagetype == 'png':
				self.response.headers['Content-Type'] = "image/png"
			self.response.out.write(data)
		else:
			self.response.headers['Content-Type'] = "image/gif"
			self.response.out.write(open('zoid.gif','rb').read())