Example #1
0
  def get(self,post_id):
    session = get_current_session()
    if session.has_key('user'):
      user = session['user']
    
    try:
      post = Post.all().filter('nice_url =', helper.parse_post_id( post_id ) ).get()
      if  post  == None: #If for some reason the post doesn't have a nice url, we try the id. This is also the case of all old stories
        post = db.get( helper.parse_post_id( post_id ) ) 

      comments = Comment.all().filter("post =", post.key()).order("-karma").fetch(1000)
      comments = helper.order_comment_list_in_memory(comments)
      prefetch.prefetch_comment_list(comments)
      display_post_title = True
      prefetch.prefetch_posts_list([post])
      if helper.is_json(post_id):
        comments_json = [c.to_json() for c in comments if not c.father_ref()] 
        if(self.request.get('callback')):
          self.response.headers['Content-Type'] = "application/javascript"
          self.response.out.write(self.request.get('callback')+'('+simplejson.dumps({'post':post.to_json(),'comments':comments_json})+')')
        else:
          self.response.headers['Content-Type'] = "application/json"
          self.response.out.write(simplejson.dumps({'post':post.to_json(),'comments':comments_json}))
      else:
        self.response.out.write(template.render('templates/post.html', locals()))
    except db.BadKeyError:
      self.redirect('/')
Example #2
0
  def get(self):
    page = helper.sanitizeHtml(self.request.get('pagina'))
    perPage = 20
    page = int(page) if page else 1
    realPage = page - 1
    if realPage > 0:
      prevPage = realPage
    if (page * perPage) < Post.get_cached_count():
      nextPage = page + 1

    session = get_current_session()
    if session.has_key('user'):
      user = session['user']
    posts = Post.all().order('-created').fetch(perPage,perPage * realPage)
    prefetch.prefetch_posts_list(posts)
    i = perPage * realPage + 1
    for post in posts:
      post.number = i
      i = i + 1
    if helper.is_json(self.request.url):
      posts_json = [p.to_json() for p in posts]
      if(self.request.get('callback')):
        self.response.headers['Content-Type'] = "application/javascript"
        self.response.out.write(self.request.get('callback')+'('+simplejson.dumps({'posts':posts_json})+');')
      else:
        self.response.headers['Content-Type'] = "application/json"
        self.response.out.write(simplejson.dumps({'posts':posts_json}))
    else:
      self.response.out.write(template.render('templates/main.html', locals()))
Example #3
0
  def get(self, user):
    page = helper.sanitizeHtml(self.request.get('pagina'))
    target_user_str= helper.sanitizeHtml(helper.parse_post_id(user))
    perPage = 20
    page = int(page) if page else 1
    realPage = page - 1
    if realPage > 0:
      prevPage = realPage

    session = get_current_session()
    if session.has_key('user'):
      user = session['user']
    target_user = User.all().filter('lowercase_nickname =', target_user_str).fetch(1)
    if len(target_user) > 0:
      posts = Post.all().filter('user ='******'-created').fetch(perPage,perPage * realPage)
      if (page * perPage) < Post.all().filter('user ='******'-created').count():
        nextPage = page + 1
      prefetch.prefetch_posts_list(posts)
      i = perPage * realPage + 1
      for post in posts:
        post.number = i
        i = i + 1
      if helper.is_json(self.request.url):
        posts_json = [p.to_json() for p in posts]
        if(self.request.get('callback')):
          self.response.headers['Content-Type'] = "application/javascript"
          self.response.out.write(self.request.get('callback')+'('+simplejson.dumps({'posts':posts_json})+');')
        else:
          self.response.headers['Content-Type'] = "application/json"
          self.response.out.write(simplejson.dumps({'posts':posts_json}))
      else:
        self.response.out.write(template.render('templates/main.html', locals()))
    else:
      self.redirect('/')
Example #4
0
    def get(self):
        page = helper.sanitizeHtml(self.request.get('pagina'))
        perPage = 20
        page = int(page) if page else 1
        realPage = page - 1
        if realPage > 0:
            prevPage = realPage
        if (page * perPage) < Post.get_cached_count():
            nextPage = page + 1

        session = get_current_session()
        if session.has_key('user'):
            user = session['user']
        posts = Post.all().order('-created').fetch(perPage, perPage * realPage)
        prefetch.prefetch_posts_list(posts)
        i = perPage * realPage + 1
        for post in posts:
            post.number = i
            i = i + 1
        if helper.is_json(self.request.url):
            posts_json = [p.to_json() for p in posts]
            if (self.request.get('callback')):
                self.response.headers[
                    'Content-Type'] = "application/javascript"
                self.response.out.write(
                    self.request.get('callback') + '(' +
                    simplejson.dumps({'posts': posts_json}) + ');')
            else:
                self.response.headers['Content-Type'] = "application/json"
                self.response.out.write(simplejson.dumps({'posts':
                                                          posts_json}))
        else:
            self.response.out.write(
                template.render('templates/main.html', locals()))
Example #5
0
  def get(self,post_id):
    session = get_current_session()
    if session.has_key('user'):
      user = session['user']
    

    try:
      post = Post.all().filter('nice_url =', helper.parse_post_id( post_id ) ).get()
      if  post  == None: #If for some reason the post doesn't have a nice url, we try the id. This is also the case of all old stories
        post = db.get( helper.parse_post_id( post_id ) ) 

      comments = Comment.all().filter("post =", post.key()).order("-karma").fetch(1000)
      comments = helper.order_comment_list_in_memory(comments)
      prefetch.prefetch_comment_list(comments)
      display_post_title = True
      prefetch.prefetch_posts_list([post])
      if helper.is_json(post_id):
        comments_json = [c.to_json() for c in comments if not c.father_ref()] 
        if(self.request.get('callback')):
          self.response.headers['Content-Type'] = "application/javascript"
          self.response.out.write(self.request.get('callback')+'('+simplejson.dumps({'post':post.to_json(),'comments':comments_json})+')')
        else:
          self.response.headers['Content-Type'] = "application/json"
          self.response.out.write(simplejson.dumps({'post':post.to_json(),'comments':comments_json}))
      else:
        helper.killmetrics("Pageview","Post", "view", session, "",self)
        self.response.out.write(template.render('templates/post.html', locals()))
    except db.BadKeyError:
      self.redirect('/')
Example #6
0
  def get(self, user):
    page = helper.sanitizeHtml(self.request.get('pagina'))
    target_user_str= helper.sanitizeHtml(helper.parse_post_id(user))
    perPage = 20
    page = int(page) if page else 1
    realPage = page - 1
    if realPage > 0:
      prevPage = realPage

    session = get_current_session()
    if session.has_key('user'):
      user = session['user']
    target_user = User.all().filter('lowercase_nickname =', target_user_str).fetch(1)
    if len(target_user) > 0:
      posts = Post.all().filter('user ='******'-created').fetch(perPage,perPage * realPage)
      if (page * perPage) < Post.all().filter('user ='******'-created').count():
        nextPage = page + 1
      prefetch.prefetch_posts_list(posts)
      i = perPage * realPage + 1
      for post in posts:
        post.number = i
        i = i + 1
      if helper.is_json(self.request.url):
        posts_json = [p.to_json() for p in posts]
        if(self.request.get('callback')):
          self.response.headers['Content-Type'] = "application/javascript"
          self.response.out.write(self.request.get('callback')+'('+simplejson.dumps({'posts':posts_json})+');')
        else:
          self.response.headers['Content-Type'] = "application/json"
          self.response.out.write(simplejson.dumps({'posts':posts_json}))
      else:
        self.response.out.write(template.render('templates/main.html', locals()))
    else:
      self.redirect('/')
Example #7
0
 def get(self, nickname):
     nickname = helper.parse_post_id(nickname)
     session = get_current_session()
     if session.has_key('user'):
         user = session['user']
     if session.has_key('profile_saved'):
         profile_saved = session.pop('profile_saved')
     profiledUser = User.all().filter('nickname =', nickname).fetch(1)
     if len(profiledUser) == 1:
         profiledUser = profiledUser[0]
         #TODO fix this horrible way of testing for the user
         if session.has_key('user') and user.key() == profiledUser.key():
             my_profile = True
         if helper.is_json(self.request.url):
             if (self.request.get('callback')):
                 self.response.headers[
                     'Content-Type'] = "application/javascript"
                 self.response.out.write(
                     self.request.get('callback') + '(' +
                     simplejson.dumps({
                         'nickname': profiledUser.nickname,
                         'karma': profiledUser.karma,
                         'twitter': profiledUser.twitter,
                         'github': profiledUser.github,
                         'hn': profiledUser.hnuser
                     }) + ')')
             else:
                 self.response.headers[
                     'Content-Type'] = "application/javascript"
                 self.response.out.write(
                     simplejson.dumps({
                         'nickname': profiledUser.nickname,
                         'twitter': profiledUser.twitter,
                         'karma': profiledUser.karma,
                         'github': profiledUser.github,
                         'hn': profiledUser.hnuser
                     }))
         else:
             self.response.out.write(
                 template.render('templates/profile.html', locals()))
     else:
         self.redirect('/')
Example #8
0
  def get(self):
    page = helper.sanitizeHtml(self.request.get('pagina'))
    perPage = 20
    page = int(page) if page else 1
    realPage = page - 1
    if realPage > 0:
      prevPage = realPage
    if (page * perPage) < Post.get_cached_count():
      nextPage = page + 1

    session = get_current_session()
    on_main = True
    

    if session.has_key('user'):
      user = session['user']
    #### Killmetrics test
    killmetrics_session_id = helper.get_session_id(session)
    killmetrics_key = ''
    if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_dev') and helper.base_url(self) != keys.base_url:
      killmetrics_key = keys.killmetrics_dev
    if hasattr(keys,'base_url') and hasattr(keys,'killmetrics_prod') and (helper.base_url(self) == keys.base_url or helper.base_url(self) == keys.base_url_custom_url):
      killmetrics_key = keys.killmetrics_prod
    #### Killmetrics test

    posts = Post.all().order('-karma').fetch(perPage, realPage * perPage)
    prefetch.prefetch_posts_list(posts)
    i = perPage * realPage + 1
    for post in posts:
      post.number = i
      i = i + 1
    if helper.is_json(self.request.url):
      posts_json = [p.to_json() for p in posts]
      if(self.request.get('callback')):
        self.response.headers['Content-Type'] = "application/javascript"
        self.response.out.write(self.request.get('callback')+'('+simplejson.dumps({'posts':posts_json})+');')
      else:
        self.response.headers['Content-Type'] = "application/json"
        self.response.out.write(simplejson.dumps({'posts':posts_json}))
    else:
      self.response.out.write(template.render('templates/main.html', locals()))
Example #9
0
 def get(self, post_id):
     session = get_current_session()
     if session.has_key('user'):
         user = session['user']
     try:
         post = db.get(helper.parse_post_id(post_id))
         comments = Comment.all().filter(
             "post =", post.key()).order("-karma").fetch(1000)
         comments = helper.order_comment_list_in_memory(comments)
         prefetch.prefetch_comment_list(comments)
         display_post_title = True
         prefetch.prefetch_posts_list([post])
         if helper.is_json(post_id):
             comments_json = [
                 c.to_json() for c in comments if not c.father_ref()
             ]
             if (self.request.get('callback')):
                 self.response.headers[
                     'Content-Type'] = "application/javascript"
                 self.response.out.write(
                     self.request.get('callback') + '(' +
                     simplejson.dumps({
                         'post': post.to_json(),
                         'comments': comments_json
                     }) + ')')
             else:
                 self.response.headers['Content-Type'] = "application/json"
                 self.response.out.write(
                     simplejson.dumps({
                         'post': post.to_json(),
                         'comments': comments_json
                     }))
         else:
             self.response.out.write(
                 template.render('templates/post.html', locals()))
     except db.BadKeyError:
         self.redirect('/')
 def get(self,nickname):
   nickname = helper.parse_post_id(nickname)
   session = get_current_session()
   if session.has_key('user'):
     user = session['user']
   if session.has_key('profile_saved'):
     profile_saved = session.pop('profile_saved')
   profiledUser = User.all().filter('nickname =',nickname).fetch(1)
   if len(profiledUser) == 1:
     profiledUser = profiledUser[0]
     #TODO fix this horrible way of testing for the user
     if session.has_key('user') and user.key() == profiledUser.key():
       my_profile = True
     if helper.is_json(self.request.url):
       if(self.request.get('callback')):
         self.response.headers['Content-Type'] = "application/javascript"
         self.response.out.write(self.request.get('callback')+'('+simplejson.dumps({'nickname':profiledUser.nickname, 'karma':profiledUser.karma,'twitter':profiledUser.twitter,'github':profiledUser.github,'hn':profiledUser.hnuser})+')')
       else:
         self.response.headers['Content-Type'] = "application/javascript"
         self.response.out.write(simplejson.dumps({'nickname':profiledUser.nickname,'twitter':profiledUser.twitter, 'karma':profiledUser.karma, 'github':profiledUser.github,'hn':profiledUser.hnuser}))
     else:
       self.response.out.write(template.render('templates/profile.html', locals()))
   else:
     self.redirect('/')