コード例 #1
0
ファイル: views.py プロジェクト: benmao/xfox
 def get(self,slug,key,p="1"):
     dis = get_or_404(Discussion.get_discussion_by_key,slug,key)
     p = int(p)
     
     #check ACL
     check_roles(self,dis.role)
     
     #handler visit log
     if not self.user is None:
         key = "%s%s" %(self.user.name_lower,self.p)
         logs = memcache.get(":visitlogs:")
         if logs is None:
             logs = set([])
         logs.add(key)
         memcache.set(":visitlogs:",logs,3600)
     
     self.template_value['f_tag']={'key':dis.tag_slug,'title':dis.tag_title,'show':'G' in dis.role,'post':True}
     self.template_value['disviews']=ShardCount.get_increment_count("disviews:"+key,"disviews")
     self.template_value['dis']=dis
     bookmark = Bookmark.get_bookmark(self.user,dis) if self.user else None
     self.template_value['bookmark'] = bookmark
     
     #comment page
     comments = PagedQuery(Comment.get_by_dis(dis),self.setting.comment_pagesize)
     temp = comments.fetch_page(p)
     self.template_value['prev']= p-1 if p>1 else None
     self.template_value['next']= p+1 if  len(temp) == self.setting.comment_pagesize else None
     self.template_value['comments'] = temp
     self.template_value['p']=p
     self.render("dis.html")
コード例 #2
0
ファイル: main.py プロジェクト: v998/sa3album
 def get(self,key_name):
     img = get_or_404(Image.get_by_key_name_with_cache,key_name)
     w = int(self.request.get("w","0"))
     h = int(self.request.get("h","0"))
     mime = 'image/jpeg' 
     self.response.headers['Content-Type'] = mime
     self.response.out.write(resize(img.body,(w,h)))
コード例 #3
0
ファイル: views.py プロジェクト: benmao/xfox
 def get(self,slug):
     p = int(self.request.get("p","1"))
     tag = get_or_404(Tag.get_tag_by_slug,slug)
     #check ACL
     check_roles(self,tag.role)
     self.p = p
     get_cell(tag.tag_type).tag_list(self,tag)
コード例 #4
0
ファイル: main.py プロジェクト: v998/sa3album
 def get(self,key_name):
     album = get_or_404(Album.get_by_key_name,key_name)
     imgs = Image.all().filter('album =',album).order('-created').fetch(10)
     self.template_value['imgs']=imgs
     self.template_value['lastupdated'] = imgs[0].created if len(imgs) >0 else datetime.datetime.now()
     self.response.headers['Content-Type'] = "application/atom+xml"
     self.response.out.write(self.get_render("rss.xml"))
コード例 #5
0
ファイル: main.py プロジェクト: v998/sa3album
 def get(self,size,key_name):
     referer = self.request.headers.get("Referer")
     if  self.settings.is_anti_leech and referer is not None and (not check_referer(self,referer)):
         #將圖片替換為禁止盜鏈的圖片
         key_name = self.settings.anti_leech_img
     #handler If-None-Match
     if size =='s':
         w,h = 120,120
     else:
         w = int(self.request.get("w","0"))
         h = int(self.request.get("h","0"))
     
     key="%s:%s:%s" % (w,h,key_name)
     if_none_match = self.request.headers.get("If-None-Match")
     if if_none_match and if_none_match ==key:
         return self.error(304)
     img = get_or_404(Image.get_by_key_name_with_cache,key_name)
     img.view_count+=1
     img.put()
     mime = str(img.mime) if w ==0 and h==0 else "image/jpeg"
     bf = img.get_resize_img(w,h)
     logging.info(len(bf))
     self.response.headers['Content-Type'] = mime
     self.response.headers['ETag']=key
     self.response.headers['Cache-Control']="max-age=315360000"
     self.response.headers['Last-Modified']=format_date(img.created)
     self.response.out.write(bf)
コード例 #6
0
 def get(self):
     key = self.request.get('key')
     album = get_or_404(Album.get, key)
     imgs = Image.all().filter('album =', album)
     for img in imgs:
         img.delete()
     album.delete()
     self.redirect("/a/album/")
コード例 #7
0
ファイル: views.py プロジェクト: benmao/xfox
 def post(self,slug):
     tag = get_or_404(Tag.get_tag_by_slug,slug)
     #check ACL
     check_roles(self,tag.role)
     check_roles(self,tag.add_role)
     
     self.m = 'post'
     get_cell(tag.tag_type).add(self,tag)
コード例 #8
0
ファイル: views.py プロジェクト: melice/forumx
    def get(self, slug):
        tag = get_or_404(Tag.get_tag_by_slug, slug)
        # check ACL
        check_roles(self, tag.role)
        check_roles(self, tag.add_role)  # addrole

        self.m = "get"
        get_cell(tag.tag_type).add(self, tag)
コード例 #9
0
ファイル: views.py プロジェクト: benmao/xfox
 def get(self,slug,key):
     dis = get_or_404(Discussion.get_discussion_by_key,slug,key)
     #check ACL
     check_roles(self,dis.role)
     
     if dis.user_name != self.user.name :
         return self.error(403) #shoud be 403 :)
     
     self.m = 'get'
     get_cell(dis.tag.tag_type).edit(self,dis)
コード例 #10
0
ファイル: views.py プロジェクト: benmao/xfox
 def get(self,key):
     tag = get_or_404(Tag.get_by_key_name,key)
     
     #check feed ACL
     if not check_roles_feed(self,tag.role):
         return self.error(403)
 
     diss = Discussion.get_feed_by_tag(tag)
     self.template_value['diss']=diss
     self.template_value['lastupdated']= diss[0].created if len(diss)>0 else datetime.datetime.now()
     self.render('rss.xml')
コード例 #11
0
ファイル: main.py プロジェクト: v998/sa3album
 def get(self,key_name):
     p = int(self.request.get('p','1'))
     album = get_or_404(Album.get_by_key_name,key_name)
     self.template_value['album']=album
     PAGESIZE = 500 if self.settings.theme <> 'default' else 24
     imgs = PagedQuery(Image.all().filter('album = ',album),PAGESIZE)
     temp = imgs.fetch_page(p)
     self.template_value['prev']=p-1 if p>1 else None
     self.template_value['next'] = p +1 if len(temp) == PAGESIZE else None
     self.template_value['imgs']  = temp
     self.template_value['ps'] = range(1,imgs.page_count()+1)
     self.template_value['current_p'] = p
     self.render('album.html')
コード例 #12
0
    def post(self):
        key = self.request.get("key")
        name = self.request.get("name")
        name = name.strip()
        if len(name) == 0:
            self.template_value['error'] = True
            self.template_value['name'] = name
            return self.render('album_add.html')

        album = get_or_404(Album.get, key)
        album.name = name
        album.put()
        self.redirect("/a/album/")
コード例 #13
0
 def get(self, key_name):
     album = get_or_404(Album.get_by_key_name, key_name)
     p = int(self.request.get("p", "1"))
     imgs = PagedQuery(
         Image.all().filter("album =", album).order('-created'), PAGESIZE)
     temp = imgs.fetch_page(p)
     self.template_value['album'] = album
     self.template_value['prev'] = p - 1 if p > 1 else None
     self.template_value['next'] = p + 1 if len(temp) == PAGESIZE else None
     self.template_value['imgs'] = temp
     self.template_value['ps'] = range(1, imgs.page_count() + 1)
     self.template_value['current_p'] = p
     self.render('album_manage.html')
コード例 #14
0
ファイル: views.py プロジェクト: melice/forumx
    def get(self, slug, key, p="1"):
        dis = get_or_404(Discussion.get_discussion_by_key, slug, key)
        p = int(p)

        # check ACL
        check_roles(self, dis.role)

        # handler visit log
        if not self.user is None:
            key = "%s%s" % (self.user.name_lower, self.p)
            logs = memcache.get(":visitlogs:")
            if logs is None:
                logs = set([])
            logs.add(key)
            memcache.set(":visitlogs:", logs, 3600)

        self.template_value["f_tag"] = {
            "key": dis.tag_slug,
            "title": dis.tag_title,
            "show": "G" in dis.role,
            "post": True,
        }
        # self.template_value['disviews']=
        dis.count_view = ShardCount.get_increment_count("disviews:" + key, "disviews")
        dis.put()
        self.template_value["dis"] = dis
        bookmark = Bookmark.get_bookmark(self.user, dis) if self.user else None
        self.template_value["bookmark"] = bookmark

        # comment page
        comments = PagedQuery(Comment.get_by_dis(dis), self.setting.comment_pagesize)
        temp = comments.fetch_page(p)
        self.template_value["prev"] = p - 1 if p > 1 else None
        self.template_value["next"] = p + 1 if len(temp) == self.setting.comment_pagesize else None
        self.template_value["comments"] = temp
        self.template_value["p"] = p
        self.render("dis.html")
コード例 #15
0
ファイル: views.py プロジェクト: benmao/xfox
 def post(self):
     key = self.request.get("key")
     content = self.request.get("content")
     dis = get_or_404(Discussion.get_by_key_name,key)
     comment =Comment.new(self.user,dis,content)
     self.redirect(comment.url)
コード例 #16
0
ファイル: main.py プロジェクト: v998/sa3album
 def get(self,key_name):
     img = get_or_404(Image.get_by_key_name_with_cache,key_name)
     self.response.headers['Content-Type'] = "application/octet-stream; CHARSET=utf8"
     self.response.headers['Content-Disposition']='attachment; filename=%s' % img.name.encode('utf-8')
     self.response.out.write(img.body)
コード例 #17
0
 def get(self):
     key_name = self.request.get("key")
     img = get_or_404(Image.get_by_key_name, key_name)
     img.delete()
     self.redirect(img.album.m_url)
コード例 #18
0
 def post(self):
     img = get_or_404(Image.get_by_key_name, self.request.get("key"))
     img.delete()
     self.response.out.write("ok")
コード例 #19
0
 def get(self):
     key = self.request.get("key")
     self.template_value['key'] = key
     self.template_value['album'] = get_or_404(Album.get, key)
     self.render('album_edit.html')
コード例 #20
0
ファイル: views.py プロジェクト: benmao/xfox
 def get(self,name):
     user = get_or_404(User.get_user_by_name,name)
     diss = Discussion.get_recent_dis(user)
     self.template_value['diss']=diss
     self.template_value['lastupdated']= diss[0].created if len(diss)>0 else datetime.datetime.now()
     self.render('rss.xml')
コード例 #21
0
 def post(self):
     album = get_or_404(Album.get_by_key_name, self.request.get("album"))
     img = get_or_404(Image.get_by_key_name, self.request.get("img"))
     album.cover_url = img.s
     album.put()
     self.response.out.write(img.name)
コード例 #22
0
ファイル: main.py プロジェクト: v998/sa3album
 def get(self,key_name):
     self.template_value['img']=get_or_404(Image.get_by_key_name,key_name)
     self.render('img.html')
コード例 #23
0
 def get(self):
     album = get_or_404(Album.get_by_key_name, self.request.get("album"))
     img = get_or_404(Image.get_by_key_name, self.request.get("img"))
     album.cover_url = img.s
     album.put()
     self.redirect("/a/album/")