Skip to content

ArchiSteamFarm V5.3.0.3

Compare
Choose a tag to compare
@JustArchi-ArchiBot JustArchi-ArchiBot released this 25 Aug 19:16
5.3.0.3
1e03077

Changelog

This is a major release with breaking changes for plugin creators (and therefore third-party ASF plugins), usual release for the users.

Changes since V5.2.8.4:

  • ASF's internal HTML parsing module was rebased on top of new major version. This is pretty big update, and while we thoroughly tested this against regressions, please let us know if you find anything unusual not working as expected (@JustArchi).
  • Added workaround against apparently-not-so-rare Steam issue which caused ASF to cache invalid packages data. ASF will now cache Steam packages data for no longer than a week, so removing ASF.db manually should no longer be required in any circumstance (@JustArchi).
  • Enhanced addlicense command to recognize Fail/AlreadyPurchased and Fail/RateLimited (subIDs only for the second). ASF will now skip requests to Steam if it determines that it already owns given apps/packages, which makes it possible to supply a huge "activation list", and activate only what's needed from it, without tripping rate limits on Steam side (@JustArchi).
  • Latest ASF-ui with new features, improvements and bugfixes (@MrBurrBurr).
  • Updated localization provided by our community (@JustArchi-ArchiBot).
  • Usual amount of other core improvements, optimizations and bugfixes (@JustArchi).

Plugin creators

  • AngleSharp.XPath was updated to new major version 2.0 which has breaking changes. ASF's code, especially public API in core utilities was adapted to them. All plugins that are parsing HTML will likely require additional fixes to work with this release. You can find our detailed changelog further below (@JustArchi).
  • ASF.GlobalDatabase.PackagesDataReadOnly changed its signature, you'll need to recompile if using it, although usage remains the same (@JustArchi).

The below helpful section concerns you if you're parsing HTML in your plugins, you can skip it if you don't.

  • XPath ending with /@attr no longer returns parent IElement node(s) with attributes inside, but IAttr attribute nodes themselves. This is the biggest change, as previously working xpaths may simply no longer work or result in something else than you expect. I've confirmed that this is expected breaking change, against my initial impression that it shouldn't be.
  • SelectNodes<T>() and SelectSingleNode<T>() helper APIs use generics now, so you can also more easily extract and/or cast other types of nodes.
  • SelectNodes() now returns IList<INode> instead of IEnumerable<IElement>. Use SelectNodes<IElement>() if you need previous functionality.
  • SelectSingleNode() now returns INode? instead of IElement?. Use SelectSingleNode<IElement>() if you need previous functionality.
  • SelectSingleElementNode() no longer exists, use SelectSingleNode<IElement>() instead.
  • Consider using SelectNodes<IAttr>() and SelectSingleNode<IAttr>() when you need to extract attributes, rather than selecting IElement nodes and calling GetAttribute() on them. As long as you're not extracting more attributes than one, you can simply append /@attr to your XPath and select IAttr node(s) directly. It's easier and more convenient that way, but old style will work too, and might be more appropriate when you're accessing 2+ attributes at once from a single IElement node.

For more information including example of changes done across ASF, visit the commit itself. I'm not that much happy doing those breaking changes, because old style worked fine and there was no "problem" with it, but I went with upstream changes and adapted ASF to them rather than sticking with old unsupported release - this warrants a major B ASF version bump. While pretty annoying, those changes shouldn't require that much effort, as across whole ASF there were just a dozen of places or so.

Personally I'm sorry for causing you hassle, but as a project maintainer I don't want to stick with old, unsupported version for the sake of compatibility, as further described in deprecation section. Since I can't really support both versions at once in ASF, I've decided to upgrade to new one as part of major B version bump.


Support

ASF is available for free, this release was made possible thanks to the people that decided to support the project. If you're grateful for what we're doing, please consider a donation. Developing ASF requires massive amount of time and knowledge, especially when it comes to Steam (and its problems). Even $1 is highly appreciated and shows that you care. Thank you!

GitHub sponsor Patreon support Crypto donate PayPal.me donate PayPal donate Revolut donate Steam donate