You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Rossen Georgiev 90ae61b79e added GC proxy object 9 years ago
steam added GC proxy object 9 years ago
tests made crypto module py3 compatible 10 years ago
vcr added methods for resolving community urls 10 years ago
.coveragerc added .coveragerc 10 years ago
.gitignore added steam client protobufs 10 years ago
.scrutinizer.yml test with travis + tox 10 years ago
.travis.yml test with travis + tox 10 years ago
LICENSE textwrap LICENSE; tweaks to README 10 years ago
Makefile added GC proxy object 9 years ago
README.rst added methods for resolving community urls 10 years ago
protobuf_list.txt added GC proxy object 9 years ago
requirements.txt updated requirements 10 years ago
setup.py updated requirements 10 years ago
tox.ini remove unneeded dep in tox.init 10 years ago

README.rst

|pypi| |license| |coverage| |scru| |master_build|

Module for interacting with various Steam_ features. Install with ``pip install steam``.

WebAPI
------

Wrapper around `Steam Web API`_. Requires `API Key`_. Upon initialization the
instance will fetch all available interfaces from the API and populate the namespace.
What interfaces are availability depends on the ``key``.

.. code:: python

>>> from steam import WebAPI
>>> api = WebAPI(key="<your api key>")

# instance.<interface>.<method>
>>> api.ISteamWebAPIUtil.GetServerInfo()
>>> api.call('ISteamWebAPIUtil.GetServerInfo')
{u'servertimestring': u'Sun Jul 05 22:37:25 2015', u'servertime': 1436161045}

>>> api.ISteamUser.ResolveVanityURL(vanityurl="valve", url_type=2)
>>> api.call('ISteamUser.ResolveVanityURL', vanityurl="valve", url_type=2)
{u'response': {u'steamid': u'103582791429521412', u'success': 1}}

# call a specific version of the method
>>> api.ISteamUser.ResolveVanityURL_v1(vanityurl="valve", url_type=2)
>>> api.call('ISteamUser.ResolveVanityURL_v1', vanityurl="valve", url_type=2)

It's not necessary to provide the key when calling any interface method.
``key``, ``format``, ``raw``, ``http_timeout`` parameters can be specified on ``WebAPI`` to affect
all method calls, or when calling a specific method.
Some methods have parameters which need to be a ``list``.
Trying to call nonexistent method will raise an ``AttributeError``.

Supported formats by web api are: ``json`` (default), ``vdf``, ``xml``
The response will be deserialized using the appropriate module unless ``raw`` is
``True``.

.. code:: python

>>> api.ISteamUser.ResolveVanityURL.__doc__ # method doc
"""
ResolveVanityURL (v0001)

Parameters:
key string required
- access key
url_type int32 optional
- The type of vanity URL. 1 (default): Individual profile, 2: Group, 3: Official game group
vanityurl string required
- The vanity URL to get a SteamID for

"""

# or calling doc() will print it
>>> api.ISteamUser.ResolveVanityURL.doc() # method doc
>>> api.ISteamUser.doc() # interface and all methods
>>> api.doc() # all available interfaces


Checkout the wiki for a `list of the currently available API interfaces`_.


SteamID
-------

.. code:: python

>>> from steam
>>> from steam import SteamID

>>> SteamID()
SteamID(id=0, type='Invalid', universe='Invalid', instance=0)

>>> SteamID(12345) # accountid
>>> SteamID('12345')
>>> SteamID('STEAM_1:1:6172') # steam2
SteamID(id=12345, type='Individual', universe='Public', instance=1)

>>> SteamID(103582791429521412) # steam64
>>> SteamID('103582791429521412')
>>> SteamID('[g:1:4]') # steam3
SteamID(id=4, type='Clan', universe='Public', instance=0)

# A Steam community url can be resolved using steamid module
>>> steam.steamid.from_url('https://steamcommunity.com/id/drunkenf00l')
>>> steam.steamid.from_url('http://steamcommunity.com/profiles/76561197968459473')
SteamID(id=8193745, type='Individual', universe='Public', instance=1)
>>> steam.steamid.steam64_from_url('http://steamcommunity.com/profiles/76561197968459473')
'76561197968459473'

>>> group = SteamID('[g:1:4]')
>>> group.id # accountid
4
>>> group.as_32 # accountid
4
>>> group.as_64
103582791429521412
>>> str(group)
'103582791429521412'
>>> group.as_steam2 # only works for 'Individual' accounts
'STEAM_1:0:2'
>>> group.as_steam3
'[g:1:4]'
>>> group.community_url
'https://steamcommunity.com/gid/103582791429521412'


.. _Steam: https://store.steampowered.com/
.. _Steam Web API: https://developer.valvesoftware.com/wiki/Steam_Web_API
.. _API Key: http://steamcommunity.com/dev/apikey
.. _list of the currently available API interfaces: https://github.com/ValvePython/steam/wiki/web-api

.. |pypi| image:: https://img.shields.io/pypi/v/steam.svg?style=flat&label=latest%20version
:target: https://pypi.python.org/pypi/steam
:alt: Latest version released on PyPi

.. |license| image:: https://img.shields.io/pypi/l/steam.svg?style=flat&label=license
:target: https://pypi.python.org/pypi/steam
:alt: MIT License

.. |coverage| image:: https://img.shields.io/coveralls/ValvePython/steam/master.svg?style=flat
:target: https://coveralls.io/r/ValvePython/steam?branch=master
:alt: Test coverage

.. |scru| image:: https://scrutinizer-ci.com/g/ValvePython/steam/badges/quality-score.png?b=master
:target: https://scrutinizer-ci.com/g/ValvePython/steam/?branch=master
:alt: Scrutinizer score

.. |master_build| image:: https://img.shields.io/travis/ValvePython/steam/master.svg?style=flat&label=master
:target: http://travis-ci.org/ValvePython/steam
:alt: Build status of master branch