def get(self): stream_name = self.request.get("stream_name") email = self.request.get("email") caption = [] displayImages = [] #print stream_name pictures = db.GqlQuery("SELECT * FROM Picture " +"WHERE ANCESTOR IS :1 "+"ORDER BY uploaddate DESC",db.Key.from_path('Stream',stream_name)) stream = Stream.query(Stream.name==stream_name).fetch()[0] if stream.author_name.lower()!= email.split("@",1)[0]: count=CountViews.query(CountViews.name==stream.name,ancestor=ndb.Key('User',stream.author_name)).fetch()[0] count.numbers=count.numbers+1 count.totalviews=count.totalviews+1 count.put() for pic in pictures: url = images.get_serving_url(pic.imgkey) url = url + "=s500" displayImages.append(url) caption.append(pic.caption) #print url dictPassed = {'displayImages':displayImages,'caption':caption,'author':str(stream.author)} #dictPassed = {'displayImages':displayImages,'caption':caption} jsonObj = json.dumps(dictPassed, sort_keys=True,indent=4, separators=(',', ': ')) self.response.write(jsonObj)
def get(self): #self.response.write(users.get_current_user()) stream_name = re.findall('%3D(.*)%3D%3D', self.request.url)[0] user_name = re.findall('%3D%3D(.*)', self.request.url)[0] infos = [] status = (0, 0) index = 0 url = "" #Change!# stream=Stream.query(Stream.name==stream_name, Stream.author_name==user_name).fetch()[0] pictures = db.GqlQuery( "SELECT * FROM Picture " + "WHERE ANCESTOR IS :1 " + "ORDER BY uploaddate DESC", db.Key.from_path('Stream', stream_name)) stream = Stream.query(Stream.name == stream_name).fetch()[0] if (users.get_current_user() and stream.author == users.get_current_user()): status = (1, 1) for picture in pictures: lat = random.random() lng = random.random() infos.append((picture.key(), picture.imgkey, picture.uploaddate, lat, lng, index)) index = index + 1 if (index == 4): index = 0 url = urllib.urlencode({'streamname': stream.name}) else: if (users.get_current_user()): count = CountViews.query(CountViews.name == stream.name, ancestor=ndb.Key( 'User', stream.author_name)).fetch()[0] count.numbers = count.numbers + 1 count.totalviews = count.totalviews + 1 count.put() status = (1, 0) url = urllib.urlencode({'streamname': stream.name}) for picture in pictures: lat = random.random() lng = random.random() infos.append((picture.key(), picture.imgkey, picture.uploaddate, lat, lng, index)) index = index + 1 if (index == 4): index = 0 else: self.redirect(users.create_login_url(self.request.url)) template_values = { "stream_name": stream_name, "infos": infos, "url": url, "status": status } template = JINJA_ENVIRONMENT.get_template("geoview_index.html") self.response.write(template.render(template_values))
def post(self): stream_name = self.request.get("streamname") if len(stream_name) == 0: stream_name = "untitledstream" stream_tags = self.request.get("streamtags").split(',') stream_subscribers = self.request.get("subscribers").split(';') stream_url = self.request.get("url") emailContext = self.request.get("context") emailSubject = "Stream Update Info with UserID: " + users.get_current_user( ).nickname() emailSender = users.get_current_user().email() #Change! # streams=Stream.query(Stream.name==stream_name, Stream.author==users.get_current_user()).fetch() streams = Stream.query(Stream.name == stream_name).fetch() if (len(streams) < 1): stream = Stream() count = CountViews( parent=ndb.Key('User', users.get_current_user().nickname())) pic_num = Count_pic(parent=ndb.Key('Stream', stream_name)) pic_num.numbers = 0 pic_num.put() stream.name = stream_name count.name = stream_name count.numbers = 0 count.totalviews = 0 count.put() stream.numberofpictures = 0 stream.total = 0 stream.author = users.get_current_user() stream.author_name = users.get_current_user().nickname() stream.url = urllib.urlencode({'streamname': stream.name}) stream.guesturl = urllib.urlencode({ 'showmore': stream.name + "==" + users.get_current_user().nickname() }) default_context = "Notice: " + users.get_current_user().nickname( ) + " add a new stream named '" + stream_name + "' and the link to the stream is: " + "http://mini1-test1.appspot.com/" + stream.guesturl + "\n\n" if len(stream_tags) > 0: stream.tag = stream_tags if len(stream_subscribers[0]) > 0: stream.subscribers = stream_subscribers for emailReceiver in stream.subscribers: mail.send_mail(sender=emailSender, to=emailReceiver, subject=emailSubject, body=default_context + emailContext) if len(stream_url) > 0: stream.coverurl = stream_url else: stream.coverurl = "https://pbs.twimg.com/profile_images/3207366683/25547cceacb728c382e49cd34d9e800a.png" stream.put() self.redirect('/management', permanent=False) else: self.redirect('/error', permanent=False)
def get(self): # self.response.write(users.get_current_user()) stream_name = re.findall("%3D(.*)%3D%3D", self.request.url)[0] user_name = re.findall("%3D%3D(.*)", self.request.url)[0] infos = [] status = (0, 0) index = 0 url = "" # Change!# stream=Stream.query(Stream.name==stream_name, Stream.author_name==user_name).fetch()[0] pictures = db.GqlQuery( "SELECT * FROM Picture " + "WHERE ANCESTOR IS :1 " + "ORDER BY uploaddate DESC", db.Key.from_path("Stream", stream_name), ) stream = Stream.query(Stream.name == stream_name).fetch()[0] if users.get_current_user() and stream.author == users.get_current_user(): status = (1, 1) for picture in pictures: print ("index") print index infos.append((picture.key(), picture.imgkey, index)) index = index + 1 if index == 4: index = 0 url = urllib.urlencode({"streamname": stream.name}) else: if users.get_current_user(): count = CountViews.query( CountViews.name == stream.name, ancestor=ndb.Key("User", stream.author_name) ).fetch()[0] count.numbers = count.numbers + 1 count.totalviews = count.totalviews + 1 count.put() status = (1, 0) url = urllib.urlencode({"streamname": stream.name}) for picture in pictures: infos.append((picture.key(), picture.imgkey, index)) index = index + 1 if index == 4: index = 0 else: self.redirect(users.create_login_url(self.request.url)) template_values = { "stream_name": stream_name, "infos": infos, "url": url, "status": status, "user_name": users.get_current_user().nickname(), } template = JINJA_ENVIRONMENT.get_template("showmore_index.html") self.response.write(template.render(template_values))
def get(self): #self.response.write(users.get_current_user()) stream_name=re.findall('%3D(.*)%3D%3D',self.request.url)[0] user_name=re.findall('%3D%3D(.*)',self.request.url)[0] infos = [] status = (0,0) index=0 url = "" #Change!# stream=Stream.query(Stream.name==stream_name, Stream.author_name==user_name).fetch()[0] pictures=db.GqlQuery("SELECT * FROM Picture " +"WHERE ANCESTOR IS :1 "+"ORDER BY uploaddate DESC",db.Key.from_path('Stream',stream_name)) stream = Stream.query(Stream.name==stream_name).fetch()[0] if(users.get_current_user() and stream.author==users.get_current_user()): status = (1,1) for picture in pictures: lat = random.random() lng = random.random() infos.append((picture.key(),picture.imgkey,picture.uploaddate, lat, lng, index)) index=index+1 if(index==4): index = 0 url=urllib.urlencode({'streamname': stream.name}) else: if(users.get_current_user()): count=CountViews.query(CountViews.name==stream.name,ancestor=ndb.Key('User',stream.author_name)).fetch()[0] count.numbers=count.numbers+1 count.totalviews=count.totalviews+1 count.put() status = (1,0) url=urllib.urlencode({'streamname': stream.name}) for picture in pictures: lat = random.random() lng = random.random() infos.append((picture.key(),picture.imgkey,picture.uploaddate, lat, lng,index)) index=index+1 if(index==4): index = 0 else: self.redirect(users.create_login_url(self.request.url)) template_values={"stream_name": stream_name,"infos":infos,"url":url,"status":status} template=JINJA_ENVIRONMENT.get_template("geoview_index.html") self.response.write(template.render(template_values))
def post(self): stream_name=self.request.get("streamname") if len(stream_name)==0: stream_name="untitledstream" stream_tags=self.request.get("streamtags").split(',') stream_subscribers=self.request.get("subscribers").split(';') stream_url=self.request.get("url") emailContext = self.request.get("context") emailSubject = "Stream Update Info with UserID: " + users.get_current_user().nickname() emailSender = users.get_current_user().email() #Change! # streams=Stream.query(Stream.name==stream_name, Stream.author==users.get_current_user()).fetch() streams=Stream.query(Stream.name==stream_name).fetch() if (len(streams)<1): stream=Stream() count=CountViews(parent=ndb.Key('User',users.get_current_user().nickname())) pic_num = Count_pic(parent = ndb.Key('Stream',stream_name)) pic_num.numbers = 0 pic_num.put() stream.name=stream_name count.name=stream_name count.numbers=0 count.totalviews = 0 count.put() stream.numberofpictures=0 stream.total=0 stream.author=users.get_current_user() stream.author_name=users.get_current_user().nickname() stream.url=urllib.urlencode({'streamname': stream.name}) stream.guesturl=urllib.urlencode({'showmore': stream.name+"=="+users.get_current_user().nickname()}) default_context = "Notice: " + users.get_current_user().nickname() + " add a new stream named '" + stream_name +"' and the link to the stream is: "+"http://mini1-test1.appspot.com/"+stream.guesturl+"\n\n" if len(stream_tags) > 0: stream.tag=stream_tags if len(stream_subscribers[0])>0: stream.subscribers=stream_subscribers for emailReceiver in stream.subscribers: mail.send_mail(sender = emailSender, to = emailReceiver, subject = emailSubject, body = default_context + emailContext) if len(stream_url) > 0: stream.coverurl = stream_url else: stream.coverurl = "https://pbs.twimg.com/profile_images/3207366683/25547cceacb728c382e49cd34d9e800a.png" stream.put() self.redirect('/management',permanent=False) else: self.redirect('/error', permanent = False)
def get(self): gl=Global.query(Global.name=="global").fetch() stream_list = [] count_list = [] if len(gl)>0: gl=gl[0] #streams=Stream.query(Stream.author==users.get_current_user()).order(-Stream.views).fetch(3) counts=CountViews.query().order(-CountViews.numbers).fetch(3) for count in counts: stream=Stream.query(Stream.name==count.name).fetch() if (len(stream)>0): stream = stream[0] stream_list.append(stream) count_list.append(count.numbers) gl=Global.query(Global.name=="global").fetch() str = "" if(len(gl)>0): gl=gl[0] fre=gl.limit if fre==0: str="No reports" if fre==1: str="Every 5 Minutes" if fre==12: str="Every 1 hour" if fre==288: str="Every day" user_name = users.get_current_user().nickname() print count_list print stream_list template_values = { 'user_name':user_name, 'str':str, 'count_list':count_list, 'stream_list': stream_list } template = JINJA_ENVIRONMENT.get_template('trending_index.html') self.response.write(template.render(template_values))
def get(self): self.response.write(VIEW_SINGLE_STREAM_TEMPLATE) stream_name=re.findall('%3D(.*)',self.request.url)[0] self.response.write('<h2 >%s</h2>' %stream_name) #Change!# stream=Stream.query(Stream.name==stream_name, Stream.author==users.get_current_user()).fetch()[0] stream=Stream.query(Stream.name==stream_name).fetch()[0] pictures=db.GqlQuery("SELECT *FROM Picture " + "WHERE ANCESTOR IS :1 " +"ORDER BY uploaddate DESC LIMIT 3" , db.Key.from_path('Stream',stream_name)) self.response.write('<table border="1" style="width:100%"><tr>') for picture in pictures: self.response.out.write('<td><img src="img?img_id=%s"></img></td>' %picture.key()) self.response.write('</tr></table>') # url=urllib.urlencode({'showmore': stream.name+"=="+users.get_current_user().nickname()}) # self.response.write('<form action="%s" ,method="post"><input type="submit" value="More Pictures"></form>' %url) #Change! Added if-else# # if stream.author==users.get_current_user(): if users.get_current_user() and stream.author==users.get_current_user(): url=urllib.urlencode({'showmore': stream.name+"=="+users.get_current_user().nickname()}) self.response.write('<form action="%s" ,method="post"><input type="submit" value="More Pictures"></form>' %url) upload_url = blobstore.create_upload_url('/upload') self.response.out.write('<form action="/upload" method="post" enctype="multipart/form-data">') self.response.out.write("""Upload File: <input type="file" name="file" ><br> <input type="submit" name="submit" value="Submit"> </form>""") else: #Change! Added# stream = Stream.query(Stream.name==stream_name).fetch()[0] count=CountViews.query(CountViews.name==stream.name,ancestor=ndb.Key('User',stream.author_name)).fetch()[0] count.numbers=count.numbers+1 count.totalviews=count.totalviews+1 count.put() url=urllib.urlencode({'showmore': stream.name+"=="+users.get_current_user().nickname()}) self.response.write('<form action="%s" ,method="post"><input type="submit" value="More Pictures"></form>' %url) self.response.write('<form action="subscribe" method="post"><input type="submit" value="Subscribe"></form>')
def get(self): stream_name = self.request.get("stream_name") email = self.request.get("email") caption = [] displayImages = [] #print stream_name pictures = db.GqlQuery( "SELECT * FROM Picture " + "WHERE ANCESTOR IS :1 " + "ORDER BY uploaddate DESC", db.Key.from_path('Stream', stream_name)) stream = Stream.query(Stream.name == stream_name).fetch()[0] if stream.author_name.lower() != email.split("@", 1)[0]: count = CountViews.query( CountViews.name == stream.name, ancestor=ndb.Key('User', stream.author_name)).fetch()[0] count.numbers = count.numbers + 1 count.totalviews = count.totalviews + 1 count.put() for pic in pictures: url = images.get_serving_url(pic.imgkey) url = url + "=s500" displayImages.append(url) caption.append(pic.caption) #print url dictPassed = { 'displayImages': displayImages, 'caption': caption, 'author': str(stream.author) } #dictPassed = {'displayImages':displayImages,'caption':caption} jsonObj = json.dumps(dictPassed, sort_keys=True, indent=4, separators=(',', ': ')) self.response.write(jsonObj)
def get(self): self.response.write(TRENDING_TEMPLATE) gl=Global.query(Global.name=="global").fetch() if(len(gl)>0): gl=gl[0] #streams=Stream.query(Stream.author==users.get_current_user()).order(-Stream.views).fetch(3) counts=CountViews.query().order(-CountViews.numbers).fetch(3) self.response.write('<table style = "width:70%">') for count in counts: stream=Stream.query(Stream.name==count.name).fetch() if (len(stream)>0): stream = stream[0] self.response.out.write('<td><div style = "position:relative;"><a href="%s"><img src="%s" ></img><div style = "position: absolute; left:0px; top:0px">%s</div></a></div><div>%s views in the past hour</div></td>' % (stream.url,stream.coverurl,stream.name,count.numbers)) self.response.write('</table>') self.response.write('<form action="/update" method="post">') self.response.write('<input type="radio" name="frequency" value="no">No reports<br>') self.response.write('<input type="radio" name="frequency" value="5m">Every 5 minutes<br>') self.response.write('<input type="radio" name="frequency" value="1h">Every 1 hour<br>') self.response.write('<input type="radio" name="frequency" value="1d">Every day<br>') self.response.write('<input type="submit" value="Update rate"></form>') gl=Global.query(Global.name=="global").fetch() if(len(gl)>0): gl=gl[0] fre=gl.limit if fre==0: str="No reports" if fre==1: str="Every 5 Minutes" if fre==12: str="Every 1 hour" if fre==288: str="Every day" self.response.write("Current Update Frequency: "+ str)
def get(self): print("test!!") dellsts=self.request.get_all("status") if (len(dellsts) > 0): streams=Stream.query(Stream.name.IN(dellsts), Stream.author==users.get_current_user()).fetch() counts=CountViews.query(CountViews.name.IN(dellsts), ancestor=ndb.Key('User', users.get_current_user().nickname())).fetch() for stream in streams: pictures=db.GqlQuery("SELECT * FROM Picture " +"WHERE ANCESTOR IS :1",db.Key.from_path('Stream',stream.name)) for pic in pictures: images.delete_serving_url(pic.imgkey) blobstore.delete(pic.imgkey) db.delete(pictures) pic_count= Count_pic.query(ancestor=ndb.Key('Stream',stream.name)) ndb.delete_multi(ndb.put_multi(pic_count)) #print pic_count ndb.delete_multi(ndb.put_multi(streams)) ndb.delete_multi(ndb.put_multi(counts)) dellsts=self.request.get_all("status1") #self.response.write(len(dellsts)) if (len(dellsts) > 0): streams=Stream.query(Stream.name.IN(dellsts)).fetch() for stream in streams: if(users.get_current_user() and users.get_current_user().nickname() in stream.subscribers): stream.subscribers.remove(users.get_current_user().nickname()) stream.put() picNum_list = [] streams_1=Stream.query(Stream.author==users.get_current_user()).order(-Stream.creattime).fetch() for stream in streams_1: pic_count= Count_pic.query(ancestor=ndb.Key('Stream',stream.name)).fetch()[0] pictures=db.GqlQuery("SELECT * FROM Picture " +"WHERE ANCESTOR IS :1 "+"ORDER BY uploaddate DESC",db.Key.from_path('Stream',stream.name)) # print (stream.name, pic_count.numbers) # picNum_list.append(pic_count.numbers) picNum_list.append(pictures.count()) streams = Stream.query().fetch() streams_2 = [] count_list = [] user_name = users.get_current_user().nickname() # url =users.create_login_url('/') # if(users.get_current_user()): #user_name = users.get_current_user().nickname() url = users.create_logout_url('/') for stream in streams: if(users.get_current_user().email().lower() in stream.subscribers): count=CountViews.query(CountViews.name==stream.name,ancestor=ndb.Key('User',stream.author_name)).fetch()[0] pictures=db.GqlQuery("SELECT * FROM Picture " +"WHERE ANCESTOR IS :1 "+"ORDER BY uploaddate DESC",db.Key.from_path('Stream',stream.name)) stream.numberofpictures = pictures.count() streams_2.append(stream) count_list.append(count.numbers) #else: # self.redirect(url,permanent=False) template_values = { 'user_name':user_name, 'streams_1': streams_1, 'streams_2': streams_2, 'count_list': count_list, 'url': url, "picNum_list":picNum_list } template = JINJA_ENVIRONMENT.get_template('management_index.html') self.response.write(template.render(template_values))
def get(self): #if users.get_current_user(): counts=CountViews.query().fetch() for count in counts: count.numbers=0 count.put()
def get(self): print("test!!") dellsts = self.request.get_all("status") if (len(dellsts) > 0): streams = Stream.query( Stream.name.IN(dellsts), Stream.author == users.get_current_user()).fetch() counts = CountViews.query( CountViews.name.IN(dellsts), ancestor=ndb.Key('User', users.get_current_user().nickname())).fetch() for stream in streams: pictures = db.GqlQuery( "SELECT * FROM Picture " + "WHERE ANCESTOR IS :1", db.Key.from_path('Stream', stream.name)) for pic in pictures: images.delete_serving_url(pic.imgkey) blobstore.delete(pic.imgkey) db.delete(pictures) pic_count = Count_pic.query( ancestor=ndb.Key('Stream', stream.name)) ndb.delete_multi(ndb.put_multi(pic_count)) #print pic_count ndb.delete_multi(ndb.put_multi(streams)) ndb.delete_multi(ndb.put_multi(counts)) dellsts = self.request.get_all("status1") #self.response.write(len(dellsts)) if (len(dellsts) > 0): streams = Stream.query(Stream.name.IN(dellsts)).fetch() for stream in streams: if (users.get_current_user() and users.get_current_user().nickname() in stream.subscribers): stream.subscribers.remove( users.get_current_user().nickname()) stream.put() picNum_list = [] streams_1 = Stream.query(Stream.author == users.get_current_user() ).order(-Stream.creattime).fetch() for stream in streams_1: pic_count = Count_pic.query( ancestor=ndb.Key('Stream', stream.name)).fetch()[0] pictures = db.GqlQuery( "SELECT * FROM Picture " + "WHERE ANCESTOR IS :1 " + "ORDER BY uploaddate DESC", db.Key.from_path('Stream', stream.name)) # print (stream.name, pic_count.numbers) # picNum_list.append(pic_count.numbers) picNum_list.append(pictures.count()) streams = Stream.query().fetch() streams_2 = [] count_list = [] user_name = users.get_current_user().nickname() # url =users.create_login_url('/') # if(users.get_current_user()): #user_name = users.get_current_user().nickname() url = users.create_logout_url('/') for stream in streams: if (users.get_current_user().email() in stream.subscribers): count = CountViews.query(CountViews.name == stream.name, ancestor=ndb.Key( 'User', stream.author_name)).fetch()[0] pictures = db.GqlQuery( "SELECT * FROM Picture " + "WHERE ANCESTOR IS :1 " + "ORDER BY uploaddate DESC", db.Key.from_path('Stream', stream.name)) stream.numberofpictures = pictures.count() streams_2.append(stream) count_list.append(count.numbers) #else: # self.redirect(url,permanent=False) template_values = { 'user_name': user_name, 'streams_1': streams_1, 'streams_2': streams_2, 'count_list': count_list, 'url': url, "picNum_list": picNum_list } template = JINJA_ENVIRONMENT.get_template('management_index.html') self.response.write(template.render(template_values))
def get(self): dellsts = self.request.get_all("status") if len(dellsts) > 0: streams = Stream.query(Stream.name.IN(dellsts), Stream.author == users.get_current_user()).fetch() counts = CountViews.query( CountViews.name.IN(dellsts), ancestor=ndb.Key("User", users.get_current_user().nickname()) ).fetch() for stream in streams: pictures = db.GqlQuery( "SELECT * FROM Picture " + "WHERE ANCESTOR IS :1", db.Key.from_path("Stream", stream.name) ) db.delete(pictures) ndb.delete_multi(ndb.put_multi(streams)) ndb.delete_multi(ndb.put_multi(counts)) dellsts = self.request.get_all("status1") # self.response.write(len(dellsts)) if len(dellsts) > 0: streams = Stream.query(Stream.name.IN(dellsts)).fetch() for stream in streams: if users.get_current_user() and users.get_current_user().nickname() in stream.subscribers: stream.subscribers.remove(users.get_current_user().nickname()) stream.put() self.response.write(users.get_current_user()) self.response.write(MANAGEMENT_PAGE_TEMPLATE) streams = Stream.query(Stream.author == users.get_current_user()).order(-Stream.creattime).fetch() self.response.write('<form action="/management" ,method="post"><table border="1" style="width:100%">') self.response.write("<tr><td>Name</td><td>Last New Picture</td><td>Number of Pictures</td><td>Delete</td></tr>") for stream in streams: self.response.write( '<tr><td><a href="%s">%s</a></td><td>%s</td><td>%s</td><td><input type="checkbox" name="status", value="%s"></td></tr>' % (stream.url, stream.name, stream.lastnewdate, stream.numberofpictures, stream.name) ) self.response.write("</table>") self.response.write('<input type="submit" value="Delete"></form>') self.response.write("<h2>Streams I Subscribe to</h2>") streams = Stream.query().fetch() self.response.write('<form action="/management" ,method="post"><table border="1" style="width:100%">') self.response.write( "<tr><td>Name</td><td>Last New Picture</td><td>Number of Pictures</td><td>Views</td><td>Delete</td></tr>" ) if users.get_current_user(): for stream in streams: if users.get_current_user().nickname() in stream.subscribers: count = CountViews.query( CountViews.name == stream.name, ancestor=ndb.Key("User", stream.author_name) ).fetch()[0] self.response.write( '<tr><td><a href="%s">%s</a></td><td>%s</td><td>%s</td><td>%s</td><td><input type="checkbox" name="status1", value="%s"></td></tr>' % ( stream.guesturl, stream.name, stream.lastnewdate, stream.numberofpictures, count.totalviews, stream.name, ) ) self.response.write("</table>") self.response.write('<input type="submit" value="Delete"></form>') self.response.write("<br><a href=%s>Logout</a>" % users.create_logout_url(self.request.url)) if not users.get_current_user(): self.redirect("/", permanent=False)