krelly / ruby-steam

Steam is a ruby gem (~1k LOC) designed to interoperate with Valve's Steam network

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Steam is a ruby gem (~1k LOC) designed to interoperate with Valve's Steam network.

It supports Steam Guard and CAPTCHAs.

Inspired by SteamKit and its javascript ports: Node-steam and SteamUser

Features

  • Allows interaction with the Steam network via the Steam client protocol (using reverse-engineered Steam client api) - check Steam::Client class
  • It includes a class to work with Steam Web API (Steam::WebApi)
  • Sending tradeoffers (check examples/send_offer.rb)
  • Getting Steamcommunity market stats for item (Steam::Market)
  • SteamID conversion (Steam::SteamID)

Getting started

  1. Navigate into gem dir and build it: gem build steam
  2. Require built gem in Gemfile

Usage

Check examples folder for details

You need to provide your Steam account credentials in examples/config/config.yml to actually run these examples.

What is currently done:

  • Web-Login (cookies) + mobile TOTP code generation
  • class to interact with Web API
  • Steam client protocol(protobuf)
    • Extracting Protobuf definitions and Enums
    • Websocket connection and package decoding
    • Selecting best server to connect (closest and the least loaded)
    • Subscribing to custom Protobuff messages
  • Trading:
    • Sending/canceling tradeoffer
    • Accepting offers send to us
    • Mobile-confirmation
    • Getting counts of pending and new trade offers (not realtime, in TODO)
    • Offer details, getting inventory
  • Community market: in progress
    • price_history (all items sold history)
    • price overview (lowest price, volume, median calculated by steam )
  • Account actions
    • creation
    • adding and confirming(via SMS) phone number

Useful links

Some info about steam items: https://github.com/krelly/ruby-steam/wiki

Unofficial Steam Web API Documentation: https://lab.xpaw.me/steam_api_documentation.html

About

Steam is a ruby gem (~1k LOC) designed to interoperate with Valve's Steam network

License:GNU Affero General Public License v3.0


Languages

Language:Ruby 53.5%Language:HTML 45.6%Language:Batchfile 0.9%