Add deserialization support for new binary VDF w/ key table#61
Add deserialization support for new binary VDF w/ key table#61Matoking wants to merge 1 commit intoValvePython:masterfrom
Conversation
The new Steam beta introduced a new `appinfo.vdf` version. This appinfo.vdf V29 introduces a new binary VDF format which does not include field keys in binary VDF segments as-is. Instead, each key is represented by a 32-bit integer which needs to be mapped to an actual string using a table stored at the end of the `appinfo.vdf` file. This also means the binary VDF segments in this case are no longer self-contained. The developer can parse and provide the table themselves or instead use the `ValvePython/steam` library which contains a function to parse `appinfo.vdf` files. Also see SteamDatabase/SteamAppInfo@56b1fec Refs ValvePython/steam#462
|
This fix is also needed over at https://github.com/cbartondock/node-binary-vdf in case you feel like submitting a PR :) if not I will work on borrowing your code! Good job figuring this out. |
Thank you, you can use this PR as a reference. I can't take full credit, though; SteamDatabase/SteamAppInfo was the first to figure out the new format to my knowledge and this implementation is based on their findings. |
|
Okay just got it finished. The node module is https://github.com/cbartondock/node-binary-vdf/blob/master/src/index.ts |
|
Maintainers, please pick this up and release it so that the library doesn't need to published to PyPI under a new name. It is now more urgent as the stable version of Steam is now using this new format. |
Steam is now using a new format, but the necessary changes haven't been merged by the maintainers of this library yet. Bug: ValvePython/vdf#61 Signed-off-by: James Le Cuirot <chewi@gentoo.org>
|
Just going to point out that, if the maintainer doesn't return, we have a fork that has this and many of the other pending PRs merged: The python-vdf package on AUR also points to this fork now. |
The new Steam beta introduced a new
appinfo.vdfversion. This appinfo.vdf V29 introduces a new binary VDF format which does not include field keys in binary VDF segments as-is. Instead, each key is represented by a 32-bit integer which needs to be mapped to an actual string using a table stored at the end of theappinfo.vdffile.This also means the binary VDF segments in this case are no longer self-contained. The developer can parse and provide the table themselves or instead use the
ValvePython/steamlibrary which contains a function to parseappinfo.vdffiles.Also see SteamDatabase/SteamAppInfo@56b1fec
Refs ValvePython/steam#462