コード例 #1
0
 def getNewReplay(self):
     request = sc2api_pb2.RequestReplayInfo(replay_path="dummy.SC2Replay",
                                            download_data=True)
     #request.replay_path = ?
     #request.replay_data = ?
     #request.download_data=True
     return self._client.send(replay_info=request)
コード例 #2
0
ファイル: remote_controller.py プロジェクト: talgreen/pysc2
 def replay_info(self, replay_data):
     return self._client.send(replay_info=sc_pb.RequestReplayInfo(
         replay_data=replay_data))
コード例 #3
0
 async def request_replay_info(self, replay_path: str):
     """ Not working on linux. """
     req = sc_pb.RequestReplayInfo(replay_path=replay_path,
                                   download_data=False)
     result = await self._execute(replay_info=req)
     return result
コード例 #4
0
ファイル: game.py プロジェクト: dumb-bots/SC2BlizzardWrapper
    async def load_replay(self, replay_file, id=0):
        print(replay_file)
        async with websockets.connect("ws://{0}:{1}/sc2api".format(
                self.host.address, self.host.port)) as ws:
            replay_meta = api.Request(replay_info=api.RequestReplayInfo(
                replay_path=replay_file))
            await ws.send(replay_meta.SerializeToString())
            result = await ws.recv()
            metadata = api.Response.FromString(result)
            self.replay_info = {
                "map":
                metadata.replay_info.map_name,
                "races": [
                    metadata.replay_info.player_info[0].player_info.
                    race_requested,
                    metadata.replay_info.player_info[1].player_info.
                    race_requested,
                ],
                "results": [
                    metadata.replay_info.player_info[0].player_result.result,
                    metadata.replay_info.player_info[1].player_result.result,
                ],
            }
            print(self.replay_info)
            msg = api.Request(start_replay=api.RequestStartReplay(
                replay_path=replay_file,
                observed_player_id=id,
                options=api.InterfaceOptions(raw=True, score=False),
            ))

            await ws.send(msg.SerializeToString())
            time.sleep(1)
            result = await ws.recv()
            response = api.Response.FromString(result)
            print(response)
            game_meta = api.Request(game_info=api.RequestGameInfo())
            await ws.send(game_meta.SerializeToString())
            result = await ws.recv()
            game_meta = api.Response.FromString(result)
            game_meta = MessageToDict(game_meta)
            game_meta = str(game_meta)
            game_meta = game_meta.replace("\'", "\"")
            game_meta = game_meta.replace("False", "false")
            game_meta = game_meta.replace("True", "true")
            game_meta = json.loads(game_meta, encoding="UTF-8")
            if "gameInfo" in game_meta.keys():
                game_meta = game_meta.get("gameInfo", None)
                game_meta.pop("modNames")
                game_meta.pop("options")
                game_meta.pop("mapName")
                if ("localMapPath" in game_meta.keys()):
                    game_meta.pop("localMapPath")
                game_meta.pop("playerInfo")
                game_meta.update(game_meta["startRaw"])
                game_meta.pop("startRaw")
                game_meta.pop("mapSize")
                self.game_info = game_meta
                self.status = "started"
                return True
            else:
                return False