This IS heavily work-in-progress. Chances are there's nothing to see for you here.
This project, more or less, started with me having some gripes with a much more famous idling bot based on SteamKit, so I figured I'd just make my own.
Currently, the main goals are to make a framework to "deal with Steam" in various way, particularly stuff that I want to automate for myself. Currently, higher level features include (this list might not be up to date):
There's low level stuff, of course:
so in theory you can make your own features if you wanted to.
This is a one-man spare-time project, so progress is slow and mostly based on what I want to do.
Note that a bot is in a separate repository: https://github.com/Christian-Stieber/Christians-Steam-Bot
If, for whatever reaason, you are stupid enough to want to try this: while the code is meant to be portable, there are a couple of platform-specific items such as getting information about the current machine. Code might not exist yet for all platforms, and if it does exist then it certainly hasn't been tested.
Currently, I'm developing this on a Debian Linux box.
This list of required packages might be incomplete:
g++
(at least version 12)libboost-all-dev
(at least 1.81)cmake
libprotobuf-dev
protobuf-compiler
libssl-dev
libsystemd-dev
libzstd-dev
libbz2-dev
liblzma-dev
Visual Studio 2022 Community Edition should be able to build things out of the box.
I'm not actively supporting standalone builds of just the framework; please refer to Christians-Steam-Bot.
The bot stores data in %LOCALAPPDATA%\Christian-Stieber\Steam-framework
or ~/.Christians-Steam-Framework
. For now, these are unencrypted, but I'll change that eventually.
You'll find a logfile there as well -- but I'm not sure whether it's properly flushed on Windows.
In addition to libraries that are used through packages, the framework includes some other 3rd party code in its source tree:
"Inspirations" on how the Steam stuff works was taken from \ https://github.com/SteamRE/SteamKit \ https://github.com/JustArchiNET/ArchiSteamFarm
SteamKit in particular has also provided me with lists of enum values to copy-paste.