예제 #1
0
    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)
예제 #2
0
    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))
예제 #3
0
    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)
예제 #4
0
    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))
예제 #5
0
    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))
예제 #6
0
    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)
예제 #7
0
    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))
예제 #8
0
    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>')
예제 #9
0
    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)
예제 #10
0
    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)
예제 #11
0
    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))
예제 #12
0
 def get(self):
     #if users.get_current_user():
     counts=CountViews.query().fetch()
     for count in counts:
         count.numbers=0
         count.put()
예제 #13
0
    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))
예제 #14
0
    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)
예제 #15
0
 def get(self):
     #if users.get_current_user():
     counts=CountViews.query().fetch()
     for count in counts:
         count.numbers=0
         count.put()