* Use IAsyncEnumerable for getting inventory
* Don't suppress exceptions, catch them in ResponseUnpackBoosters
* Make sure we don't get duplicate assets during unpack
* Rewrite inventory filters to LINQ methods
* Add handling duplicate items, mark GetInventory as obsolete, catch exceptions from getting inventory errors
* Mark GetInventoryEnumerable as NotNull, don't check received inventory for null, use comparison with nullable values
* Use specific types of exceptions, log exceptions using LogGenericWarningException, handle IOException separately (without logging the exception), remove default null value
* Use old method signature for obsolete API
* Use error level for generic exceptions
* Fix wantedSets not being used
* Correct exception types, rename function
* Replace exception types
* Make SendTradeOfferAsync that accepts Func<Steam.Asset, bool> as a filter
* Fix missing targetSteamID in ResponseTransferByRealAppIDs
* Make parameter name readable
* Rename method
* add MarkBotsMessagesAsRead
* added MarkTradeMessagesAsRead; made MarkBotsMessagesAsRead work in group chats too
* requested changes
* why do you hate me so much?
* requested changes
* Fix wallet code redeeming due to Steam changes
* Revert "Fix wallet code redeeming due to Steam changes"
This reverts commit a993b26e
* Add AssumeWalletKeyOnBadActivationCode parameter to RedeemingPreferences, add according flags for redeem^
- Detect if SteamParental is active
- Verify if the code supplied by user is valid
- If the code is not valid or not supplied, generate it automatically (through local bruteforcing, pending further speed enhancements)
It's really sad seeing how this is possible, Valve seriously, you couldn't dedicate one single request in the backend to verify that? You could easily implement rate-limiting on invalid attempts and make parental more secure, but with the current implementation it's a security joke.
* Split steam messages with respect to newlines
* minor fixes and code style
* handle group messages too + code style
* optimize fallback
* dumbest changes in the history of the Earth
* add newline before ...
* handle edge cases properly
Previously we had this awful "assume rate limit if invalid password" because Steam used to do this falsely for rate limits as well.
Since I can no longer reproduce this false behaviour with latest network, I assume that Valve corrected whatever they had broken back then and the network will properly tell us RLE in RLE condition, and invalid password when account credentials are invalid.
There is still case for invalid account credentials when login key is invalid, and we should still handle that one gracefully.