Example #1
0
    def get(self, path):
        gdict = self.GET
        path = urllib.unquote(path)
        if path == config.FEED_SRC: #FEED
            self.set_content_type("atom")
            posts = Post.get_feed_post(config.FEED_NUMBER) 
            self.render("feed.xml", {"posts": posts })
            return

        post = Post.get_by_path(path)
        if post:
            p = gdict.get("p", None)
            p = int(p) if p and p.isdigit() else 1

            def post_comment_filter(query):
                query = query.filter("belong =", post)
                if config.COMMENT_NEEDLOGINED:
                    query = query.filter("hashcheck =", True)
                query = query.order("date_created")
                return query

            post_comments = Comment.fetch_page(p, config.COMMENT_PAGE_COUNT, func=post_comment_filter, realtime_count=True)
            context = {"post": post,
                       "post_comments": post_comments, } 
            self.render("single.html", context)
            return 
Example #2
0
 def get(self, instruct=None):
     if instruct == "view_counter":
         view = memcache.get("views")
         if view != None:
             for path,v in view.items():
                 post = Post.get_by_path(path)
                 if post:
                     post.views += v
                     post.put()
             memcache.delete("views", namespace="Front")
Example #3
0
def gender_url(url, filter_func=lambda url: Post.get_by_path(url)):
    p = filter_func(url) 
    if not p:
        return url
    genter = genid(1)
    if url.find("/") != -1:
        if url.split("/")[-1].find(".") != -1:
            ori, ext = url[:url.rfind(".")], url[url.rfind("."):]
        else:
            ori, ext = url[:url.rfind("/")], url[url.rfind("/"):]
    elif url.find(".") != -1:
        ori, ext = url[:url.rfind(".")], url[url.rfind("."):]
    else:
        ori, ext = url, ""

    while(filter_func(url)):
        url = "%s%d%s" % (ori, genter.next(), ext)
    return url