def _delete_all(): users.delete_all(WID) w = worlds.get(WID) if w is not None: worlds.delete(w) #areas.delete_all(WID) #countries.delete_all(WID) h = histories.get(WID) if h is not None: histories.delete(h)
def finish(self): world = worlds.get(self.WID) if world: l_users = users.list_all(world.wid) for user in l_users: users.set_world(user.uid, None, None) worlds.delete(world) history = histories.get(self.WID) if history: histories.delete(history) return ApiResponse({'result': 'OK'})
def purge(self): # exclude our dear admin user = getUser() obo = users.find_user(username='******') if obo.uid != user.uid: return 'No rights' users.set_world(obo.uid, None, None) # delete all test users lworlds = worlds.list_all() for world in lworlds: worlds.delete(world) # delete all entities users.delete_all_test() histories.delete_all() return 'Purged everything :)'
def run(self): to_delete_worlds = worlds.list_finished() for i, world in enumerate(to_delete_worlds): # count statistics for world's match history endgame.populate_match_history(world) # then delete world (and cascades countries, areas) worlds.delete(world, commit=False) # clear chat chat_service.clear(world.wid, 'global') # todo: clear DM chats if i % 20 == 0: # make sure to save changes every once in a while worlds.session.commit() # rest for 80ms sleep(0.08) worlds.session.commit()
def leave(self, user): world = worlds.get(user.wid) self.server.send_to_world(world.wid, { "route": "Worlds:left", "iso": user.iso, }) self.server.client_leave_world(user.client) if settings.get('client.leave_world_on_disconnect'): user.wid = None user.iso = None users.set_world(user.uid, None, None) # delete match if it hasn't started yet if world.rounds == 0: clients = self.server.onlineMatches[str(world.wid)] if len(clients) == 0: print("DELETING MATCH", world.wid) worlds.delete(world) return {}
def start(self): if not request.args['uids']: return ApiResponse({'result': False, 'no': -1}) uids = request.args['uids'].split(',') world = worlds.get(self.WID) l_users = users.list(uids) # delete world if world is not None: worlds.delete(world) h = histories.get(self.WID) if h is not None: histories.delete(h) # create world world = World(wid=self.WID, name="Playtest world", map=self.MAP, max_rounds=None) isos = load_isos('game/maps/{}.gtml'.format(world.map)) if len(isos) < len(l_users): return ApiResponse({'result': False, 'no': len(isos)}) # force-enter users: for user, iso in zip(l_users, isos): user.wid = world.wid user.iso = iso # Save everything and start the game worlds.save(world) start_world(world, AI=True) users.save_all(l_users) return ApiResponse({'result': 'OK'})