Exemple #1
0
    def post(self):
        if not self.auth():
            self.respond('!') # not authenticated
            return
        name = self.get_post('u', '')
        self.out = '0'
        
        if name:
            # find the player's uid since I work with UIDs and not names
            q = User.query(User.name_lower == name.lower())
            user = q.get()
            if not user:
                self.respond('0'); return # not found                
            uid = int(user.get_id())            
            if uid == self.uid:
                self.respond('0'); return # cant add self
            
            self.out = '1'
            # check if not allready in friend list
            if self.user.friends:
                for f in self.user.friends:
                    if f == uid:
                        self.respond('1'); return;  # found the friend in list, return
                self.user.friends.append(uid)       # not found ,add
                self.out += str(uid) + ',' + user.name
            else: 
                self.user.friends = [uid]           # create list since it was None
                self.out += str(uid) + ',' + user.name
            
            self.user.put() # save

        self.respond()
Exemple #2
0
 def post(self, action=None):
     if 'find_button' in self.request.POST:
         find_email = self.request.POST['email']
         q = User.query(User.email==find_email)
         user = q.get()
         if user:
             key = user.key.urlsafe()                
             if key:
                 form = UserOwnsForm()
                 form.init_with_model(user)
                 context['form'] = form
                 context['edit_key'] = key
                 context['player_name'] = user.name
                 self.render_response("admin/shop_edit.html", **context)        
                 return
             
     elif 'save_button' in self.request.POST:
         form = UserOwnsForm(self.request.POST)
         if form.validate():
             key = model.Key(urlsafe=self.request.POST['edit_key'])
             bmplayer = key.get()
             bmplayer.shop=['0']                    
             form.update_model(bmplayer)
             bmplayer.put()
             
     form = UserFindForm()
     context['form'] = form
     self.render_response("admin/shop_index.html", **context)        
Exemple #3
0
 def post(self):
     if not self.auth():
         self.respond('!') # not authenticated
         return
     
     name = self.get_post('u', '')
     channel_ids = self.get_post('n', '')
     
     self.out = '0' #default is error
     
     # player wants to join/create a private channel with another player    
     if name:
         # find the player's uid since I work with UIDs and not names
         q = User.query(User.name_lower == name.lower())
         user = q.get()
         if not user:
             self.respond('0'); return # not found                
         uid = int(user.get_id())            
         if uid == self.uid:
             self.respond('0'); return # cant PM self
             
         # first check if the channel between the two players dont exist, else create it
         # check for channel(s) where this user and target is in the uids and it is pm_channel 
         q = ChatChannel.query(ChatChannel.pm_channel == True, ChatChannel.uids == uid, ChatChannel.uids == self.uid)
         channel = q.get() # get first result
         if channel:
             # there is a channel, update its created date so it is fresh and then send it to player
             channel.created = datetime.datetime.now()
             channel.put()
             self.out = '1' + str(channel.key.id()) 
         else:
             # first check if requested user exist
             target = User.get_by_id(uid)
             
             # create the channel
             if target:
                 channel = ChatChannel(pm_channel = True, uids = [uid, self.uid] )
                 key = channel.put()
                 if key:
                     self.out = '1' + str(key.id())
         
     # player wants the names for channels
     elif channel_ids:
         
         sids = channel_ids.split(',')
         cids = [int(s) for s in sids if s]
         channels = ChatChannel.get_multi_by_id(cids) if cids else None
         if channels: 
             self.out = '1'
             for channel in channels:
                 
                 # send the name as is if the channel has one 
                 if channel.name:
                     self.out += '|' + str(channel.key.id()) + ',' + channel.name
                     
                 # else try and find the name it should be, prolly a player name for pm channel
                 else:
                     uid = 0 # find the other player's id in the list
                     for idd in channel.uids:
                         if idd != self.uid:
                             uid = idd
                             break
                     
                     if uid > 0:
                         player = User.get_by_id(uid)
                         if player:
                             self.out += '|' + str(channel.key.id()) + ',' + player.name  
     
     self.respond()