Пример #1
0
 def update_info(self):
     a2s = valve.source.a2s.ServerQuerier((self.host, self.port))
     try:
         info = a2s.get_info()
         self.up = True
         self.save()
     except valve.source.a2s.NoResponseError:
         self.up = False
         self.save()
         return False
     info_model = Info(server=self)
     info_model.server_name = info['server_name']
     info_model.map = info['map']
     info_model.folder = info['folder']
     info_model.game = info['game']
     info_model.app_id = info['app_id']
     info_model.player_count = info['player_count']
     info_model.max_players = info['max_players']
     info_model.bot_count = info['bot_count']
     info_model.server_type = info['server_type'].value
     info_model.platform = info['platform'].value
     info_model.password_protected = info['password_protected']
     info_model.vac_enabled = info['vac_enabled']
     info_model.version = info['version']
     info_model.save()
     return True
Пример #2
0
 def update_info(self):
     a2s = valve.source.a2s.ServerQuerier((self.host, self.port))
     try:
         info = a2s.get_info()
         self.up = True
         self.save()
     except valve.source.a2s.NoResponseError:
         self.up = False
         self.save()
         return False
     info_model = Info(server=self)
     info_model.server_name = info['server_name']
     info_model.map = info['map']
     info_model.folder = info['folder']
     info_model.game = info['game']
     info_model.app_id = info['app_id']
     info_model.player_count = info['player_count']
     info_model.max_players = info['max_players']
     info_model.bot_count = info['bot_count']
     info_model.server_type = info['server_type'].value
     info_model.platform = info['platform'].value
     info_model.password_protected = info['password_protected']
     info_model.vac_enabled = info['vac_enabled']
     info_model.version = info['version']
     info_model.save()
     return True
Пример #3
0
def test_dota2_info(address):
    try:
        a2s = valve.source.a2s.ServerQuerier(address)
        info = a2s.get_info()
    except valve.source.a2s.NoResponseError:
        return
    assert info["app_id"] == 570
    assert info["folder"] == "dota"
    assert isinstance(info["folder"], unicode)
Пример #4
0
def test_tf2_info(address):
    try:
        a2s = valve.source.a2s.ServerQuerier(address)
        info = a2s.get_info()
    except valve.source.a2s.NoResponseError:
        pytest.skip("Timedout waiting for response")
    assert info["app_id"] == 440
    assert info["folder"] == "tf"
    assert isinstance(info["folder"], unicode)
Пример #5
0
def test_csgo_info(address):
    try:
        a2s = valve.source.a2s.ServerQuerier(address)
        info = a2s.get_info()
    except valve.source.a2s.NoResponseError:
        return
    assert info["app_id"] == 730
    assert info["folder"] == "csgo"
    assert isinstance(info["folder"], six.text_type)
Пример #6
0
def test_csgo_info(address):
    try:
        a2s = valve.source.a2s.ServerQuerier(address)
        info = a2s.get_info()
    except valve.source.a2s.NoResponseError:
        return
    assert info["app_id"] == 730
    assert info["folder"] == "csgo"
    assert isinstance(info["folder"], six.text_type)
Пример #7
0
    def get_sv_info(self, server):
        addr = server.split(":")
        address = (addr[0], int(addr[1]))
        a2s = valve.source.a2s.ServerQuerier(address)
        try:
            info = a2s.get_info()
            rules = a2s.get_rules()
        except valve.source.a2s.NoResponseError:
            return None

        return (info, rules)
Пример #8
0
    def get_server(self):
        for server in self.servers:
            temp = server.split(":")
            address = (temp[0], int(temp[1]))
            a2s = valve.source.a2s.ServerQuerier(address)
            try:
                info = a2s.get_info()
                rules = a2s.get_rules()
            except valve.source.a2s.NoResponseError:
                continue
            slots = info["max_players"] - info["player_count"]

            game_state = rules["rules"]["g_gameState"]

            pickup_state = self.get_pickup_server_state(server)

            print(info["server_name"] + server)
            if  game_state == 'PRE_GAME' and pickup_state == 'FREE':
                return (info["server_name"], server)
        return None