Пример #1
0
 def get(self):
     username = self.request.get("username")
     
     ctx = {}
     
     if username:
         # get user from database
         user = Redditor.get_by_key_name(username)
          
         if not user:
             # create new user from Reddit API data 
             user = Redditor(key_name=username, username=username)
             data = Redditor.fetch_info(username)["data"]
             user.joined = datetime.fromtimestamp(data["created"])
             user.link_karma = data["link_karma"]
             user.comment_karma = data["comment_karma"]
             # calculate shares 
             user.shares = user.calculate_shares()
             user.put()
             
             # update total counters
             generalcounter.increment("total_shares", user.shares)
             generalcounter.increment("total_users", 1)
        
         ctx['user'] = user
         ctx['total_shares'] = generalcounter.get_count("total_shares")
         ctx['total_users'] = generalcounter.get_count("total_users")
         ctx['share_worth'] = settings.TOTAL_COINS * 1.0 / ctx['total_shares']
         ctx['initial_capital'] = ctx['share_worth'] * user.shares
         ctx['settings'] = settings
         
     self.response.out.write(template.render("calc.html", ctx))
Пример #2
0
 def create(self, appUser, name, tags=None):
     generalcounter.increment(PAGE_CREATED_COUNTER)
     p = models.create_page(appUser, name, getNewPageTemplate(name), tags)
     #json = createPageJson(p)
     json = {}
     json['edit'] = 'http://' + os.environ['HTTP_HOST'] + '/a/edit/' + str( p.key() )
     self.response.out.write(simplejson.dumps(json))
Пример #3
0
 def post(self):
     counter = self.request.get('counter')
     if counter == 'simple':
         simplecounter.increment()
     else:
         generalcounter.increment('FOO')
     self.redirect("/")
Пример #4
0
 def post(self):
   counter = self.request.get('counter')
   if counter == 'simple':
     simplecounter.increment()
   else:
     generalcounter.increment('FOO')
   self.redirect("/")
Пример #5
0
def get_or_create_page(bucket, url, href, key=None):
    if key:
        return Page.get(key)
    else:
        page = Page(ip=cgi.os.environ['REMOTE_ADDR'],
                    owner=bucket, url=url, href=href)
        page.put()
        generalcounter.increment('page')
        return page
Пример #6
0
 def create(self, appUser, name, tags=None):
     generalcounter.increment(PAGE_CREATED_COUNTER)
     page = models.create_page(appUser, name, getNewPageTemplate(name), tags)
     page_id = page.key().id()
     logging.debug('created pageId: %s' % str(page_id))
     #create test data
     #for i in range(1, 50):
     #    name = name + str(i)
     #    models.create_page(appUser, name, getNewPageTemplate(name), tags)
     page_key = str( page.key() )
     set_user_last_page(page_key, appUser)
     logging.debug('set set_user_last_page: %s' % page_key)
     json = createPageJson(page)
     logging.debug('create page json')
     self.response.out.write(simplejson.dumps(json))
Пример #7
0
def create_or_update_sticky(page, content, key=None):
    sticky = None
    if key:
        sticky = Sticky.get(key)
        if sticky:
            sticky.ip=cgi.os.environ['REMOTE_ADDR']
            sticky.content = content
            
    else:
        sticky = Sticky(ip=cgi.os.environ['REMOTE_ADDR'],
                owner = page,
                content = content)
        generalcounter.increment('sticky')
    if sticky:
        sticky.put()
    return sticky
Пример #8
0
    def add(cls, title, content, summary = None, add_time = None):
        u = get_user()
        count = cls.count()
        if add_time is None:
            add_time = datetime.datetime.utcnow()
        p = cls(parent =u, offset = count+1, title = title, content = content, \
                author = u, add_time = add_time)
        if summary:
            p.summary = summary
        
        u.post_count += 1

        def txn():
            p.put()
            u.put()
        db.run_in_transaction(txn)
        generalcounter.increment('post')
Пример #9
0
def get_or_create_user():
  """
  Find a matching User or create a new one with the
  email as the key_name.
  
  Returns a User for the given goog_user.
  """
  goog_user = users.get_current_user()
  if goog_user:
      user = User.get_by_key_name(goog_user.email())
      if user is None:
        user = User(key_name=goog_user.email(), goog_user=goog_user)
        generalcounter.increment('user')
        user.put()
        bucket = Bucket(owner=user, name='Home')
        bucket.put()
        generalcounter.increment('bucket')
      return user
  return None
Пример #10
0
 def _next_segment_name(self):
     #Returns the name of the next segment in sequence.
     generalcounter.increment("nextsegment")
     return str(generalcounter.get_count("nextsegment"))
Пример #11
0
 def post(self):
     generalcounter.increment("FOO")
     self.redirect("/")
Пример #12
0
 def _next_segment_name(self):
     #Returns the name of the next segment in sequence.
     generalcounter.increment("nextsegment")
     return str(generalcounter.get_count("nextsegment"))