-
Notifications
You must be signed in to change notification settings - Fork 172
Add deserialization support for appinfo.vdf V29 #464
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
Conversation
47468b5 to
6a32f3d
Compare
WinterPhoenix
commented
Jul 25, 2024
I made a fork that incorporates this PR as well as several other pending PRs in this repo. I don't really particularly want to be the new maintainer for this, but if I'm still using it I may as well.
appinfo.vdf V29 was introduced in Steam beta. This new version introduces a space-saving optimization: instead of encoding each key name in the binary VDF segment directly, an int64 identifier is instead used for each key, with a table at the end of the 'appinfo.vdf' file providing the mapping to actual key names. Also see SteamDatabase/SteamAppInfo@56b1fec Fixes ValvePython#462 Co-authored-by: Eamonn Rea <eamonnrea@gmail.com>
6a32f3d to
052a6ae
Compare
Updated the PR to ignore invalid Unicode characters in field names. Many of them can be set by Steam app developers, with Steam either not performing server-side validation or being lenient on what's allowed. A similar fix was done in ValvePython/vdf@aa210d8.
@WinterPhoenix FYI, the forked repositories don't allow submission of issues. I had the same issue when I initially forked Protontricks meaning I had to contact GitHub support to get the repository unlinked from the parent repository and restore the rest of the repo functionality.
Also, I don't know if you want to claim the possibly orphaned projects on PyPI, but there is a process for that. This is probably the main issue for projects like Protontricks as they depend on vdf and/or steam, as well as distro package maintainers who would probably prefer to package the canonical Python package on PyPI instead of relying on manual research to discover what the currently maintained out-of-band fork is.
Anyway, if you want to go that route, I can volunteer to be a co-maintainer for the vdf library. I don't claim to know much about the source code so I might have limited ability to contribute more comprehensive fixes. I think that would still be preferable to the current situation, though. :)
WinterPhoenix
commented
Aug 22, 2024
@Matoking I apparently just didn't have Issues enabled on them for some reason. Should be good now.
As for PyPI... I'll request the name transfer at some point. Some stuff like Actions should be fixed up first I think.
appinfo.vdf V29 was introduced in Steam beta. This new version introduces a space-saving optimization: instead of encoding each key name in the binary VDF segment directly, an int64 identifier is instead used for each key, with a table at the end of the 'appinfo.vdf' file providing the mapping to actual key names.
Also see
SteamDatabase/SteamAppInfo@56b1fec
Fixes #462
Requires ValvePython/vdf#61