Exemple #1
0
def index_post():
  # new Data to GAE
  secret = 'the password is %s and the salt-of-this-secret'
  game_name = request.forms.get('game_name').strip().decode('utf-8')
  game_code = ''
  password = request.forms.get('game_password').strip()
  password_hashed = ((password == '') and [''] or [md5.new(secret % password).hexdigest()])[0]
  money = request.forms.get('coins').strip()
  nop = int(request.forms.get('number_of_player').strip())
  names = request.forms.getall('player_name')
  r = MonopolyRoom(game_name=game_name, password=password_hashed, number_of_player=nop)
  r.put()
  id = r.key().id()
  game_code = tiny_encode(id)
  r.game_code = game_code
  r.put()
  # Create room in Firebase
  fb = Firebase('https://summerwxy.firebaseio.com/monopoly/%s' % game_code)
  foo = {'nop': nop, 'player': {}, 'log': {}}
  for i in xrange(nop):
    foo['player'][i] = {'name': names[i], 'coins': money}
    foo['log'][i] = {'className': 'log999 log' + str(i), 'from': 999, 'to': i, 'coins': money}
  #var logClassName = _.template('log<\%=f%\> log<\%=t%\>');
  #           log.push({'className': logClassName({'f': from_id, 't': to_id}), 'from': from_id, 'to': to_id, 'coins': coins});
    
  fb.put(foo)
  # if create with password, login diretly
  if password_hashed:
    session = get_current_session()
    session['allow'] = game_code
  redirect('/monopoly/%s' % game_code)
Exemple #2
0
def index():
  room = request.query.get('d')
  if room: 
    room = room.strip()
    q = MonopolyRoom.all()
    q.filter('game_code = ', room)
    result = q.get()
    if result:
      # delete from GAE
      result.delete()
      # delete from Firebase
      fb = Firebase('https://summerwxy.firebaseio.com/monopoly/%s' % room)
      fb.remove()
      redirect('/monopoly')
      return
  # show list
  session = get_current_session()
  allow = session.get('allow', '')
  q = MonopolyRoom.all()
  q.order('-created')
  data = []
  for r in q.run(limit=10):
    data.append({'game_name': r.game_name, 'game_code': r.game_code, 'number_of_player': r.number_of_player, 'status': not r.password and '公開' or (r.game_code == allow) and '私人(已進入)' or '私人'})
  return dict({'data': data})