def get(self): user = users.get_current_user() print 'user is ', user subscribed_streams = [] qry = StreamInfo.query_stream(ndb.Key('User', str(user))).fetch() if len(qry) > 0: for key in qry[0].subscribed: subscribed_streams.append(key.get()) print subscribed_streams template_values = { 'nav_links': USER_NAV_LINKS, 'path': os.path.basename(self.request.path).capitalize(), 'user_id': users.get_current_user(), 'user_streams': Stream.query(Stream.owner == str(user)).fetch(), 'subscribed_streams': subscribed_streams, 'usr': user, } # all_streams = Stream.query(Stream.stream_id != '').fetch() # for s in all_streams: # print s.stream_id # # print 'length of user_stream', len(template_values['user_streams']) # print 'length of subscribed streams', len(template_values['subscribed_streams']) template = JINJA_ENVIRONMENT.get_template('manage.html') self.response.write(template.render(template_values)) print "in manage page, "
def get(self): user = users.get_current_user() stream_id = self.request.get('stream_id') print 'stream id is', stream_id info = {'stream_id': self.request.get('stream_id')} info = urllib.urlencode(info) upload_url = blobstore.create_upload_url('/upload_image?'+info) # we should use the actual user user_streams = Stream.query(Stream.stream_id == stream_id).fetch() blob_key_list = [] image_url = [""] * 3 stream = user_streams[0] owner = stream.owner print 'stream id is', stream.stream_id if owner != str(user): stream.views += 1 while len(stream.view_queue) > 0 and (datetime.now() - stream.view_queue[0]).seconds > 3600: del stream.view_queue[0] stream.view_queue.append(datetime.now()) stream.put() blob_key_list = stream.blob_key #get blob_key_list should be after stream.put() counter = 0 has_image = True if len(blob_key_list) > 0: for blob_key in blob_key_list: image_url[counter] = images.get_serving_url(blob_key) counter += 1 if counter == 3: break; #calculate hasSub qry = StreamInfo.query_stream(ndb.Key('User', str(user))).fetch() has_sub = False if len(qry) == 0: has_sub = False else: for key in qry[0].subscribed: if key.get().stream_id == stream_id: has_sub = True break template_values = { 'nav_links': USER_NAV_LINKS, 'path': os.path.basename(self.request.path).capitalize(), 'owner': owner, #the owner of the stream 'user': str(users.get_current_user()), #current user 'upload_url': upload_url, 'image_url': image_url, 'has_image': has_image, 'hasSub': has_sub, 'stream_id': stream_id, } print "owner is ", template_values['owner'] print "user is ", template_values['user'] template = JINJA_ENVIRONMENT.get_template('viewstream.html') self.response.write(template.render(template_values))
def get(self): user = users.get_current_user() stream_id = self.request.get("stream_id") print "stream id is", stream_id info = {"stream_id": self.request.get("stream_id")} info = urllib.urlencode(info) upload_url = blobstore.create_upload_url("/upload_image?" + info) # we should use the actual user user_streams = Stream.query(Stream.stream_id == stream_id).fetch() blob_key_list = [] image_url = [""] * 3 stream = user_streams[0] owner = stream.owner print "stream id is", stream.stream_id if owner != str(user): stream.views += 1 while len(stream.view_queue) > 0 and (datetime.now() - stream.view_queue[0]).seconds > 3600: del stream.view_queue[0] stream.view_queue.append(datetime.now()) stream.put() blob_key_list = stream.blob_key # get blob_key_list should be after stream.put() counter = 0 has_image = True if len(blob_key_list) > 0: for blob_key in blob_key_list: image_url[counter] = images.get_serving_url(blob_key) counter += 1 if counter == 3: break # calculate hasSub qry = StreamInfo.query_stream(ndb.Key("User", str(user))).fetch() has_sub = False if len(qry) == 0: has_sub = False else: for key in qry[0].subscribed: if (not key) and key.get().stream_id == stream_id: has_sub = True break template_values = { "nav_links": USER_NAV_LINKS, "path": os.path.basename(self.request.path).capitalize(), "owner": owner, # the owner of the stream "user": str(users.get_current_user()), # current user "upload_url": upload_url, "image_url": image_url, "has_image": has_image, "hasSub": has_sub, "stream_id": stream_id, } print "owner is ", template_values["owner"] print "user is ", template_values["user"] template = JINJA_ENVIRONMENT.get_template("viewstream.html") self.response.write(template.render(template_values))
def get(self): user = users.get_current_user() stream_id = self.request.get('stream_id') print 'stream id is', stream_id info = {'stream_id': self.request.get('stream_id')} info = urllib.urlencode(info) # we should use the actual user user_streams = Stream.query(Stream.stream_id == stream_id).fetch() stream = user_streams[0] owner = stream.owner print 'stream id is', stream.stream_id if owner != str(user): stream.views += 1 stream.view_queue.append(datetime.now()) stream.put() has_image = True image_url = [] image_query = db.GqlQuery("SELECT *FROM Image WHERE ANCESTOR IS :1 ORDER BY upload_date DESC", db.Key.from_path('Stream', stream.stream_id)) # for image in image_query[0: len(stream.image_list)]: for image in image_query[0:stream.num_images]: d = dict() d["url"] = "image?image_id=" + str(image.key()) d["lat"] = str(image.geo_loc.lat) d["long"] = str(image.geo_loc.lon) image_url.append(d) #calculate hasSub qry = StreamInfo.query_stream(ndb.Key('User', str(user))).fetch() has_sub = False if len(qry) == 0: has_sub = False else: for key in qry[0].subscribed: if key.get().stream_id == stream_id: has_sub = True break template_values = { 'nav_links': USER_NAV_LINKS, 'path': os.path.basename(self.request.path).capitalize(), 'owner': owner, #the owner of the stream 'user': str(users.get_current_user()), #current user 'image_url': image_url, 'has_image': has_image, 'hasSub': has_sub, 'stream_id': stream_id, } print "owner is ", template_values['owner'] print "user is ", template_values['user'] template = JINJA_ENVIRONMENT.get_template('viewMoreWithMap.html') self.response.write(template.render(template_values))
def get(self): user = users.get_current_user() stream_id = self.request.get('stream_id') print 'stream id is', stream_id info = {'stream_id': self.request.get('stream_id')} info = urllib.urlencode(info) # we should use the actual user user_streams = Stream.query(Stream.stream_id == stream_id).fetch() stream = user_streams[0] owner = stream.owner print 'stream id is', stream.stream_id if owner != str(user): stream.views += 1 stream.view_queue.append(datetime.now()) stream.put() has_image = True image_url = [] image_query = db.GqlQuery( "SELECT *FROM Image WHERE ANCESTOR IS :1 ORDER BY upload_date DESC", db.Key.from_path('Stream', stream.stream_id)) # for image in image_query[0: len(stream.image_list)]: for image in image_query[0:stream.num_images]: d = dict() d["url"] = "image?image_id=" + str(image.key()) d["lat"] = str(image.geo_loc.lat) d["long"] = str(image.geo_loc.lon) image_url.append(d) #calculate hasSub qry = StreamInfo.query_stream(ndb.Key('User', str(user))).fetch() has_sub = False if len(qry) == 0: has_sub = False else: for key in qry[0].subscribed: if key.get().stream_id == stream_id: has_sub = True break template_values = { 'nav_links': USER_NAV_LINKS, 'path': os.path.basename(self.request.path).capitalize(), 'owner': owner, #the owner of the stream 'user': str(users.get_current_user()), #current user 'image_url': image_url, 'has_image': has_image, 'hasSub': has_sub, 'stream_id': stream_id, } print "owner is ", template_values['owner'] print "user is ", template_values['user'] template = JINJA_ENVIRONMENT.get_template('viewMoreWithMap.html') self.response.write(template.render(template_values))
def post(self): print "in unsubscribe handler" data = json.loads(self.request.body) user = data["user"] ancestor_key = ndb.Key("User", user) stream_info = StreamInfo.query_stream(ancestor_key).fetch() print stream_info[0].subscribed for stream_id in data["stream_id"]: for key in stream_info[0].subscribed: print key.get().stream_id, stream_id if key.get().stream_id == stream_id: stream_info[0].subscribed.remove(key) stream_info[0].put() # remember to put it back in ndbstore break self.redirect("/manage")
def post(self): print 'in unsubscribe handler' data = json.loads(self.request.body) user = data['user'] ancestor_key = ndb.Key('User', user) stream_info = StreamInfo.query_stream(ancestor_key).fetch() print stream_info[0].subscribed print data['stream_id'] for stream_id in data['stream_id']: for key in stream_info[0].subscribed: print "here is ", key.get().stream_id, stream_id if key.get().stream_id == stream_id: stream_info[0].subscribed.remove(key) stream_info[0].put() #remember to put it back in ndbstore break self.redirect('/manage')
def get(self): user = self.request.get('user_id') stream_id = self.request.get('stream_id') print 'stream id is', stream_id # we should use the actual user user_streams = Stream.query(Stream.stream_id == stream_id).fetch() stream = user_streams[0] owner = stream.owner print 'stream id is', stream.stream_id my_own = True if owner != str(user): my_own = False stream.views += 1 stream.view_queue.append(datetime.now()) stream.put() image_url = [] image_query = db.GqlQuery("SELECT *FROM Image WHERE ANCESTOR IS :1 ORDER BY upload_date DESC", db.Key.from_path('Stream', stream.stream_id)) # for image in image_query[0: len(stream.image_list)]: for image in image_query[0:stream.num_images]: d = dict() d["url"] = SERVICES_URL +"image?image_id=" + str(image.key()) d["lat"] = str(image.geo_loc.lat) d["long"] = str(image.geo_loc.lon) image_url.append(d) #calculate hasSub qry = StreamInfo.query_stream(ndb.Key('User', str(user))).fetch() has_sub = False if len(qry) == 0: has_sub = False else: for key in qry[0].subscribed: if key.get().stream_id == stream_id: has_sub = True break dict_passed = {'displayImages': image_url, 'myOwn': my_own, 'hasSub': has_sub} json_obj = json.dumps(dict_passed, sort_keys=True, indent=4, separators=(',', ': ')) self.response.write(json_obj)
def post(self): data = json.loads(self.request.body) user = data['user'] stream_id = data['stream_id'] print stream_id, 'hello' qry = Stream.query(Stream.stream_id == stream_id).fetch() print 'lenght of qry is ', len(qry) ancestor_key = ndb.Key('User', user) stream_info = StreamInfo.query_stream(ancestor_key).fetch() if len(stream_info) == 0: print 'create a new stream_info' new_stream_info = StreamInfo(parent=ndb.Key('User', user)) new_stream_info.subscribed.insert(0, qry[0].key) new_stream_info.put() else: new_stream_info = stream_info[0] new_stream_info.subscribed.insert(0, qry[0].key) new_stream_info.put() print 'finished' self.redirect('/manage')
def post(self): data = json.loads(self.request.body) user = data["user"] stream_id = data["stream_id"] print stream_id, "hello" qry = Stream.query(Stream.stream_id == stream_id).fetch() print "lenght of qry is ", len(qry) ancestor_key = ndb.Key("User", user) stream_info = StreamInfo.query_stream(ancestor_key).fetch() if len(stream_info) == 0: print "create a new stream_info" new_stream_info = StreamInfo(parent=ndb.Key("User", user)) new_stream_info.subscribed.insert(0, qry[0].key) new_stream_info.put() else: new_stream_info = stream_info[0] new_stream_info.subscribed.insert(0, qry[0].key) new_stream_info.put() print "finished" self.redirect("/manage")
def get(self): user = users.get_current_user() stream_id = self.request.get('stream_id') print 'stream id is', stream_id info = {'stream_id': self.request.get('stream_id')} info = urllib.urlencode(info) # we should use the actual user user_streams = Stream.query(Stream.stream_id == stream_id).fetch() image_url = [""] * 3 hidden_image = [] stream = user_streams[0] owner = stream.owner print 'stream id is', stream.stream_id if owner != str(user): stream.views += 1 while len(stream.view_queue) > 0 and ( datetime.now() - stream.view_queue[0]).seconds > 3600: del stream.view_queue[0] stream.view_queue.append(datetime.now()) stream.put() #get first three pictures counter = 0 has_image = True has_hidden = len(hidden_image) > 0 image_query = db.GqlQuery( "SELECT *FROM Image WHERE ANCESTOR IS :1 ORDER BY upload_date DESC", db.Key.from_path('Stream', stream.stream_id)) logging.debug("type of gqlquery is %s", type(image_query)) maxdate = None mindate = None for image in image_query[0:stream.num_images]: d = dict() d["url"] = "image?image_id=" + str(image.key()) d["lat"] = str(image.geo_loc.lat) d["long"] = str(image.geo_loc.lon) date = str.split(str(image.upload_date)) dateint = int(date[0].replace("-", "")) d["time"] = dateint if maxdate == None or dateint > maxdate: maxdate = dateint if mindate == None or dateint < mindate: mindate = dateint if counter < 3: image_url[counter] = d else: hidden_image.append(d) counter += 1 #calculate hasSub qry = StreamInfo.query_stream(ndb.Key('User', str(user))).fetch() has_sub = False if len(qry) == 0: has_sub = False else: for key in qry[0].subscribed: if key.get().stream_id == stream_id: has_sub = True break upload_url = '' template_values = { 'nav_links': USER_NAV_LINKS, 'path': os.path.basename(self.request.path).capitalize(), 'owner': owner, #the owner of the stream 'user': str(users.get_current_user()), #current user 'upload_url': upload_url, 'image_url': image_url, 'hidden_image': hidden_image, 'has_image': has_image, 'hasSub': has_sub, 'stream_id': stream_id, 'has_hidden': has_hidden, 'maxdate': maxdate, 'mindate': mindate } print "owner is ", template_values['owner'] print "user is ", template_values['user'] template = JINJA_ENVIRONMENT.get_template('viewstream.html') self.response.write(template.render(template_values))
def get(self): user = users.get_current_user() stream_id = self.request.get('stream_id') print 'stream id is', stream_id info = {'stream_id': self.request.get('stream_id')} info = urllib.urlencode(info) # we should use the actual user user_streams = Stream.query(Stream.stream_id == stream_id).fetch() image_url = [""] * 3 stream = user_streams[0] owner = stream.owner print 'stream id is', stream.stream_id if owner != str(user): stream.views += 1 while len(stream.view_queue) > 0 and ( datetime.now() - stream.view_queue[0]).seconds > 3600: del stream.view_queue[0] stream.view_queue.append(datetime.now()) stream.put() #get first three pictures counter = 0 has_image = True image_query = db.GqlQuery( "SELECT *FROM Image WHERE ANCESTOR IS :1 ORDER BY upload_date DESC", db.Key.from_path('Stream', stream.stream_id)) print "type of gqlquery", type(image_query) for image in image_query[0:stream.num_images]: image_url[counter] = "image?image_id=" + str(image.key()) counter += 1 if counter == 3: break print "image url is", image_url #calculate hasSub qry = StreamInfo.query_stream(ndb.Key('User', str(user))).fetch() has_sub = False if len(qry) == 0: has_sub = False else: for key in qry[0].subscribed: if key.get().stream_id == stream_id: has_sub = True break upload_url = '' template_values = { 'nav_links': USER_NAV_LINKS, 'path': os.path.basename(self.request.path).capitalize(), 'owner': owner, #the owner of the stream 'user': str(users.get_current_user()), #current user 'upload_url': upload_url, 'image_url': image_url, 'has_image': has_image, 'hasSub': has_sub, 'stream_id': stream_id, } print "owner is ", template_values['owner'] print "user is ", template_values['user'] template = JINJA_ENVIRONMENT.get_template('viewstream.html') self.response.write(template.render(template_values))
def get(self): user = users.get_current_user() stream_id = self.request.get('stream_id') print 'stream id is', stream_id info = {'stream_id': self.request.get('stream_id')} info = urllib.urlencode(info) # we should use the actual user user_streams = Stream.query(Stream.stream_id == stream_id).fetch() image_url = [""]*3 hidden_image = [] stream = user_streams[0] owner = stream.owner print 'stream id is', stream.stream_id if owner != str(user): stream.views += 1 while len(stream.view_queue) > 0 and (datetime.now() - stream.view_queue[0]).seconds > 3600: del stream.view_queue[0] stream.view_queue.append(datetime.now()) stream.put() #get first three pictures counter = 0 has_image = True has_hidden = len(hidden_image)>0 image_query = db.GqlQuery("SELECT *FROM Image WHERE ANCESTOR IS :1 ORDER BY upload_date DESC", db.Key.from_path('Stream', stream.stream_id)) logging.debug("type of gqlquery is %s", type(image_query)) maxdate = None mindate = None for image in image_query[0:stream.num_images]: d = dict() d["url"] = "image?image_id=" + str(image.key()) d["lat"] = str(image.geo_loc.lat) d["long"] = str(image.geo_loc.lon) date = str.split(str(image.upload_date)) dateint = int(date[0].replace("-","")) d["time"] = dateint if maxdate == None or dateint > maxdate: maxdate = dateint if mindate==None or dateint < mindate: mindate = dateint if counter < 3: image_url[counter] = d else: hidden_image.append(d) counter += 1 #calculate hasSub qry = StreamInfo.query_stream(ndb.Key('User', str(user))).fetch() has_sub = False if len(qry) == 0: has_sub = False else: for key in qry[0].subscribed: if key.get().stream_id == stream_id: has_sub = True break upload_url = '' template_values = { 'nav_links': USER_NAV_LINKS, 'path': os.path.basename(self.request.path).capitalize(), 'owner': owner, #the owner of the stream 'user': str(users.get_current_user()), #current user 'upload_url': upload_url, 'image_url': image_url, 'hidden_image':hidden_image, 'has_image': has_image, 'hasSub': has_sub, 'stream_id': stream_id, 'has_hidden':has_hidden, 'maxdate':maxdate, 'mindate':mindate } print "owner is ", template_values['owner'] print "user is ", template_values['user'] template = JINJA_ENVIRONMENT.get_template('viewstream.html') self.response.write(template.render(template_values))
def get(self): user = users.get_current_user() stream_id = self.request.get('stream_id') print 'stream id is', stream_id info = {'stream_id': self.request.get('stream_id')} info = urllib.urlencode(info) # we should use the actual user user_streams = Stream.query(Stream.stream_id == stream_id).fetch() image_url = [""] * 3 stream = user_streams[0] owner = stream.owner print 'stream id is', stream.stream_id if owner != str(user): stream.views += 1 while len(stream.view_queue) > 0 and (datetime.now() - stream.view_queue[0]).seconds > 3600: del stream.view_queue[0] stream.view_queue.append(datetime.now()) stream.put() #get first three pictures counter = 0 has_image = True image_query = db.GqlQuery("SELECT *FROM Image WHERE ANCESTOR IS :1 ORDER BY upload_date DESC", db.Key.from_path('Stream', stream.stream_id)) print "type of gqlquery", type(image_query) for image in image_query[0:stream.num_images]: image_url[counter] = "image?image_id=" + str(image.key()) counter += 1 if counter == 3: break print "image url is", image_url #calculate hasSub qry = StreamInfo.query_stream(ndb.Key('User', str(user))).fetch() has_sub = False if len(qry) == 0: has_sub = False else: for key in qry[0].subscribed: if key.get().stream_id == stream_id: has_sub = True break upload_url = '' template_values = { 'nav_links': USER_NAV_LINKS, 'path': os.path.basename(self.request.path).capitalize(), 'owner': owner, #the owner of the stream 'user': str(users.get_current_user()), #current user 'upload_url': upload_url, 'image_url': image_url, 'has_image': has_image, 'hasSub': has_sub, 'stream_id': stream_id, } print "owner is ", template_values['owner'] print "user is ", template_values['user'] template = JINJA_ENVIRONMENT.get_template('viewstream.html') self.response.write(template.render(template_values))