# SteamTrader-Wrapper
![PyPI - Downloads](https://img.shields.io/pypi/dm/steam-trader)
![PyPI - License](https://img.shields.io/pypi/l/steam-trader)
![PyPI - Status](https://img.shields.io/pypi/status/steam-trader)
⚠️ Это неофициальная библиотека.
### Содержание
- [Введение](#введение)
- [Получение токена](#получение-токена)
- [Установка](#установка)
- [Начало работы](#начало-работы)
- [Примеры](#примеры)
- [Документация](#документация)
- [Лицензия](#лицензия)
### Введение
Эта библиотека представляет Python обёртку для REST и WEB API [Steam-Trader](https://steam-trader.com/).
Она совместима с версиями Python 3.12+ и поддерживает работу как с синхронным, так и с асинхронным (asyncio) кодом.
В дополнение к реализации чистого API данная библиотека имеет ряд объектов высокого уровня и логирование,
дабы сделать разработку клиентов и скриптов простой и понятной. Документация была написана исходя из API документации сайта.
#### Получение токена
Токен можно получить на сайте перейдя на вкладку [API](https://steam-trader.com/api/). В коде указывается один раз при создании клиента.
#### Получение sessionid
Чтобы получить ID сессии, нужно зарегистрироваться на сайте, зайти в панель разработчика браузера, перейти к файлам куки и скопировать значение ключа sid.
Учтите, что это значение сбрасывается когда вы выходите из своего аккаунта.
### Установка
Вы можете установить или обновить Steam-Trader API с помощью команды:
```shell
pip install steam-trader
```
Или можете построить билд на основе репозитория:
```shell
git clone https://github.com/Lemon4ksan/SteamTrader-Wrapper
cd SteamTrader-Wrapper
python setup.py install
```
### Начало работы
Приступив к работе, первым делом необходимо создать экземпляр клиента.
```python
from steam_trader.api import Client
client = Client('Ваш токен')
# или
from steam_trader.api import ClientAsync
client = ClientAsync('Ваш токен')
```
Для использования логирования, добавьте эти строчки в свой код. Будет приходить полученный результат всех методов,
а если указать уровень logging.DEBUG, то будут приходить входы и выходы из функций.
```python
import logging
logging.basicConfig(level=logging.INFO)
```
Все результаты запросов на сервер представлены в виде датаклассов, вы можете легко получить их данные используя аттрибуты.
```python
operations_history = client.get_operations_history()
for operation in operations_history.data:
print(operation.type, operation.date)
```
Тайп хинты также указаны, это поможет вашему IDE определять неправильные операции с данными.
Библиотека предусматривает множество возможных ошибок, чтобы вы могли контролировать поведение программы при их возникновении.
Присутствуют константы для игр, которые поддерживает сайт.
```python
from steam_trader.exceptions import Unauthorized, UnknownItem, WrongTradeLink
from steam_trader.constants import TEAM_FORTRESS2_APPID, TF2_CRAFTABLE, DOTA2_RARITY_COMMON
```
### Примеры
Пример скрипта для продажи всего Очищенного металла в инвентаре TF2 с помощью синхронного клиента.
```python
from steam_trader.api import Client
from steam_trader.constants import TEAM_FORTRESS2_APPID
client = Client('Ваш токен')
inventory = client.get_inventory(TEAM_FORTRESS2_APPID)
new_price = client.get_min_prices(1226).market_price - 0.01
for item in inventory.items:
if item.gid == 1226:
client.sell(item.itemid, item.assetid, price=new_price)
```
С помощью get_inventory мы получаем все предметы из инвенторя TF2, которые не находятся в продаже, проходим по каждому,
находим Очищенный металл и выставляем его по цене на копейку меньше рыночной, чтобы быть впереди. Узнать минимальную стоимость предмета можно через get_min_prices.
Пример покупки всех предметов по GID ниже заданной стоимости.
```python
from steam_trader.api import Client
from steam_trader.exceptions import NotEnoughMoney
client = Client('Ваш токен')
max_price = 9.00
gid = 3242
sell_offers = client.get_order_book(gid, mode='sell')
for offer in sell_offers.sell:
if offer[0] < max_price:
for _ in range(offer[1]):
try:
client.buy(gid, 1, offer[0])
except NotEnoughMoney:
exit('Не хватает денег :(')
```
С помощью get_order_book мы получаем все предложения о продаже, проходимся по каждому, если цена предложения меньше нашей максимальной, то мы покупаем все предложения по данной цене.
Также мы используем исключение, если нам не хватит денег на покупку в любой момент.
Использование асинхронного клиента для получения запросов информации большого числа предметов.
```python
import asyncio
from steam_trader.api import ClientAsync
client = ClientAsync('Ваш токен')
gids = [1226, 1402, 3439, 1976, 1984, 1990, 1227, 1205, 1523, 2484, 1524, 1503, 1506, 1220, 1515, 3530, 1745, 1202]
async def main():
async with client:
tasks = [client.get_item_info(gid) for gid in gids]
responses = await asyncio.gather(*tasks)
for response in responses:
print(response)
asyncio.run(main())
```
Благодаря асинхронности, мы отправили все запросы на сервер *одновременно* и получили результат намного быстрее, чем с синхронным клиентом.
Мы не ждём ответа при каждом запросе, а переключаемся на другой. Если вам это не понятно, изучите модуль asyncio.
REST API сайта даёт не полный доступ к его данным. Для некоторых задач необходим WEB функционал.
Например, для получения описаний индивидуальных предметов.
```python
from steam_trader.web import WebClient
with WebClient('Ваш токен') as client:
item_info = client.get_item_info(1523)
for offer in item_info.sell_offers:
print(item_info.descriptions[offer.itemid])
```
### Документация
Полную документацию можно найти здесь: https://lemon4ksan.github.io/steam-trader/
### Внесение своего вклада в проект
Внесение своего вклада максимально приветствуется!
Вы можете помочь, сообщив о [баге](https://github.com/Lemon4ksan/SteamTrader-Wrapper/issues/new?assignees=&labels=bug&projects=&template=bug-report.md&title=) или [предложив](https://github.com/Lemon4ksan/SteamTrader-Wrapper/issues/new?assignees=&labels=feature-request&projects=&template=feature-request.md&title=) новый функционал.
Данная библиотека будет переодически обновляться и дополняться.
### Лицензия
См. Оригинал на английском [LICENSE](https://github.com/Lemon4ksan/SteamTrader-Wrapper/blob/master/LICENSE)
Разрешается повторное распространение и использование как в виде исходного кода, так и в двоичной форме, с изменениями или без, при соблюдении следующих условий:
- При повторном распространении исходного кода должно оставаться указанное выше уведомление об авторском праве, этот список условий и последующий отказ от гарантий.
- При повторном распространении двоичного кода должна сохраняться указанная выше информация об авторском праве, этот список условий и последующий отказ от гарантий в документации и/или в других материалах, поставляемых при распространении.
- Ни имя автора, ни имена участников не могут быть использованы в качестве поддержки или продвижения продуктов, основанных на этом ПО без предварительного письменного разрешения.
ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ СТОРОНАМИ «КАК ОНА ЕСТЬ» БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. НИ В КОЕМ СЛУЧАЕ НИ ОДИН ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, КОТОРОЕ МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, КАК БЫЛО СКАЗАНО ВЫШЕ, НЕ НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, СПЕЦИАЛЬНЫЕ ИЛИ ПОСЛЕДОВАВШИЕ УБЫТКИ, ВСЛЕДСТВИЕ ИСПОЛЬЗОВАНИЯ ИЛИ НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ПОТЕРЕЙ ДАННЫХ, ИЛИ ДАННЫМИ, СТАВШИМИ НЕПРАВИЛЬНЫМИ, ИЛИ ПОТЕРЯМИ, ПРИНЕСЕННЫМИ ИЗ-ЗА ВАС ИЛИ ТРЕТЬИХ ЛИЦ, ИЛИ ОТКАЗОМ ПРОГРАММЫ РАБОТАТЬ СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ), ДАЖЕ ЕСЛИ ТАКОЙ ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ.
Raw data
{
"_id": null,
"home_page": "https://github.com/Lemon4ksan/SteamTrader-Wrapper",
"name": "steam-trader",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "python steam trader api wrapper library client \u043f\u0438\u0442\u043e\u043d \u043f\u0430\u0439\u0442\u043e\u043d \u0441\u0442\u0438\u043c \u0442\u0440\u0435\u0439\u0434\u0435\u0440 \u0430\u043f\u0438 \u043e\u0431\u0451\u0440\u0442\u043a\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043a\u043b\u0438\u0435\u043d\u0442",
"author": "Lemon4ksan (Bananchiki)",
"author_email": "senya20151718@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/c6/61/6fc756ceb319e74ea9b0e2ad51764e27ef887c829bf5c54869f5165d7bac/steam-trader-0.4.0.tar.gz",
"platform": null,
"description": "# SteamTrader-Wrapper\n![PyPI - Downloads](https://img.shields.io/pypi/dm/steam-trader)\n![PyPI - License](https://img.shields.io/pypi/l/steam-trader)\n![PyPI - Status](https://img.shields.io/pypi/status/steam-trader)\n\n\u26a0\ufe0f \u042d\u0442\u043e \u043d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430.\n\n### \u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\n - [\u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435](#\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435)\n - [\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430](#\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435-\u0442\u043e\u043a\u0435\u043d\u0430)\n - [\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430](#\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430)\n - [\u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b](#\u043d\u0430\u0447\u0430\u043b\u043e-\u0440\u0430\u0431\u043e\u0442\u044b)\n - [\u041f\u0440\u0438\u043c\u0435\u0440\u044b](#\u043f\u0440\u0438\u043c\u0435\u0440\u044b)\n - [\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f](#\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f)\n - [\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f](#\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u044f)\n\n\n### \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435\n\n\u042d\u0442\u0430 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 Python \u043e\u0431\u0451\u0440\u0442\u043a\u0443 \u0434\u043b\u044f REST \u0438 WEB API [Steam-Trader](https://steam-trader.com/).\n\n\u041e\u043d\u0430 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u0430 \u0441 \u0432\u0435\u0440\u0441\u0438\u044f\u043c\u0438 Python 3.12+ \u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u0430\u043a \u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c, \u0442\u0430\u043a \u0438 \u0441 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c (asyncio) \u043a\u043e\u0434\u043e\u043c.\n\n\u0412 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0447\u0438\u0441\u0442\u043e\u0433\u043e API \u0434\u0430\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u0440\u044f\u0434 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \n\u0434\u0430\u0431\u044b \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0439. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0431\u044b\u043b\u0430 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0438\u0441\u0445\u043e\u0434\u044f \u0438\u0437 API \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0441\u0430\u0439\u0442\u0430.\n\n#### \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430\n\n\u0422\u043e\u043a\u0435\u043d \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 [API](https://steam-trader.com/api/). \u0412 \u043a\u043e\u0434\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u0440\u0430\u0437 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430.\n\n#### \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 sessionid\n\n\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c ID \u0441\u0435\u0441\u0441\u0438\u0438, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u0441\u0430\u0439\u0442\u0435, \u0437\u0430\u0439\u0442\u0438 \u0432 \u043f\u0430\u043d\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430, \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u043a\u0443\u043a\u0438 \u0438 \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0430 sid.\n\u0423\u0447\u0442\u0438\u0442\u0435, \u0447\u0442\u043e \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u0435 \u0438\u0437 \u0441\u0432\u043e\u0435\u0433\u043e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430.\n\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c Steam-Trader API \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b:\n\n```shell\npip install steam-trader\n```\n\n\u0418\u043b\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0431\u0438\u043b\u0434 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f:\n\n```shell\ngit clone https://github.com/Lemon4ksan/SteamTrader-Wrapper\ncd SteamTrader-Wrapper\npython setup.py install\n```\n\n### \u041d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b\n\n\u041f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0432 \u043a \u0440\u0430\u0431\u043e\u0442\u0435, \u043f\u0435\u0440\u0432\u044b\u043c \u0434\u0435\u043b\u043e\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043a\u043b\u0438\u0435\u043d\u0442\u0430.\n\n```python\nfrom steam_trader.api import Client\n\nclient = Client('\u0412\u0430\u0448 \u0442\u043e\u043a\u0435\u043d')\n\n# \u0438\u043b\u0438\n\nfrom steam_trader.api import ClientAsync\n\nclient = ClientAsync('\u0412\u0430\u0448 \u0442\u043e\u043a\u0435\u043d')\n```\n\n\u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u044d\u0442\u0438 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0432 \u0441\u0432\u043e\u0439 \u043a\u043e\u0434. \u0411\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u0441\u0435\u0445 \u043c\u0435\u0442\u043e\u0434\u043e\u0432, \n\u0430 \u0435\u0441\u043b\u0438 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0443\u0440\u043e\u0432\u0435\u043d\u044c logging.DEBUG, \u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u0432\u0445\u043e\u0434\u044b \u0438 \u0432\u044b\u0445\u043e\u0434\u044b \u0438\u0437 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.\n\n```python\nimport logging\n\nlogging.basicConfig(level=logging.INFO)\n```\n\n\u0412\u0441\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u0432 \u0432\u0438\u0434\u0435 \u0434\u0430\u0442\u0430\u043a\u043b\u0430\u0441\u0441\u043e\u0432, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u0430\u0442\u0442\u0440\u0438\u0431\u0443\u0442\u044b.\n\n```python\noperations_history = client.get_operations_history()\nfor operation in operations_history.data:\n print(operation.type, operation.date)\n```\n\n\u0422\u0430\u0439\u043f \u0445\u0438\u043d\u0442\u044b \u0442\u0430\u043a\u0436\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b, \u044d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u0448\u0435\u043c\u0443 IDE \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\n\n\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u043f\u0440\u0435\u0434\u0443\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043e\u043a, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0438 \u0438\u0445 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438.\n\u041f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u0434\u043b\u044f \u0438\u0433\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0430\u0439\u0442.\n\n```python\nfrom steam_trader.exceptions import Unauthorized, UnknownItem, WrongTradeLink\nfrom steam_trader.constants import TEAM_FORTRESS2_APPID, TF2_CRAFTABLE, DOTA2_RARITY_COMMON\n```\n\n### \u041f\u0440\u0438\u043c\u0435\u0440\u044b\n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0434\u043b\u044f \u043f\u0440\u043e\u0434\u0430\u0436\u0438 \u0432\u0441\u0435\u0433\u043e \u041e\u0447\u0438\u0449\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0442\u0430\u043b\u043b\u0430 \u0432 \u0438\u043d\u0432\u0435\u043d\u0442\u0430\u0440\u0435 TF2 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430.\n\n```python\nfrom steam_trader.api import Client\nfrom steam_trader.constants import TEAM_FORTRESS2_APPID\n\nclient = Client('\u0412\u0430\u0448 \u0442\u043e\u043a\u0435\u043d')\n\ninventory = client.get_inventory(TEAM_FORTRESS2_APPID)\nnew_price = client.get_min_prices(1226).market_price - 0.01\nfor item in inventory.items:\n if item.gid == 1226:\n client.sell(item.itemid, item.assetid, price=new_price)\n```\n\n\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e get_inventory \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u044b \u0438\u0437 \u0438\u043d\u0432\u0435\u043d\u0442\u043e\u0440\u044f TF2, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0434\u0430\u0436\u0435, \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443, \n\u043d\u0430\u0445\u043e\u0434\u0438\u043c \u041e\u0447\u0438\u0449\u0435\u043d\u043d\u044b\u0439 \u043c\u0435\u0442\u0430\u043b\u043b \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u043f\u043e \u0446\u0435\u043d\u0435 \u043d\u0430 \u043a\u043e\u043f\u0435\u0439\u043a\u0443 \u043c\u0435\u043d\u044c\u0448\u0435 \u0440\u044b\u043d\u043e\u0447\u043d\u043e\u0439, \u0447\u0442\u043e\u0431\u044b \u0431\u044b\u0442\u044c \u0432\u043f\u0435\u0440\u0435\u0434\u0438. \u0423\u0437\u043d\u0430\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u044c \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u0430 \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 get_min_prices.\n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u043f\u043e\u043a\u0443\u043f\u043a\u0438 \u0432\u0441\u0435\u0445 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432 \u043f\u043e GID \u043d\u0438\u0436\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438.\n\n```python\nfrom steam_trader.api import Client\nfrom steam_trader.exceptions import NotEnoughMoney\n\nclient = Client('\u0412\u0430\u0448 \u0442\u043e\u043a\u0435\u043d')\n\nmax_price = 9.00\ngid = 3242\n\nsell_offers = client.get_order_book(gid, mode='sell')\nfor offer in sell_offers.sell:\n if offer[0] < max_price:\n for _ in range(offer[1]):\n try:\n client.buy(gid, 1, offer[0])\n except NotEnoughMoney:\n exit('\u041d\u0435 \u0445\u0432\u0430\u0442\u0430\u0435\u0442 \u0434\u0435\u043d\u0435\u0433 :(')\n```\n\n\u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e get_order_book \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043e \u043f\u0440\u043e\u0434\u0430\u0436\u0435, \u043f\u0440\u043e\u0445\u043e\u0434\u0438\u043c\u0441\u044f \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443, \u0435\u0441\u043b\u0438 \u0446\u0435\u043d\u0430 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u0435\u043d\u044c\u0448\u0435 \u043d\u0430\u0448\u0435\u0439 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439, \u0442\u043e \u043c\u044b \u043f\u043e\u043a\u0443\u043f\u0430\u0435\u043c \u0432\u0441\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e \u0434\u0430\u043d\u043d\u043e\u0439 \u0446\u0435\u043d\u0435.\n\u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435, \u0435\u0441\u043b\u0438 \u043d\u0430\u043c \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442 \u0434\u0435\u043d\u0435\u0433 \u043d\u0430 \u043f\u043e\u043a\u0443\u043f\u043a\u0443 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043c\u043e\u043c\u0435\u043d\u0442.\n\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0431\u043e\u043b\u044c\u0448\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432.\n\n```python\nimport asyncio\nfrom steam_trader.api import ClientAsync\n\nclient = ClientAsync('\u0412\u0430\u0448 \u0442\u043e\u043a\u0435\u043d')\n\ngids = [1226, 1402, 3439, 1976, 1984, 1990, 1227, 1205, 1523, 2484, 1524, 1503, 1506, 1220, 1515, 3530, 1745, 1202]\n\nasync def main():\n async with client:\n tasks = [client.get_item_info(gid) for gid in gids]\n responses = await asyncio.gather(*tasks)\n for response in responses:\n print(response)\n\nasyncio.run(main())\n```\n\n\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0441\u0442\u0438, \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0432\u0441\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 *\u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e* \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0441 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u043c.\n\u041c\u044b \u043d\u0435 \u0436\u0434\u0451\u043c \u043e\u0442\u0432\u0435\u0442\u0430 \u043f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435, \u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439. \u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u044d\u0442\u043e \u043d\u0435 \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0438\u0437\u0443\u0447\u0438\u0442\u0435 \u043c\u043e\u0434\u0443\u043b\u044c asyncio.\n\nREST API \u0441\u0430\u0439\u0442\u0430 \u0434\u0430\u0451\u0442 \u043d\u0435 \u043f\u043e\u043b\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0435\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u043c. \u0414\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c WEB \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b.\n\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0439 \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043c\u0435\u0442\u043e\u0432.\n\n```python\nfrom steam_trader.web import WebClient\n\nwith WebClient('\u0412\u0430\u0448 \u0442\u043e\u043a\u0435\u043d') as client:\n item_info = client.get_item_info(1523)\n for offer in item_info.sell_offers:\n print(item_info.descriptions[offer.itemid])\n```\n\n### \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\n\n\u041f\u043e\u043b\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u0437\u0434\u0435\u0441\u044c: https://lemon4ksan.github.io/steam-trader/\n\n### \u0412\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0432\u043a\u043b\u0430\u0434\u0430 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442 \n\n\u0412\u043d\u0435\u0441\u0435\u043d\u0438\u0435 \u0441\u0432\u043e\u0435\u0433\u043e \u0432\u043a\u043b\u0430\u0434\u0430 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f!\n\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043c\u043e\u0447\u044c, \u0441\u043e\u043e\u0431\u0449\u0438\u0432 \u043e [\u0431\u0430\u0433\u0435](https://github.com/Lemon4ksan/SteamTrader-Wrapper/issues/new?assignees=&labels=bug&projects=&template=bug-report.md&title=) \u0438\u043b\u0438 [\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0432](https://github.com/Lemon4ksan/SteamTrader-Wrapper/issues/new?assignees=&labels=feature-request&projects=&template=feature-request.md&title=) \u043d\u043e\u0432\u044b\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b.\n\n\u0414\u0430\u043d\u043d\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f.\n\n### \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\n\u0421\u043c. \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c [LICENSE](https://github.com/Lemon4ksan/SteamTrader-Wrapper/blob/master/LICENSE)\n\n\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043a \u0432 \u0432\u0438\u0434\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430, \u0442\u0430\u043a \u0438 \u0432 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0439 \u0444\u043e\u0440\u043c\u0435, \u0441 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u043c\u0438 \u0438\u043b\u0438 \u0431\u0435\u0437, \u043f\u0440\u0438 \u0441\u043e\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439:\n\n- \u041f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u043c \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0435 \u0432\u044b\u0448\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043e\u0431 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u043c \u043f\u0440\u0430\u0432\u0435, \u044d\u0442\u043e\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u0442\u043a\u0430\u0437 \u043e\u0442 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0439.\n- \u041f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u043c \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0434\u0432\u043e\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0430\u044f \u0432\u044b\u0448\u0435 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u0430\u0432\u0442\u043e\u0440\u0441\u043a\u043e\u043c \u043f\u0440\u0430\u0432\u0435, \u044d\u0442\u043e\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043e\u0442\u043a\u0430\u0437 \u043e\u0442 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0439 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0438/\u0438\u043b\u0438 \u0432 \u0434\u0440\u0443\u0433\u0438\u0445 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430\u0445, \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 \u043f\u0440\u0438 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0438.\n- \u041d\u0438 \u0438\u043c\u044f \u0430\u0432\u0442\u043e\u0440\u0430, \u043d\u0438 \u0438\u043c\u0435\u043d\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0438\u043b\u0438 \u043f\u0440\u043e\u0434\u0432\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432, \u043e\u0441\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044d\u0442\u043e\u043c \u041f\u041e \u0431\u0435\u0437 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0438\u0441\u044c\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044f.\n\n\u042d\u0422\u0410 \u041f\u0420\u041e\u0413\u0420\u0410\u041c\u041c\u0410 \u041f\u0420\u0415\u0414\u041e\u0421\u0422\u0410\u0412\u041b\u0415\u041d\u0410 \u0412\u041b\u0410\u0414\u0415\u041b\u042c\u0426\u0410\u041c\u0418 \u0410\u0412\u0422\u041e\u0420\u0421\u041a\u0418\u0425 \u041f\u0420\u0410\u0412 \u0418/\u0418\u041b\u0418 \u0414\u0420\u0423\u0413\u0418\u041c\u0418 \u0421\u0422\u041e\u0420\u041e\u041d\u0410\u041c\u0418 \u00ab\u041a\u0410\u041a \u041e\u041d\u0410 \u0415\u0421\u0422\u042c\u00bb \u0411\u0415\u0417 \u041a\u0410\u041a\u041e\u0413\u041e-\u041b\u0418\u0411\u041e \u0412\u0418\u0414\u0410 \u0413\u0410\u0420\u0410\u041d\u0422\u0418\u0419, \u0412\u042b\u0420\u0410\u0416\u0415\u041d\u041d\u042b\u0425 \u042f\u0412\u041d\u041e \u0418\u041b\u0418 \u041f\u041e\u0414\u0420\u0410\u0417\u0423\u041c\u0415\u0412\u0410\u0415\u041c\u042b\u0425, \u0412\u041a\u041b\u042e\u0427\u0410\u042f, \u041d\u041e \u041d\u0415 \u041e\u0413\u0420\u0410\u041d\u0418\u0427\u0418\u0412\u0410\u042f\u0421\u042c \u0418\u041c\u0418, \u041f\u041e\u0414\u0420\u0410\u0417\u0423\u041c\u0415\u0412\u0410\u0415\u041c\u042b\u0415 \u0413\u0410\u0420\u0410\u041d\u0422\u0418\u0418 \u041a\u041e\u041c\u041c\u0415\u0420\u0427\u0415\u0421\u041a\u041e\u0419 \u0426\u0415\u041d\u041d\u041e\u0421\u0422\u0418 \u0418 \u041f\u0420\u0418\u0413\u041e\u0414\u041d\u041e\u0421\u0422\u0418 \u0414\u041b\u042f \u041a\u041e\u041d\u041a\u0420\u0415\u0422\u041d\u041e\u0419 \u0426\u0415\u041b\u0418. \u041d\u0418 \u0412 \u041a\u041e\u0415\u041c \u0421\u041b\u0423\u0427\u0410\u0415 \u041d\u0418 \u041e\u0414\u0418\u041d \u0412\u041b\u0410\u0414\u0415\u041b\u0415\u0426 \u0410\u0412\u0422\u041e\u0420\u0421\u041a\u0418\u0425 \u041f\u0420\u0410\u0412 \u0418 \u041d\u0418 \u041e\u0414\u041d\u041e \u0414\u0420\u0423\u0413\u041e\u0415 \u041b\u0418\u0426\u041e, \u041a\u041e\u0422\u041e\u0420\u041e\u0415 \u041c\u041e\u0416\u0415\u0422 \u0418\u0417\u041c\u0415\u041d\u042f\u0422\u042c \u0418/\u0418\u041b\u0418 \u041f\u041e\u0412\u0422\u041e\u0420\u041d\u041e \u0420\u0410\u0421\u041f\u0420\u041e\u0421\u0422\u0420\u0410\u041d\u042f\u0422\u042c \u041f\u0420\u041e\u0413\u0420\u0410\u041c\u041c\u0423, \u041a\u0410\u041a \u0411\u042b\u041b\u041e \u0421\u041a\u0410\u0417\u0410\u041d\u041e \u0412\u042b\u0428\u0415, \u041d\u0415 \u041d\u0415\u0421\u0401\u0422 \u041e\u0422\u0412\u0415\u0422\u0421\u0422\u0412\u0415\u041d\u041d\u041e\u0421\u0422\u0418, \u0412\u041a\u041b\u042e\u0427\u0410\u042f \u041b\u042e\u0411\u042b\u0415 \u041e\u0411\u0429\u0418\u0415, \u0421\u041b\u0423\u0427\u0410\u0419\u041d\u042b\u0415, \u0421\u041f\u0415\u0426\u0418\u0410\u041b\u042c\u041d\u042b\u0415 \u0418\u041b\u0418 \u041f\u041e\u0421\u041b\u0415\u0414\u041e\u0412\u0410\u0412\u0428\u0418\u0415 \u0423\u0411\u042b\u0422\u041a\u0418, \u0412\u0421\u041b\u0415\u0414\u0421\u0422\u0412\u0418\u0415 \u0418\u0421\u041f\u041e\u041b\u042c\u0417\u041e\u0412\u0410\u041d\u0418\u042f \u0418\u041b\u0418 \u041d\u0415\u0412\u041e\u0417\u041c\u041e\u0416\u041d\u041e\u0421\u0422\u0418 \u0418\u0421\u041f\u041e\u041b\u042c\u0417\u041e\u0412\u0410\u041d\u0418\u042f \u041f\u0420\u041e\u0413\u0420\u0410\u041c\u041c\u042b (\u0412\u041a\u041b\u042e\u0427\u0410\u042f, \u041d\u041e \u041d\u0415 \u041e\u0413\u0420\u0410\u041d\u0418\u0427\u0418\u0412\u0410\u042f\u0421\u042c \u041f\u041e\u0422\u0415\u0420\u0415\u0419 \u0414\u0410\u041d\u041d\u042b\u0425, \u0418\u041b\u0418 \u0414\u0410\u041d\u041d\u042b\u041c\u0418, \u0421\u0422\u0410\u0412\u0428\u0418\u041c\u0418 \u041d\u0415\u041f\u0420\u0410\u0412\u0418\u041b\u042c\u041d\u042b\u041c\u0418, \u0418\u041b\u0418 \u041f\u041e\u0422\u0415\u0420\u042f\u041c\u0418, \u041f\u0420\u0418\u041d\u0415\u0421\u0415\u041d\u041d\u042b\u041c\u0418 \u0418\u0417-\u0417\u0410 \u0412\u0410\u0421 \u0418\u041b\u0418 \u0422\u0420\u0415\u0422\u042c\u0418\u0425 \u041b\u0418\u0426, \u0418\u041b\u0418 \u041e\u0422\u041a\u0410\u0417\u041e\u041c \u041f\u0420\u041e\u0413\u0420\u0410\u041c\u041c\u042b \u0420\u0410\u0411\u041e\u0422\u0410\u0422\u042c \u0421\u041e\u0412\u041c\u0415\u0421\u0422\u041d\u041e \u0421 \u0414\u0420\u0423\u0413\u0418\u041c\u0418 \u041f\u0420\u041e\u0413\u0420\u0410\u041c\u041c\u0410\u041c\u0418), \u0414\u0410\u0416\u0415 \u0415\u0421\u041b\u0418 \u0422\u0410\u041a\u041e\u0419 \u0412\u041b\u0410\u0414\u0415\u041b\u0415\u0426 \u0418\u041b\u0418 \u0414\u0420\u0423\u0413\u041e\u0415 \u041b\u0418\u0426\u041e \u0411\u042b\u041b\u0418 \u0418\u0417\u0412\u0415\u0429\u0415\u041d\u042b \u041e \u0412\u041e\u0417\u041c\u041e\u0416\u041d\u041e\u0421\u0422\u0418 \u0422\u0410\u041a\u0418\u0425 \u0423\u0411\u042b\u0422\u041a\u041e\u0412.\n",
"bugtrack_url": null,
"license": "BSD License",
"summary": "\u041d\u0435\u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u0430\u044f Python \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 API \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Steam-Trader.",
"version": "0.4.0",
"project_urls": {
"Homepage": "https://github.com/Lemon4ksan/SteamTrader-Wrapper",
"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f": "https://lemon4ksan.github.io/steam-trader/"
},
"split_keywords": [
"python",
"steam",
"trader",
"api",
"wrapper",
"library",
"client",
"\u043f\u0438\u0442\u043e\u043d",
"\u043f\u0430\u0439\u0442\u043e\u043d",
"\u0441\u0442\u0438\u043c",
"\u0442\u0440\u0435\u0439\u0434\u0435\u0440",
"\u0430\u043f\u0438",
"\u043e\u0431\u0451\u0440\u0442\u043a\u0430",
"\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430",
"\u043a\u043b\u0438\u0435\u043d\u0442"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c6616fc756ceb319e74ea9b0e2ad51764e27ef887c829bf5c54869f5165d7bac",
"md5": "36f9cd1b62b2bd86e71fecc0e6d1fce6",
"sha256": "5165c11184c063bf4fc744f1967ac926c8721de1336fceae4515b54c843afa54"
},
"downloads": -1,
"filename": "steam-trader-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "36f9cd1b62b2bd86e71fecc0e6d1fce6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 50386,
"upload_time": "2024-10-08T14:31:56",
"upload_time_iso_8601": "2024-10-08T14:31:56.223163Z",
"url": "https://files.pythonhosted.org/packages/c6/61/6fc756ceb319e74ea9b0e2ad51764e27ef887c829bf5c54869f5165d7bac/steam-trader-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-08 14:31:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Lemon4ksan",
"github_project": "SteamTrader-Wrapper",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "python-dotenv",
"specs": [
[
"~=",
"1.0.1"
]
]
},
{
"name": "ujson",
"specs": [
[
"~=",
"5.10.0"
]
]
},
{
"name": "httpx",
"specs": [
[
"~=",
"0.27.0"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
"~=",
"4.12.3"
]
]
},
{
"name": "lxml",
"specs": [
[
"~=",
"5.3.0"
]
]
}
],
"lcname": "steam-trader"
}