Git Product home page Git Product logo

sdroid's Introduction

SDroid

SDroid is a framework for designing and running custom bots for Steam network capable of trading and managing the Steam Account they are connected to.

Based on geel9's SteamAuth and Jessecar96's SteamBot projects.

Components

SDroid.SteamWeb

SDroid.SteamWeb is a C# library that provides Steam web login, access and WebAPI functionalities.

Click here to read more about this library.

This library is available as a NuGet package here.

SDroid.SteamMobile

SDroid.SteamMobile is a C# library that provides Steam Mobile and Mobile Authenticator functionalities.

Click here to read more about this library.

This library is available as a NuGet package here.

SDroid.SteamTrade

SDroid.SteamTrade is a C# library that provides Steam trading and inventory retrieval functionalities.

Click here to read more about this library.

This library is available as a NuGet package here.

SDroid

SDroid in the highest level library in this project that aims to provides developers with an easier path to design, develop and deploy a custom bot for the Steam Network.

This readme file contains information about the types available in this library and links to some simple sample bots developed with it.

This library is available as a NuGet package here.

Help me fund my own Death Star

--OR--

You can always donate your time by contributing to the project or by introducing it to others.

Classes

Followings are the classes available in this library along with their primary responsibility.

SteamBot

SteamBot is an abstract class allowing developers to create a simple Steam Bot with as little code as possible.

SteamKitBot

SteamKitBot is an abstract class extending the SteamBot type which aims to allow developers to make a Steam Bot with access to the Steam Network through the SteamKit2 library with as little code as possible.

Interfaces

Followings are the classes available in this library along with their primary responsibility.

IAuthenticatorBot

IAuthenticatorBot is an interface that can be added to a SteamBot child class that allows the login process to use the code generated by the authenticator to login into the Steam Website or Network.

The process of linking an authenticator to the account should be still handled by the developer. However, a bot extending the SteamBot and implementing the IAuthenticatorBot will also be notified if a new authenticator confirmation becomes available.

An IAuthenticatorBot bot automatically logs in using the mobile endpoints. This also allows for a greater session validity.

ITradeBot

ITradeBot is an interface that can be added to a SteamBot child class that automatically initializes an instance of TradeManager after login and notifies the bot extending the SteamBot and implementing the ITradeBot of its events.

ITradeOfferBot

ITradeOfferBot is an interface that can be added to a SteamBot child class that automatically initializes an instance of TradeOfferManager after login and notifies the bot extending the SteamBot and implementing the ITradeOfferBot of its events.

Samples

There are three sample bots available as part of the SDroidTest project:

AuthenticatorBot

AuthenticatorBot is a bot extending the SteamBot and implementing the IAuthenticatorBot interface that asks for a "maFile" or a "maFile2" to deserialize an authenticator as part of the login process. This bot also gets notifications regarding new authenticator confirmations and can accept or reject these confirmations from the terminal.

Read the code being this bot by clicking here or by compiling the SDroidTest project.

SteamKitBot

SteamKitBot is a bot extending the SteamKitBot type and connects to the Steam Network, logs in, changes its online status, gets notifications regarding the account settings and wallet information as well as new chat messages.

Chat responses can be sent from the terminal to all friends.

Read the code being this bot by clicking here or by compiling the SDroidTest project.

TradeOfferBot

TradeOfferBot is a bot extending the SteamBot and implementing the ITradeofferBot interface that login in and gets notifications regarding changes in trade offers as well as retrieving bot's inventory on login.

Incoming trade offers can be accepted or rejected from the terminal.

Read the code being this bot by clicking here or by compiling the SDroidTest project.

Disclaimer

Please note that this library created for research and educational propose only and there is no guarantee for it to work or function properly.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

License

The MIT License (MIT)

Copyright (c) 2018-2020 Soroush Falahati

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

sdroid's People

Contributors

94m3k1n9 avatar blueraja avatar bottswana avatar cwhelchel avatar falahati avatar fjch1997 avatar gabrielmtzcarrillo avatar gamemaster1494 avatar geel9 avatar greggameplayer avatar igeligel avatar jessecar96 avatar kazhuravlev avatar kilpkonn avatar lagg avatar laggingpyro avatar lazy1 avatar madbender avatar mates1500 avatar noobgam avatar paulo-santana avatar philipp15b avatar scholtzm avatar shravan2x avatar stormreaper avatar teliosdev avatar thesandvichisaliar avatar waylaidwanderer avatar wildcard65 avatar yogurtfp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

sdroid's Issues

webSession.DoLogin()

On second login attempt, 2FA code is ready, but the property of Requirement of 2FA in WebLogin is still false.
The websession returns with null's.
I can't set requirement to true, because of protected setter.
Is there any other ways to login with 2FA?

MobileLogin Proxy

Please tell me how to set up a proxy for MobileLogin to do DoLogin

Public WebAPI Access - no need for WebSession

Loving this library - very well written, great understanding of C#!

I was looking to get a users inventory for a logged in user on the client, and whilst I intend to use this for bots (more learning exercise), I noticed you have all the models for the UserInventory so thought why no re-use, but....I am forced to use web session object.

Be great if you extended the API so that can make public Steam web api calls that don't require authentication or a web session object. All the plumbing is there and would make this library even more powerful!

Web session problems

await webLogin.DoLogin(loginCredentials); return NULLs. I also receive 401 unauthorized error when sending, accepting trade offers

HTTP/HTTPS redirect error

Hi, I'm trying to use your library to write a program that automatically send and accepts trade offers. But when I try to get mobile confirmations I get this error on this line:
var confirmations = await authenticator.FetchConfirmations();
Error eng:
Cannot handle redirect from HTTP/HTTPS protocols to other dissimilar ones.

Other functions work good.

error

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.