Beispiel #1
0
  def delete(self):
    key = self.request.get('key') or ''
    if key:
      img = Image.getImage(key)
      Stream.getStream(img.stream_id).removeImage(img.image_id)
    blobstore.delete(key)

    s = json.dumps({key: True}, separators=(',', ':'))    
    if 'application/json' in self.request.headers.get('Accept'):
        self.response.headers['Content-Type'] = 'application/json'

    self.response.write(s)
Beispiel #2
0
  def post(self):
    form = json.loads(self.request.body)          

    stream = Stream.getStream(form['stream_id'])
    if not stream:
        return self.respond(error="Stream %(stream_id)r does not exist." % form)

    stream.addView()
    self.respond(status="Added new view to stream %r at %s." % (form['stream_id']
                                                                ,stream.views[0]))
Beispiel #3
0
    def post(self):
        form = json.loads(self.request.body)
        
        stream = Stream.getStream(form['stream_id'])
        if not stream:
            return self.respond(error="Stream %(stream_id)r does not exist" % form)

        for image_id in set(form['images']) & set(stream.images):
            stream.removeImage(image_id)

        return self.respond(status="Images %(images)r removed" % form)
Beispiel #4
0
    def post(self):
        form = json.loads(self.request.body)

        if 'user_id' in form:
            user = User.getUser(form['user_id'])
            if not user:
                return self.respond(error="User %(user_id)r does not exist" % form)

            user_streams = [Stream.getStream(stream_id).dumpStream()
                            for stream_id in user.user_streams if Stream.exists(stream_id)]
            sub_streams = [Stream.getStream(stream_id).dumpStream()
                           for stream_id in user.subscribed_streams if Stream.exists(stream_id)]
            payload = {'user_streams': user_streams
                       , 'subscribed_streams': sub_streams
                       , 'status': "Grabbed streams for user %(user_id)r" % form}
        elif 'streams' in form:
            streams = [Stream.getStream(s_id).dumpStream() for s_id in form['streams']
                       if Stream.exists(s_id)]
            payload = {'streams': streams}

        self.respond(**payload)
Beispiel #5
0
  def write_blob(self, data, info):
    blob = files.blobstore.create(mime_type=info['type'],
                                  _blobinfo_uploaded_filename=info['name'])
    with files.open(blob, 'a') as f:
        f.write(data)
    files.finalize(blob)

    print blob

    user_photo = Image(stream_id=self.request.get('stream_id')
                       ,image_id=self.request.get('image_id')
                       ,blob_key=files.blobstore.get_blob_key(blob))

    stream = Stream.getStream(self.request.get('stream_id'))
    if stream:
      logging.debug("Adding image at %s (%r)" % (user_photo.create_date,str(user_photo.blob_key)))
      stream.addImage(user_photo)

    return files.blobstore.get_blob_key(blob)
Beispiel #6
0
    def post(self):
        form = json.loads(self.request.body)        

        stream = Stream.getStream(form['stream_id'])
        if not stream:
            return self.respond(error="Stream %(stream_id)r does not exist." % form)

        outpages = []
        images = []
        for idx in form['page_range'].split(','):
            if not idx: break
            idx = int(idx)
            if idx >= len(stream.images): continue

            images.append(stream.images[idx])
            outpages.append(idx)

        self.respond(page_range=outpages,images=images
                     , status="Grabbed pages %r from stream %r" % (outpages,form['stream_id']))