asyncsteampy 0.1.3

Creator: bradpython12

Last updated:

Add to Cart

Description:

asyncsteampy 0.1.3

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
Login&Init
AsyncIO
Proxy support
Tests


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(logout=True)

If you end your operations, ⚠️ keep in mind, you always need to close your async_steam_client. This will
do logout (if logout=True)
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

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.