-
Notifications
You must be signed in to change notification settings - Fork 61
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
Index files from Steam #2385
Index files from Steam #2385
Conversation
…ced a .Hashes abstraction library for hash value types. Moved Chunked streams into the IO abstractions library
/// <summary> | ||
/// The OSes that the depot is available on. | ||
/// </summary> | ||
public required string[] OsList { get; init; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we have the OS list, we could also get the languages of a depot.
/// <summary> | ||
/// The size of the downloaded files | ||
/// </summary> | ||
public required Size Size { get; init; } | ||
|
||
/// <summary> | ||
/// The size of the files on the CDN | ||
/// </summary> | ||
public required Size DownloadSize { get; init; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are these two sizes different?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Presumably one is compressed, other is decompressed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DownloadSize is compressed, Size is size-on-disk (uncompressed).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To be consistent, we should name these properties CompressedSize
and DecompressedSize
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm going to veto this one, we're going to process this data and import it into a MnemonicDB database before pulling it into the app, so the names here aren't the ones we'll be using anywhere in the app, instead they're used when we're talking directly to SteamAPIs, and it's important that we don't manipulate this data too much or try to adapt it to some other format.
/// <summary> | ||
/// The size of the file, compressed | ||
/// </summary> | ||
public Size Size { get; init; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The other types have both compressed and decompressed sizes, for consistency this should be named CompressedSize
and we should add DecompressedSize
if we have it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm matching what SteamKit provides here, I don't mind changing it, but then we'd be out-of-sync with the "official" source
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd be happy if we have something that is consistent internally.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See the comment on the other section
src/Networking/NexusMods.Networking.Steam/NexusMods.Networking.Steam.csproj
Outdated
Show resolved
Hide resolved
<Project Sdk="Microsoft.NET.Sdk"> | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be missing an import of directory.props.
Co-authored-by: erri120 <[email protected]>
Co-authored-by: erri120 <[email protected]>
….Steam.csproj Co-authored-by: erri120 <[email protected]>
Co-authored-by: erri120 <[email protected]>
Co-authored-by: erri120 <[email protected]>
Co-authored-by: erri120 <[email protected]>
Co-authored-by: erri120 <[email protected]>
Co-authored-by: erri120 <[email protected]>
Co-authored-by: erri120 <[email protected]>
…er.cs Co-authored-by: erri120 <[email protected]>
Adds a CLI verb for indexing game files for use in the
game-hashes
repo. This PR also does the followingMultiHasher
for hashing a stream effiently into all the various hash formats we would needHow to Test:
CanDownloadProuctInfo
by default this test is set to skip.Alternatively:
index-steam-app
verb