def get(self): stream_id = self.request.get(IDENTIFIER_STREAM_ID) start_idx = self.request.get(VIEW_STREAM_START_INDEX) if not start_idx: start_idx = 0 else: start_idx = int(start_idx) stream_obj = Stream() stream = stream_obj.get_stream(stream_id) # check if the stream exists if not stream: return self.respond(error="ViewStreamService >> Requested stream id %s does not exist." % stream_id) # now start retrieving images img_id_lst = [] # saving img ids img_url_lst = [] stream_img_id_lst = stream.image_id_lst nrof_imgs_in_stream = len(stream_img_id_lst) last_idx = start_idx + NUM_STREAMS_PER_PAGE if last_idx >= nrof_imgs_in_stream: last_idx = nrof_imgs_in_stream-1 idx_lst = xrange(start_idx, last_idx) for img_idx in idx_lst: img_id = stream_img_id_lst[img_idx] img_id_lst.append(img_id) image = Image.get_image(img_id) img_url_lst.append(SERVICE_URL+"/view_photo/"+str(image.blob_key)) # increase view count stream.increase_view_cnt() # generate upload url upload_url = blobstore.create_upload_url('/ws/stream/view_imgs') self.respond(stream_owner=stream.user_email, stream_name=stream.stream_name, img_id_lst=img_id_lst, img_url_lst=img_url_lst, last_idx=last_idx, nrof_imgs_in_stream=nrof_imgs_in_stream, upload_url=upload_url, status="success")
def get(self): stream_id = self.request.get(IDENTIFIER_STREAM_ID) query_begin_date = self.request.get(QUERY_BEGIN_DATE) query_end_date = self.request.get(QUERY_END_DATE) begin_date = datetime.strptime(query_begin_date, '%Y-%m-%dT%H:%M:%S.%fZ') end_date = datetime.strptime(query_end_date, '%Y-%m-%dT%H:%M:%S.%fZ') stream = Stream.get_stream(stream_id) response = {} markers_lst = list() if not stream: response['error'] = "Failed to find stream(" + stream_id+")." self.respond(**response) else: for image_id in stream.image_id_lst: image = Image.get_image(image_id) if begin_date <= image.date <= end_date: content = '<img src="'+get_serving_url(image.blob_key, size=100)+'">' marker = {"latitude": image.location.lat, "longitude": image.location.lon, "content":content} markers_lst.append(marker) self.respond(markers=markers_lst, status="success")