diff --git a/actors.py b/actors.py index 7057725..2f81425 100644 --- a/actors.py +++ b/actors.py @@ -8,27 +8,10 @@ class ActorManager: def add_character(self, char_dict): name = char_dict['name'] self.actors[name] = char_dict - print(self.actors) - return response.build_new_character(None, char_dict) - def remove_actor(self, name): - if not name in self.actors: - return None # TODO FEHLERMELDUNG, CHARAKTER EXISTIERT NICHT + def remove_character(self, name): self.actors.pop(name) - return response.build_remove_actor(None, None, name) - def move_by(self, name, delta): - if not name in self.actors: - return None # TODO FEHLERMELDUNG, CHARAKTER EXISTIERT NICHT - actor = self.actors[name] - actor.tick += delta - return response.build_new_character(None, None, actor) - - def move_to(self, name, tick): - if not name in self.actors: - return None # TODO FEHLERMELDUNG, CHARAKTER EXISTIERT NICHT - actor = self.actors[name] - actor.state = TickState.ACTING.value - actor.tick = tick - return response.build_new_character(None, None, actor) + def get_actors(self): + return self.actors.values() diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..1eb919b --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,11 @@ +from python:latest + +RUN pip install eventlet \ + google-api-pythonclient \ + google-auth-httplib2 \ + google-auth-oauthlib + +WORKDIR /backend + +RUN git clone https://vcs.murgi.de:8888/daniel/splittermond-backend.git && \ + python3.7 main.py diff --git a/events.py b/events.py index 5a84689..791caa5 100644 --- a/events.py +++ b/events.py @@ -5,8 +5,8 @@ class Events(Enum): PRIVATE_CHAT = 'private message' SYSTEM_MESSAGE = 'system message' DICE_ROLL = 'dice roll' - NEW_CHARACTER = 'new character' - REMOVE_ACTOR = 'remove actor' + CHARACTER_ADDED = 'character added' + CHARACTER_REMOVED = 'character removed' ACTOR_ADDED = 'actor added' USER_EDITED = 'user edited' USER_ADDED = 'user added' diff --git a/main.py b/main.py index 56be7d4..4cfe55a 100755 --- a/main.py +++ b/main.py @@ -25,6 +25,9 @@ def connect(sid, environ): sio.emit(Events.SYSTEM_MESSAGE.value, {'sender': 'System', 'message': 'Verbunden!'}, room=sid) for user in user_manager.get_users(): sio.emit(Events.USER_ADDED.value, user, room=sid) + for char in actor_manager.get_actors(): + sio.emit(Events.CHARACTER_ADDED.value, char, room=sid) + @sio.on('disconnect') def disconnect(sid): @@ -32,6 +35,7 @@ def disconnect(sid): name = user_manager.remove_user(sid) sio.emit(Events.USER_REMOVED.value, name) + @sio.on(Events.PUBLIC_CHAT.value) def message(sid, data): # print(data) @@ -42,15 +46,21 @@ def message(sid, data): value, response.to_json()) -@sio.on(Events.NEW_CHARACTER.value) +@sio.on(Events.CHARACTER_ADDED.value) def message(sid, data): - print("INCOMING\n", data) actor_manager.add_character(data) - sio.emit(Events.NEW_CHARACTER.value, data) + print(data) + sio.emit(Events.CHARACTER_ADDED.value, data) + + +@sio.on(Events.CHARACTER_REMOVED.value) +def message(sid, data): + actor_manager.remove_character(data) + sio.emit(Events.CHARACTER_REMOVED.value, data) + @sio.on(Events.USER_EDITED.value) def message(sid, data): - print("USER EDITED: ", sid, data) if user_manager.has_user(data['old']): user_manager.remove_user(sid) sio.emit(Events.USER_REMOVED.value, data['old']) diff --git a/users/sheet_reader.py b/users/sheet_reader.py index 50133bd..1f11126 100644 --- a/users/sheet_reader.py +++ b/users/sheet_reader.py @@ -43,11 +43,17 @@ def load_character(character): ranges = ['{}!{}'.format(character, r) for r in RANGES] result = sheet.values().batchGet(spreadsheetId=SPREADSHEET_ID, ranges=ranges).execute() + + print(result) skills = dict() for r in result.get('valueRanges', []): + print(r) for v in r.get('values', []): if v: - skills[v[0]] = int(v[2]) + try: + skills[v[0]] = int(v[2]) + except: + skills[v[0]] = 0 return skills