def GET(self,id): page=int(web.input().get('page','1')) item=Node.objects(ID=int(id)).first() #todo 分页 or ajax comments=Tweet.objects(Q(SubjectID=int(id))&Q(flag__ne=1)).order_by("-ID") #flag=1 means share next=None if Auth.is_login(): user=User.objects(id=Auth.uid()).first() mycollect=user.nodes_follow if item.ID in mycollect: collected=True else: collected=False else: user=None collected=False if item and item.creatorID: creator=User.objects(ID=item.creatorID).first() else: creator =None datalist=[] for comment in comments: datalist.append((User.objects(ID=comment.AutherID).first(),comment)) if user==creator : editble=True else: editble=False if user and ( user.email=="*****@*****.**" or user.email=="*****@*****.**" ): editble=True return render.item(editble=editble,user=user,creator=creator,item=item,datalist=datalist,collected=collected)
def GET(self,uid): myuid=Auth.uid() page=int(web.input().get("page","1")) thisguy=User.objects(ID=int(uid)).first() if not thisguy: return render.notfound() thisguy.tweet_count=Tweet.objects(AutherID=thisguy.ID).count() counts = thisguy.followings_count,thisguy.followed_count,thisguy.tweet_count #update count if page*20<counts[2]: next=page+1 elif page*20-counts[2]>20 : return web.notfound() else: next=None if Auth.is_login(): me=User.objects(id=Auth.uid()).first() else: me=None if not me: relation=None elif me==thisguy: relation="self" elif thisguy.ID in me.followings: relation="ifollowhim" else: relation=None # do i follow that people? datalist=[] posts=Tweet.objects(AutherID=thisguy.ID).order_by("-ID")[(page-1)*20:page*20] for p in posts: if p.SubjectID>0: if p.flag==1: datalist.append(("share" ,Node.objects(ID=p.SubjectID).first(),p, friendly_time(p.created).decode("utf-8"))) elif p.flag==-1: pass else: datalist.append(("comment" ,Node.objects(ID=p.SubjectID).first(),p, friendly_time(p.created).decode("utf-8"))) elif p.flag==-1: pass else: datalist.append(("say",p,friendly_time(p.created).decode("utf-8"))) return render.user(user=me,thisguy=thisguy,counts=counts,next=next,datalist=datalist,relation=relation)
def GET(self): nodes=Node.objects(score=20).order_by("-ID") if Auth.is_login(): user=User.objects(id=Auth.uid()).first() else: user=None if nodes.count()>20: nodes=nodes[0:20] return render.explore(user=user,nodes=nodes)
def GET(self,tag): page=int(web.input().get('page','1')) tag=tag.encode('utf-8') nodes=Node.objects(tags=tag) count=nodes.count() if int(page)*10<count: next=page+1 else: next=None results=[x for x in nodes] return render.tags(Auth,tag,results,count,next)