コード例 #1
0
ファイル: Wiki.py プロジェクト: lipghee/Udacity
    def memcached_put(self):
        # overwrite "current" memcached version without version name in key (one for each name)
        utils.age_set(MEMCACHED_PREFIX + self.name, self)

        # set value for memcached key with version
        utils.age_set(MEMCACHED_PREFIX + self.name + str(self.key().id()),
                      self)
コード例 #2
0
ファイル: Post.py プロジェクト: cbeltranv/Udacity
 def get_posts(cls, update = False):
     q = Post.all().order('-created').fetch(limit = 10)
     mc_key = 'BLOGS'
 
     posts, age = utils.age_get(mc_key)
     if update or posts is None:
         posts = list(q)
         utils.age_set(mc_key, posts)
     
     return posts, age
コード例 #3
0
ファイル: Post.py プロジェクト: lipghee/Udacity
    def get_posts(cls, update=False):
        q = Post.all().order('-created').fetch(limit=10)
        mc_key = 'BLOGS'

        posts, age = utils.age_get(mc_key)
        if update or posts is None:
            posts = list(q)
            utils.age_set(mc_key, posts)

        return posts, age
コード例 #4
0
ファイル: Wiki.py プロジェクト: maddenwg/Udacity
    def get_all_versions(cls, page_name, update=False):
        # q = Wiki.all().order('-created').fetch(limit = 10)
        # q = Wiki.get_by_key_name(page_name, parent = utils.wiki_key()).order('-created')
        mc_key = page_name + "_VERSIONS"

        wikis, age = utils.age_get(mc_key)
        if update or wikis is None:
            # wikis = list(q)
            q = Wiki.gql("WHERE name = :name ORDER BY created DESC", name=page_name)
            wikis = q.fetch(limit=None)

            utils.age_set(mc_key, wikis)

        return wikis
コード例 #5
0
ファイル: Wiki.py プロジェクト: lipghee/Udacity
    def get_all_versions(cls, page_name, update=False):
        # q = Wiki.all().order('-created').fetch(limit = 10)
        # q = Wiki.get_by_key_name(page_name, parent = utils.wiki_key()).order('-created')
        mc_key = page_name + '_VERSIONS'

        wikis, age = utils.age_get(mc_key)
        if update or wikis is None:
            # wikis = list(q)
            q = Wiki.gql("WHERE name = :name ORDER BY created DESC",
                         name=page_name)
            wikis = q.fetch(limit=None)

            utils.age_set(mc_key, wikis)

        return wikis
コード例 #6
0
    def get(self, page_name):

        # if version requested, return appropriate wiki version
        version = self.request.get('v', '')
        logging.error('WIKI VERSION REQUEST = ' + version)

        #MEMCACHED DISABLED
        wiki = ''
        wiki_key = ''
        # wiki_key = 'WIKI_' + page_name
        # wiki, age = utils.age_get(wiki_key)

        #if wiki not returned by memcached, lookup from db
        if not wiki:
            #get wiki from db via gql query

            if version != '':
                wiki = Wiki.get_by_id(int(version), utils.wiki_key())
                logging.error("WIKI GET_BY_ID = " + repr(wiki))
            else:
                query = Wiki.gql(
                    "WHERE name =:page_name ORDER BY created desc LIMIT 1",
                    page_name=page_name)
                wikis = query.fetch(limit=1)
                if len(wikis) > 0:
                    wiki = wikis[0]
            if wiki:
                utils.age_set(wiki_key, wiki)
                age = 0

        #if wiki exists, render WikiPage
        if wiki:
            self.params['wiki'] = wiki
            self.params['age'] = utils.age_str(age)
            self.render("wiki-page.html")

        #if wiki doesn't exist and user is logged in, redirect to WikiEdit.py
        elif not wiki and self.user:
            self.redirect('/_edit%s' % page_name)
            return

        #if url doesn't exist and user is NOT logged in, redirect to login
        else:
            self.redirect('/login')
コード例 #7
0
ファイル: NewWiki.py プロジェクト: cbeltranv/Udacity
    def get(self, page_name):

        # if version requested, return appropriate wiki version
        version = self.request.get('v', '')
        logging.error('WIKI VERSION REQUEST = ' + version)

        #MEMCACHED DISABLED
        wiki = ''
        wiki_key = ''
        # wiki_key = 'WIKI_' + page_name 
        # wiki, age = utils.age_get(wiki_key)
                
        #if wiki not returned by memcached, lookup from db
        if not wiki:
            #get wiki from db via gql query 
            
            if version != '':
                wiki = Wiki.get_by_id(int(version), utils.wiki_key())
                logging.error("WIKI GET_BY_ID = " + repr(wiki))
            else:            
                query = Wiki.gql("WHERE name =:page_name ORDER BY created desc LIMIT 1", page_name = page_name)
                wikis = query.fetch(limit=1)
                if len(wikis) > 0:
                    wiki = wikis[0]
            if wiki:
                utils.age_set(wiki_key, wiki)
                age = 0               

        #if wiki exists, render WikiPage        
        if wiki:            
            self.params['wiki'] = wiki
            self.params['age'] = utils.age_str(age)
            self.render("wiki-page.html")

        #if wiki doesn't exist and user is logged in, redirect to WikiEdit.py
        elif not wiki and self.user:
            self.redirect('/_edit%s' % page_name)
            return
        
        #if url doesn't exist and user is NOT logged in, redirect to login
        else:
            self.redirect('/login')
コード例 #8
0
ファイル: PostPage.py プロジェクト: lipghee/Udacity
 def get(self, post_id):
     post_key = 'POST_' + post_id
     
     post, age = utils.age_get(post_key)
     
     #if post not returned, lookup from db
     #TODO: move db logic to utils or Post
     if not post:
         key = db.Key.from_path('Post', int(post_id), parent=utils.blog_key())
         post = db.get(key)
         utils.age_set(post_key, post)
         age = 0
     
     if not post:
         self.error(404)
         return
     
     if self.format == 'html':
         self.render("permalink.html", post = post, age = utils.age_str(age))
     elif self.format == 'json':
         self.render_json(post.as_dict())
コード例 #9
0
ファイル: PostPage.py プロジェクト: maddenwg/Udacity
    def get(self, post_id):
        post_key = "POST_" + post_id

        post, age = utils.age_get(post_key)

        # if post not returned, lookup from db
        # TODO: move db logic to utils or Post
        if not post:
            key = db.Key.from_path("Post", int(post_id), parent=utils.blog_key())
            post = db.get(key)
            utils.age_set(post_key, post)
            age = 0

        if not post:
            self.error(404)
            return

        if self.format == "html":
            self.render("permalink.html", post=post, age=utils.age_str(age))
        elif self.format == "json":
            self.render_json(post.as_dict())
コード例 #10
0
ファイル: Wiki.py プロジェクト: maddenwg/Udacity
    def memcached_put(self):
        # overwrite "current" memcached version without version name in key (one for each name)
        utils.age_set(MEMCACHED_PREFIX + self.name, self)

        # set value for memcached key with version
        utils.age_set(MEMCACHED_PREFIX + self.name + str(self.key().id()), self)