def on_app_requested(self, app_id) -> str or int: db = DataStore(DataStore.get_db_connection(self._db_conn_str)) app = db.get_app(app_id) if app: return json.dumps(app.json()) else: return 404
def show_map_callback(): for p in DataStore.instance().data["all_players"]: conn = DataStore.instance().data["account_connection"][p.get_account()] for item in show_map(p): dest, msg = item if msg["map"] != {}: conn.push(dest, msg)
def on_config_update(self, app_id: str, config: str) -> int: """ Config params: data_series_var, :param app_id: :param config: :return: """ db = DataStore(DataStore.get_db_connection(self._db_conn_str)) db.apply_config(app_id, json.loads(config)) return 201
def login_handler(conn): while True: signed_username = yield signed_username = signed_username.replace('"', '') username = tornado.web.decode_signed_value(conn.application.settings["cookie_secret"], "user", signed_username) print(username.decode("utf-8")) acc = get(username.decode("utf-8")) if not acc == None: DataStore.instance().data["account_connection"][acc] = conn p = DataStore.instance().data["default_player"] DataStore.instance().add_player(p) p.set_account(acc) conn.set_data_handler(command_handler(p, conn))
def login_handler(conn): while True: signed_username = yield signed_username = signed_username.replace('"', '') username = tornado.web.decode_signed_value( conn.application.settings["cookie_secret"], "user", signed_username) print(username.decode("utf-8")) acc = get(username.decode("utf-8")) if not acc == None: DataStore.instance().data["account_connection"][acc] = conn p = DataStore.instance().data["default_player"] DataStore.instance().add_player(p) p.set_account(acc) conn.set_data_handler(command_handler(p, conn))
def show_map(p, size = (33, 20), args = None): pos = p.location cache_map = generate(pos, size, DataStore.instance().data["game_map"]) norm_map = normalize(cache_map, p.get_location(), size) diff_map = diff(p.cache_map, norm_map) p.set_cache_map(norm_map) return ("gamemap", {"map": diff_map, "dir":p.direction}),
def on_data_received(self, app_id: str, payload: str, accept_type: str, created: str = None) -> int: if created: try: created = float(created) except ValueError: return 400 db = DataStore(DataStore.get_db_connection(self._db_conn_str)) app_obj = db.get_app(app_id) entry_data = payload if not entry_data: return 400 if not app_obj: db.create_app(app_id) # Either its binary or its text, we don't care for anything else when it comes to storage if accept_type == self._BINARY: return 501 else: db.add_app_entry(app_id, entry_data, datetime.utcfromtimestamp(created) if created else created) return 200
if __name__ == "__main__": input_size = utils.num_letters hidden_size = 200 output_size = utils.num_letters learnin_rate = 0.005 n_epochs = 500000 print_every = 1000 # model = CustomCGRCell(input_size, hidden_size, output_size) model = torch.load("trained_models/pokemon_generator-500000-epochs.pt") criterion = nn.NLLLoss() optimizer = torch.optim.SGD(model.parameters(), lr=learnin_rate) data_store = DataStore("data/data.txt") data_store.read_raw_data() pokemons = data_store.raw_data total_loss = 0 for epoch in range(1, 1 + n_epochs): loss = train() total_loss += loss if epoch % print_every == 0: print("Training {}% --> Current Loss = {}".format((epoch / n_epochs) * 100, total_loss/print_every)) total_loss = 0 print("Training Complete")
def inventory_callback(): for p in DataStore.instance().data["all_players"]: conn = DataStore.instance().data["account_connection"][p.get_account()] dest, msg = inv(p) conn.push(dest, msg)
def on_app_delete(self, app_id: str) -> int: db = DataStore(DataStore.get_db_connection(self._db_conn_str)) db.delete_app(app_id) return 204
def on_entries_requested_limit_min(self, app_id: str, limit_min: int) -> str: db = DataStore(DataStore.get_db_connection(self._db_conn_str)) return json.dumps(list(map(lambda x: x.json(), db.get_app_entries_limit_time(app_id, limit_min))))
def on_all_entries_requested(self, app_id: str) -> str: db = DataStore(DataStore.get_db_connection(self._db_conn_str)) return json.dumps(list(map(lambda x: x.json(), db.get_all_app_entries(app_id))))
def setUp(self) -> None: store = DataStore(DBConnection(self.get_db_conn())) for app in store.get_apps(): store.delete_app(app.app_id)
def on_apps_requested(self) -> str: db = DataStore(DataStore.get_db_connection(self._db_conn_str)) return json.dumps(list(map(lambda x: x.json(), db.get_apps())))
} application = tornado.web.Application([ (r"/", MainHandler), (r"/websocket", EchoWebSocket), (r"/login", LoginHandler), ], **settings) if __name__ == "__main__": ##Init gmap = GameMap(generate_sector, DataMap) #Global state DataStore.instance().data["game_map"] = gmap DataStore.instance().data["default_player"] = Player("Nicholas", (0, 0), gmap) DataStore.instance().data["default_player"].add_upgrade(Jetpack()) DataStore.instance().data["all_players"] = [] DataStore.instance().data["account_connection"] = {} application.listen(8888) gravity = tornado.ioloop.PeriodicCallback(gravity_callback, 500, tornado.ioloop.IOLoop.instance()) send_map = tornado.ioloop.PeriodicCallback(show_map_callback, 50, tornado.ioloop.IOLoop.instance()) send_inventory = tornado.ioloop.PeriodicCallback(inventory_callback, 1000, tornado.ioloop.IOLoop.instance()) #db_dump = tornado.ioloop.PeriodicCallback(dump_to_db, 5000, tornado.ioloop.IOLoop.instance()) #gravity.start() send_inventory.start() send_map.start() #db_dump.start()
"login_url": "/login", } application = tornado.web.Application([ (r"/", MainHandler), (r"/websocket", EchoWebSocket), (r"/login", LoginHandler), ], **settings) if __name__ == "__main__": ##Init gmap = GameMap(generate_sector, DataMap) #Global state DataStore.instance().data["game_map"] = gmap DataStore.instance().data["default_player"] = Player( "Nicholas", (0, 0), gmap) DataStore.instance().data["default_player"].add_upgrade(Jetpack()) DataStore.instance().data["all_players"] = [] DataStore.instance().data["account_connection"] = {} application.listen(8888) gravity = tornado.ioloop.PeriodicCallback(gravity_callback, 500, tornado.ioloop.IOLoop.instance()) send_map = tornado.ioloop.PeriodicCallback( show_map_callback, 50, tornado.ioloop.IOLoop.instance()) send_inventory = tornado.ioloop.PeriodicCallback( inventory_callback, 1000, tornado.ioloop.IOLoop.instance()) #db_dump = tornado.ioloop.PeriodicCallback(dump_to_db, 5000, tornado.ioloop.IOLoop.instance()) #gravity.start()
def setUp(self) -> None: super().setUp() self.database = DataStore(DBConnection(self.get_db_conn()))
def gravity_callback(): for p in DataStore.instance().data["all_players"]: gravity(p)