pnxenopoulos / awpy

Python library to parse, analyze and visualize Counter-Strike 2 data
http://www.awpycs.com
MIT License
366 stars 56 forks source link

Old Demos not parseable #61

Closed jeremieroche closed 2 years ago

jeremieroche commented 2 years ago

Describe the bug Old Demos are not parseable

To Reproduce Steps to reproduce the behavior: Download HLTV demo: https://www.hltv.org/matches/2343604/big-vs-ago-esl-pro-league-season-12-europe Run the following python script

    from csgo.parser import DemoParser
    f = "big-vs-ago-m2-dust2.dem"
    output_file = f.replace("-","_").replace(".dem","_01")
    print(output_file)
    demo_parser = DemoParser(demofile=f, demo_id=output_file, parse_rate=128)
    data = demo_parser.parse()

Expected behavior A clear and concise description of what you expected to happen.

Parsed Demo

Screenshots If applicable, add screenshots to help explain your problem.

Additional context Add any other context about the problem here.

Trying to backfill old demos under the v1 parser

pnxenopoulos commented 2 years ago

Error log:

big_vs_natus_vincere_m1_dust2_01
11:16:11 [INFO] Go version>=1.14.0
11:16:11 [INFO] Initialized CSGODemoParser with demofile /Users/jeremieroche/Documents/csgo_mapper/experiments/csgo_board_analyzer_2/server/raw_demos/big-vs-natus-vincere-m1-dust2.dem
11:16:11 [INFO] Setting demo id to big_vs_natus_vincere_m1_dust2_01
11:16:11 [INFO] Setting parse rate to 128
11:16:11 [INFO] Setting trade time to 5
11:16:11 [INFO] Setting buy style to hltv
11:16:11 [INFO] Rollup damages set to False
11:16:11 [INFO] Parse frames set to True
11:16:11 [INFO] Running Golang parser from /Users/jeremieroche/Documents/csgo_mapper/experiments/csgo_board_analyzer_2/csvizion_server/lib/python3.8/site-packages/csgo-1.0-py3.8.egg/csgo/parser/
11:16:11 [INFO] Looking for file at /Users/jeremieroche/Documents/csgo_mapper/experiments/csgo_board_analyzer_2/server/raw_demos/big-vs-natus-vincere-m1-dust2.dem
panic: demo stream ended unexpectedly (ErrUnexpectedEndOfDemo)

goroutine 1 [running]:
main.checkError(...)
    /Users/jeremieroche/Documents/csgo_mapper/experiments/csgo_board_analyzer_2/csvizion_server/lib/python3.8/site-packages/csgo-1.0-py3.8.egg/csgo/parser/parse_demo.go:2331
main.main()
    /Users/jeremieroche/Documents/csgo_mapper/experiments/csgo_board_analyzer_2/csvizion_server/lib/python3.8/site-packages/csgo-1.0-py3.8.egg/csgo/parser/parse_demo.go:2289 +0x2db3
exit status 2
11:16:21 [ERROR] No file produced, error in calling Golang
11:16:21 [ERROR] []
11:16:21 [INFO] Reading in JSON from big_vs_natus_vincere_m1_dust2_01.json
Traceback (most recent call last):
  File "./parse_raw_demos.py", line 21, in <module>
    data = demo_parser.parse()
  File "/Users/jeremieroche/Documents/csgo_mapper/experiments/csgo_board_analyzer_2/csvizion_server/lib/python3.8/site-packages/csgo-1.0-py3.8.egg/csgo/parser/demoparser.py", line 215, in parse
    self._read_json()
  File "/Users/jeremieroche/Documents/csgo_mapper/experiments/csgo_board_analyzer_2/csvizion_server/lib/python3.8/site-packages/csgo-1.0-py3.8.egg/csgo/parser/demoparser.py", line 197, in _read_json
    with open(json_path) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/Users/jeremieroche/Documents/csgo_mapper/experiments/csgo_board_analyzer_2/big_vs_natus_vincere_m1_dust2_01.json'
pnxenopoulos commented 2 years ago

Fixed in da99ef2