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)
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!'
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())