Example #1
0
 def post(self):
     user = users.get_current_user()
     if self.request.get('delete'):
         for sid in self.request.get_all("del_checkbox"):
             stream = Stream.get_by_id(int(sid), getStreamKey())
             if stream:
                 removeStreamFromSearchService(stream)
                 deleteStream(stream)
         self.redirect(urls.URL_MANAGEMENT_PAGE, permanent=True)
         return
     if self.request.get('unsubscribe'):
         for sid in self.request.get_all("unsub_checkbox"):
             stream = Stream.get_by_id(int(sid), getStreamKey())
             if stream:
                 unsubscribeStream(stream, user.email())
     self.redirect(urls.URL_MANAGEMENT_PAGE, permanent=True)
Example #2
0
 def getImages(self, request):
     stream = Stream.get_by_id(request.stream_id, getStreamKey())
     if not stream:
         return ResponseImages()
     return ResponseImages(images=[
         getImageInfo(x)
         for x in Image.query(ancestor=stream.key).order(-Image.create_time)
     ])
Example #3
0
 def getStream(self, request):
     user = endpoints.get_current_user()
     stream = Stream.get_by_id(request.stream_id, getStreamKey())
     if not stream:
         return RespondStream()
     if not (user and user.email()==stream.user):
         stream.viewCount = stream.viewCount + 1
         stream.put()
     return RespondStream(stream=getStreamInfo(stream))
Example #4
0
 def getUploadURL(self, request):
     user = endpoints.get_current_user()
     if not user:
         return StringResponse()
     stream = Stream.get_by_id(request.stream_id, getStreamKey())
     if not stream:
         return StringResponse()
     if stream.user != user.email():
         return StringResponse()
     return StringResponse(value=blobstore.create_upload_url(BackendFileuploadHandler.url +
                                 '/?'+urllib.urlencode({'id':stream.key.id()})))
Example #5
0
 def unsubscribe(self, request):
     user = endpoints.get_current_user()
     if not user:
         return BooleanResponse(value=False)
     stream = Stream.get_by_id(request.stream_id, getStreamKey())
     if not stream:
         return BooleanResponse(value=False)
     if stream.user == user.email():
         return BooleanResponse(value=False)
     if user.email() in stream.subscribers:
         unsubscribeStream(stream, user.email())
     return BooleanResponse(value=True)
 def post(self):
     user = users.get_current_user()
     streamId = self.request.get("id")
     if not streamId:
         logging.error("Unable to get id from url")
         self.error(400)
         return
     stream = Stream.get_by_id(int(streamId), getStreamKey())
     if not stream:
         logging.error("Unable to get stream with id " + streamId)
         self.error(400)
         return
     if self.request.get('subscribe'):
         if user.email() in stream.subscribers:
             unsubscribeStream(stream, user.email())
             self.response.write('unsubscribed')
         else:
             subscribeStream(stream, user.email())
             self.response.write('subscribed')
 def post(self):
     if not self.get_uploads('img') or len(self.get_uploads('img')) < 1:
         logging.error("Unable to get img")
         self.error(400)
         return
     upload = self.get_uploads('img')[0]
     if not upload.key():
         logging.error("Unable to get img")
         self.error(500)
         return
     sid = self.request.get('id')
     if not sid:
         logging.error("Unable to get id from url")
         self.error(400)
         blobstore.delete(upload.key())
         return
     stream = Stream.get_by_id(int(sid), getStreamKey())
     if not stream:
         logging.error("Unable to get stream with id " + str(sid))
         self.error(400)
         blobstore.delete(upload.key())
         return
     lat = self.request.get('latitude')
     if not lat:
         logging.error("Unable to get latitude!")
         self.error(400)
         blobstore.delete(upload.key())
         return
     lgi = self.request.get('longitude')
     if not lgi:
         logging.error('Unable to get longitude!')
         logging.error(400)
         blobstore.delete(upload.key())
         return
     addImage(stream, upload, float(lat), float(lgi),
              self.request.get('tag'))
     self.response.write('success')
Example #8
0
 def getImages(self, request):
     stream = Stream.get_by_id(request.stream_id, getStreamKey())
     if not stream:
         return ResponseImages()
     return ResponseImages(images=[getImageInfo(x) for x in Image.query(ancestor=stream.key).order(-Image.create_time)])
 def get(self):
     user = users.get_current_user()
     streamId = self.request.get("id")
     if not streamId:
         logging.error("Unable to get id from url")
         self.error(400)
         jumpToErrorPage(self)
         return
     stream = Stream.get_by_id(int(streamId), getStreamKey())
     if not stream:
         logging.error("Unable to get stream with id " + streamId)
         self.error(400)
         jumpToErrorPage(
             self, 'Unable to find the stream! The stream may be deleted!')
         return
     if self.request.get('newest_pic'):
         self.response.write(
             get_serving_url(
                 Image.query(ancestor=stream.key).order(
                     -Image.create_time).get().img))
         return
     if (self.request.get('geo_info')):
         timeline = self.request.get_all('timeline[]')
         if (timeline is None) or len(timeline) < 2:
             self.error(400)
             return
         startDate = datetime.now() - timedelta(365 - int(timeline[0]))
         endDate = datetime.now() - timedelta(365 - int(timeline[1]))
         images = Image.query(Image.create_time >= startDate,
                              Image.create_time <= endDate,
                              ancestor=stream.key)
         images = filter(
             lambda x: x.latitude >= -90.0 and x.latitude <= 90.0 and x.
             longitude >= -180.0 and x.longitude <= 180.0, images)
         self.response.write(
             json.dumps([{
                 'url': get_serving_url(img.img),
                 'latitude': img.latitude,
                 'longitude': img.longitude
             } for img in images]))
         return
     if self.request.get('upload'):
         self.response.write(
             blobstore.create_upload_url(
                 urls.URL_VIEW_STREAM_PAGE + urls.URL_UPLOAD_HANDLER +
                 '/?' + urllib.urlencode({'id': streamId})))
         return
     template_dict = urls.getUrlDir()
     template_dict['images'] = [
         get_serving_url(x.img)
         for x in Image.query(ancestor=stream.key).order(-Image.create_time)
     ]
     template_dict['id'] = streamId
     template_dict['stream'] = stream
     template_dict['images_per_page'] = images_per_page
     if stream.user == user.email():
         template_dict['is_owner'] = True
     else:
         template_dict['is_owner'] = False
         increaseViewNum(stream)
         stream.viewCount = stream.viewCount + 1
         template_dict['subscribed'] = user.email() in stream.subscribers
         stream.put()
     self.response.write(
         urls.getTemplate(template_name).render(template_dict))