def GET(self): get_data = web.input(last_id=0) last_id = int(get_data.last_id) room_id = web.ctx.game.player_color messages = [] delete_id = None if last_id == 0: messages = ChatMessage.load(room_id, last_id) else: action, kwargs = wait_for_message(room_id) #sleep up to 300 ms to prevent the thundering herd time.sleep(random.random() * .3) if action == 'send': messages = ChatMessage.load(room_id, last_id) elif action == 'delete': delete_id = kwargs['id'] deletable = is_admin() ChatRoom.set_online(room_id) online_users = [{ 'name': u[1], 'rating': Pretty.rating(u[2]), } for u in ChatRoom.get_online(room_id)] return json.dumps({ 'messages': list( reversed([{ 'id': x.id, 'name': x.name, 'rating': Pretty.rating(x.rating), 'message': x.message, 'deletable': deletable, } for x in messages])), 'online_users': online_users, 'refresh': False, 'delete_id': delete_id, })
def GET(self): get_data = web.input(last_id=0) last_id = int(get_data.last_id) room_id = web.ctx.game.player_color messages = [] delete_id = None if last_id == 0: messages = ChatMessage.load(room_id, last_id) else: action, kwargs = wait_for_message(room_id) #sleep up to 300 ms to prevent the thundering herd time.sleep(random.random() * .3) if action == 'send': messages = ChatMessage.load(room_id, last_id) elif action == 'delete': delete_id = kwargs['id'] deletable = is_admin() ChatRoom.set_online(room_id) online_users = [{ 'name': u[1], 'rating': Pretty.rating(u[2]), } for u in ChatRoom.get_online(room_id)] return json.dumps({ 'messages': list(reversed([ { 'id': x.id, 'name': x.name, 'rating': Pretty.rating(x.rating), 'message': x.message, 'deletable': deletable, } for x in messages ])), 'online_users': online_users, 'refresh': False, 'delete_id': delete_id, })