Simple library to trade and interact with steam market, webapi, guard
Project description
Asyncsteampy
This library is a soft fork of bukson/steampy ⚠ and created only to provide asynchronous methods and proxies support.
Docs, examples you can read from original README. Differences of usage and new features listed below 📖
Must work with python 3.6 and above like origin, but tested only on
3.10
⚡
Navigation
Installation
pip install asyncsteampy
pipenv install asyncsteampy
poetry add asyncsteampy
Login&Init
Now you don't need to pass username
, password
, steamguard
args to login
method, you can do this in constructor.
from asyncsteampy.client import SteamClient as AsyncSteamClient
async_steam_client = AsyncSteamClient('MY_USERNAME', 'MY_PASSWORD', 'PATH_TO_STEAMGUARD_FILE/STEAMGUARD_DICT',
api_key="API_KEY")
Instead of passing str
path or pathlib.Path
to steamguard.txt
file or even json serialized string you can just use
dict object:
steamguard = {
"steamid": "YOUR_STEAM_ID_64",
"shared_secret": "YOUR_SHARED_SECRET",
"identity_secret": "YOUR_IDENTITY_SECRET",
}
AsyncIO
All methods that require connection to steam network now have asyncio support (it
uses aiohttp) and are asynchronous : client
, market
, chat
.
from asyncsteampy.client import SteamClient as AsyncSteamClient
async_steam_client = AsyncSteamClient('MY_USERNAME', 'MY_PASSWORD', 'PATH_TO_STEAMGUARD_FILE/STEAMGUARD_DICT',
api_key="API_KEY")
await async_steam_client.login()
buy_order_id = "some_buy_order_id"
response = await async_steam_client.market.cancel_buy_order(buy_order_id)
# do other async work
await async_steam_client.close()
If you end your operations, ⚠️ keep in mind
, you always need to close your async_steam_client
. This will do logout
and close aiohttp
session properly. Also,
you can await async_steam_client.logout()
without closing session if you need this for some reason.
Async context manager usage example:
from asyncsteampy.client import SteamClient as AsyncSteamClient
async with AsyncSteamClient('MY_USERNAME', 'MY_PASSWORD', 'PATH_TO_STEAMGUARD_FILE/STEAMGUARD_DICT',
api_key="API_KEY") as async_steam_client:
await async_steam_client.do_what_you_need()
There you don't need to call close
, async context manager do it automatically when execution passes the block of code.
Proxy support
If your proxy type is socks4/5 you should look at this small but precious
library aiohttp-socks, if proxy type http/https, or you don't
like aiohttp-socks
you can use aiohttp-proxy instead.
import aiohttp
from aiohttp_socks import ProxyConnector
from asyncsteampy.client import SteamClient as AsyncSteamClient
connector = ProxyConnector.from_url('proxy_type://proxy_url_with_or_no_auth')
session_with_proxy = aiohttp.ClientSession(connector=connector)
# Finally, pass session object in AsyncSteamClient
async_steam_client = AsyncSteamClient(..., session=session_with_proxy)
async with AsyncSteamClient(..., session=session_with_proxy) as async_steam_client:
...
Tests
To run tests clone repo, install with dev dependencies
poetry install
Create env variables listed in tests/data and run pytest
from project dir:
pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for asyncsteampy-0.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d425fa3e604575eaedef398997df2a395d0aa388216862430a131849344c3925 |
|
MD5 | abc12849cd5b6a6879a930f2ffaaa39d |
|
BLAKE2b-256 | b0f47cc7b0738c0859dad876c7caf806e0d15506b934b4c6e17a0570ce7eac5d |