-
Notifications
You must be signed in to change notification settings - Fork 148
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
[BUG] manifests for some Steam apps are now dicts, not plain IDs, causing CDNClient.get_manifests to crash #436
Comments
This appears to be caused by the VDF returned for
but for sniper I now get
|
Some depots now have a dict like {"public": {"gid": GID, ...}, ...} where we would traditionally have seen a flat dict {"public": GID, ...}. Not all depots have this: at the time of writing, 1628350 "Steam Linux Runtime - Sniper" does, but 1391110 "Steam Linux Runtime - Soldier" does not. Presumably this is a change that is being rolled out gradually to let the Steam client give better estimates of the size of a depot. Cope with either format, by retrieving the gid field if the nested dict is present. Resolves: ValvePython#436 Signed-off-by: Simon McVittie <smcv@collabora.com>
Fix proposed in #437. |
Can confirm that there a changes to product info data. I'll need to review all parts that are affected in the code base. |
This issue is breaking my use-case. Is there any ETA on when will this be merged? App ID I'm using: |
Does #437 solve this for the subset of the API you use? If yes, perhaps the maintainer could consider merging that as a stopgap solution, even if there are other locations needing a similar change? |
It works fine for my very simplistic use-case. |
@smcv Yes, I'm actually already using that PR instead of the official package while I'm waiting, and it does work. Haven't encountered any issues. My use-case involves downloading a single file from via the CDN, from a particular app ID and depot, latest manifest. |
My use case is also suffering from this issue. @smcv your fix resolves it for me. Can we merge in this change? Please! |
Using |
Some depots now have a dict like {"public": {"gid": GID, ...}, ...} where we would traditionally have seen a flat dict {"public": GID, ...}. Not all depots have this: at the time of writing, 1628350 "Steam Linux Runtime - Sniper" does, but 1391110 "Steam Linux Runtime - Soldier" does not. Presumably this is a change that is being rolled out gradually to let the Steam client give better estimates of the size of a depot. Cope with either format, by retrieving the gid field if the nested dict is present. Resolves: ValvePython#436 Signed-off-by: Simon McVittie <smcv@collabora.com> (cherry picked from commit 783f023)
Description
Some Steam apps (the one I'm aware of is 1628350 "Steam Linux Runtime - Sniper") have changed their
['apps'][id]['manifests'][branch]
from a plain manifest ID (ASCII decimal string) to a key/value dictionary with membersgid
,size
anddownload
, causingCDNClient.get_manifests
to crash.Steps to Reproduce the behavior
Run https://gist.github.com/smcv/8430646f3cf5e502711ddf3ea620eaea with
--interactive
. You might need a Steam account that has added 1628350 "Steam Linux Runtime - Sniper" to the Steam library - it's free, and is used by Proton 8.0.Expected behavior
The script can download and display
VERSION.txt
from each branch of each of the Steam Linux Runtime depots.Screenshots
For 1391110 "Steam Linux Runtime - Soldier" my script is still working:
but for 1628350 "Steam Linux Runtime - Sniper" it now crashes:
Versions Report
python -m steam.versions_report
(Run python -m steam.versions_report and paste the output below)The text was updated successfully, but these errors were encountered: