Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How can i decode information from RequestFullMatchInfo? #42

Open
Soulbadguy54 opened this issue Mar 4, 2021 · 3 comments
Open

How can i decode information from RequestFullMatchInfo? #42

Soulbadguy54 opened this issue Mar 4, 2021 · 3 comments

Comments

@Soulbadguy54
Copy link

Soulbadguy54 commented Mar 4, 2021

Hello. Need help, please guys :) There are 2 questions that i dont understand.

  1. I use
    response = cs.wait_event('full_match_info', timeout=30, raises=False)
    for get the game data from user last match. But whats the format i getting on response?
    I tried to use str(response[0]) and next decode by json.loads(), but i get an json decode error.
    How can i decode this data to dict or something like that??? (wrote down)

  2. How the sites like csgostats.gg and other get the all info about match?
    like flashes, flash assists, jumpshots, the accuracy with AK-47, grenade damage etc. I can get only kill, assists, headshots and score (very little info) via cs.request_full_match_info(). Is it possible to get more data via that python module?

The response data i want to decode or something like that:

msgrequestid: 9147
accountid: 1185931041
servertime: 1614835709
matches {
  matchid: 3467736107796398755
  matchtime: 1614790460
  watchablematchinfo {
    server_ip: 181
    tv_port: 1806964191
    tv_spectators: 0
    cl_decryptdata_key_pub: 8411663965113195703
  }
  roundstatsall {
    reservation {
      account_ids: 325391327
      account_ids: 55022319
      account_ids: 199873381
      account_ids: 92583876
      account_ids: 97254842
      account_ids: 354762908
      account_ids: 138651512
      account_ids: 841090319
      account_ids: 183710739
      account_ids: 119649041
    }

etc

@Soulbadguy54
Copy link
Author

guys, please. Cant do anything without your help T_T

@Suppenbiatch
Copy link

  1. You can easily decode the response by using the same library ValvePython uses to encode its responses.
from google.protobuf.json_format import MessageToDict

match_info = MessageToDict(response[0])
for match in match_info['matches']:
    for match_round in match['roundstatsall']:
        print(match_round)
  1. Sadly you won't get stats like csgostats from this.
    They use a similar methode to get the demo url from a sharecode, eg:
demo_url = game_info['matches'][0]['roundstatsall'][-1]['map']

then they download set demo an use their own parser, another public or the Valve made one to get all the information they want

@Soulbadguy54
Copy link
Author

Soulbadguy54 commented Mar 21, 2021

  1. You can easily decode the response by using the same library ValvePython uses to encode its responses.
from google.protobuf.json_format import MessageToDict

match_info = MessageToDict(response[0])
for match in match_info['matches']:
    for match_round in match['roundstatsall']:
        print(match_round)
  1. Sadly you won't get stats like csgostats from this.
    They use a similar methode to get the demo url from a sharecode, eg:
demo_url = game_info['matches'][0]['roundstatsall'][-1]['map']

then they download set demo an use their own parser, another public or the Valve made one to get all the information they want

Thx for your reply. Now i understand. But there is a new question. I know nothing about C, C# or C++. Is there any working python library for getting stats like csgostats get?
I saw some frameworks, but its so outdated...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants