def get_data(self): """Returns the user list if any change has been made since the last time the current user has queried the list. """ userid = request_util.get_param(self.request, 'id') if not userid: raise Exception("Param 'id' is required") username = request_util.get_param(self.request, 'user') highscore = request_util.get_param(self.request, 'highscore', 0) init = request_util.get_param(self.request, 'init', 'false') data = [] lastupdate = USERS['users'].get(userid, {}).get('updated', 0) self.request.user = userid self.add_user(userid, username, highscore) if lastupdate != USERS['update_key'] or init == 'true': data = self.get_user_list() USERS['users'][self.request.user]['updated'] = USERS['update_key'] data['action'] = 'ping' if init == 'true': USERS['users'][self.request.user]['state'] = '' # test contact action if any contact_action = ContactAction(self.request) contact_request = contact_action.get_contact_request_for(userid) if contact_request: return {'action': 'contact_request', 'other': contact_request} return data
def _read_params(self): requesting_user = request_util.get_param(self.request, 'id') requested_user = request_util.get_param(self.request, 'other') if not requesting_user: raise Exception("Param 'id' is required") if not requested_user: raise Exception("Param 'other' is required") return requesting_user, requested_user
def get_data(self): userid = request_util.get_param(self.request, 'id') if not userid: raise Exception("parameter 'id' is required") state = request_util.get_param(self.request, 'state', '') user = USERS['users'].get(userid) if user: user['state'] = state USERS['update_key'] = USERS['update_key'] + 1 return {'action': 'changestate', 'newstate': state}
def get_data(self): userid = request_util.get_param(self.request, 'id') if not userid: raise Exception("parameter 'id' is required") state = request_util.get_param(self.request, 'state', '') user = USERS['users'].get(userid) if user: user['state'] = state USERS['update_key'] = USERS['update_key'] + 1 return {'action': 'changestate', 'newstate': state }
def user_seen(request, has_been_seen): """Marks a user as seen, updating her keepalive timestamp. """ userid = get_param(request, 'id') if userid: user = USERS['users'].get(userid) if user and has_been_seen: user['last_seen'] = time.time() garbage_collect_users()
def needs_keepalive(request): """Tells whether user needs a keep alive query or not. """ now = time.time() userid = get_param(request, 'id') if not userid: raise Exception("Param 'id' is required") if userid in USERS['users'] and 'last_seen' in USERS['users'][userid]: last_seen = USERS['users'][userid]['last_seen'] if now - KEEP_ALIVE_MAX_AGE > last_seen: return True return False