gengineapi 0.2.0__py3-none-any.whl → 0.2.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: gengineapi
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.2
|
4
4
|
Summary: G-Engine API Client
|
5
5
|
Requires-Python: >=3.13
|
6
6
|
Description-Content-Type: text/markdown
|
@@ -8,7 +8,7 @@ Requires-Dist: aiohttp>=3.8.0
|
|
8
8
|
Requires-Dist: typing-extensions>=4.0.0
|
9
9
|
Requires-Dist: aiohttp-socks>=0.7.1
|
10
10
|
|
11
|
-
#
|
11
|
+
# GEngineAPI
|
12
12
|
|
13
13
|
Асинхронный модульный клиент для взаимодействия с API G-Engine.
|
14
14
|
|
@@ -28,44 +28,63 @@ Requires-Dist: aiohttp-socks>=0.7.1
|
|
28
28
|
## Установка
|
29
29
|
|
30
30
|
```bash
|
31
|
-
pip install
|
31
|
+
pip install gengineapi
|
32
32
|
```
|
33
33
|
|
34
|
-
|
34
|
+
Для поддержки SOCKS5 прокси убедитесь, что установлен пакет `aiohttp-socks`:
|
35
35
|
|
36
36
|
```bash
|
37
|
-
pip install
|
37
|
+
pip install aiohttp-socks
|
38
38
|
```
|
39
39
|
|
40
|
-
##
|
40
|
+
## Использование
|
41
41
|
|
42
|
-
|
43
|
-
src/
|
44
|
-
└── gengineapi/
|
45
|
-
├── __init__.py # Экспорт основных классов
|
46
|
-
├── client.py # Основной класс клиента
|
47
|
-
├── http.py # HTTP клиент с поддержкой аутентификации
|
48
|
-
├── exceptions.py # Иерархия исключений API
|
49
|
-
├── config.py # Класс-конфигурация для настройки параметров
|
50
|
-
├── farm.py # Ферма клиентов для управления множеством клиентов
|
51
|
-
└── modules/ # Папка с модулями API
|
52
|
-
├── __init__.py
|
53
|
-
├── base.py # Базовый класс для всех модулей
|
54
|
-
├── payments.py # Модуль для работы с платежами
|
55
|
-
├── finances.py # Модуль для работы с финансами
|
56
|
-
├── auth.py # Модуль для аутентификации
|
57
|
-
├── users.py # Модуль для работы с пользователями
|
58
|
-
├── transactions.py # Модуль для работы с транзакциями
|
59
|
-
└── currencies.py # Модуль для работы с валютами
|
60
|
-
```
|
42
|
+
### Быстрый старт
|
61
43
|
|
62
|
-
|
44
|
+
```python
|
45
|
+
import os
|
46
|
+
import asyncio
|
47
|
+
import logging
|
48
|
+
from gengineapi import ClientFarm
|
49
|
+
from dotenv import load_dotenv
|
50
|
+
|
51
|
+
load_dotenv()
|
52
|
+
|
53
|
+
GTOKEN = os.getenv("GTOKEN")
|
54
|
+
|
55
|
+
# Настройка логирования
|
56
|
+
logging.basicConfig(
|
57
|
+
level=logging.INFO,
|
58
|
+
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
59
|
+
)
|
60
|
+
logger = logging.getLogger("gengine")
|
63
61
|
|
62
|
+
gfarm = ClientFarm(logger=logger)
|
63
|
+
|
64
|
+
gfarm.create_config(name="base",
|
65
|
+
base_url="https://b2b-api.ggsel.com/api/v2",
|
66
|
+
jwt_token=GTOKEN,
|
67
|
+
timeout=60,
|
68
|
+
max_retries=5,
|
69
|
+
proxy="socks5://username:password@host:port") # Прокси опциональные
|
70
|
+
|
71
|
+
async def main():
|
72
|
+
client = await gfarm.get_client("base")
|
73
|
+
|
74
|
+
async with client:
|
75
|
+
me = await client.users.get_me()
|
76
|
+
|
77
|
+
logger.info(me)
|
78
|
+
|
79
|
+
|
80
|
+
if __name__ == "__main__":
|
81
|
+
asyncio.run(main())
|
82
|
+
```
|
64
83
|
### Инициализация с существующим токеном
|
65
84
|
|
66
85
|
```python
|
67
86
|
import asyncio
|
68
|
-
from
|
87
|
+
from gengineapi import GEngineClient
|
69
88
|
|
70
89
|
async def main():
|
71
90
|
# Создаем клиент с существующим токеном
|
@@ -86,7 +105,7 @@ asyncio.run(main())
|
|
86
105
|
|
87
106
|
```python
|
88
107
|
import asyncio
|
89
|
-
from
|
108
|
+
from gengineapi import GEngineClient
|
90
109
|
|
91
110
|
async def main():
|
92
111
|
# Создаем клиент без токена
|
@@ -121,7 +140,7 @@ asyncio.run(main())
|
|
121
140
|
|
122
141
|
```python
|
123
142
|
import asyncio
|
124
|
-
from
|
143
|
+
from gengineapi import GEngineClient
|
125
144
|
|
126
145
|
async def main():
|
127
146
|
# Создаем клиент с использованием SOCKS5 прокси
|
@@ -151,7 +170,7 @@ asyncio.run(main())
|
|
151
170
|
|
152
171
|
```python
|
153
172
|
import asyncio
|
154
|
-
from
|
173
|
+
from gengineapi import GEngineConfig
|
155
174
|
|
156
175
|
async def main():
|
157
176
|
# Настройка параметров клиента
|
@@ -196,7 +215,7 @@ asyncio.run(main())
|
|
196
215
|
|
197
216
|
```python
|
198
217
|
import asyncio
|
199
|
-
from
|
218
|
+
from gengineapi import ClientFarm
|
200
219
|
|
201
220
|
async def main():
|
202
221
|
# Создаем ферму клиентов
|
@@ -240,41 +259,62 @@ async def main():
|
|
240
259
|
asyncio.run(main())
|
241
260
|
```
|
242
261
|
|
243
|
-
###
|
262
|
+
### Работа с платежами
|
244
263
|
|
245
264
|
```python
|
246
265
|
import asyncio
|
247
|
-
|
266
|
+
import uuid
|
267
|
+
from decimal import Decimal
|
268
|
+
from gengineapi import GEngineClient
|
248
269
|
|
249
270
|
async def main():
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
271
|
+
async with GEngineClient(
|
272
|
+
base_url="https://api.example.com/api/v2",
|
273
|
+
jwt_token="your-jwt-token"
|
274
|
+
) as client:
|
275
|
+
# Генерируем уникальный идентификатор транзакции
|
276
|
+
transaction_id = str(uuid.uuid4())
|
277
|
+
|
278
|
+
# Создаем и верифицируем платеж
|
279
|
+
payment = await client.payments.verify(
|
280
|
+
transaction_id=transaction_id,
|
281
|
+
service_id=1,
|
282
|
+
account="user123",
|
283
|
+
amount=Decimal("10.99"),
|
284
|
+
currency="USD"
|
285
|
+
)
|
286
|
+
print(f"Создан платеж: {payment['transaction_id']}")
|
287
|
+
|
288
|
+
# Выполняем платеж
|
289
|
+
result = await client.payments.execute(transaction_id=transaction_id)
|
290
|
+
print(f"Статус платежа: {result['status_code']}")
|
291
|
+
|
292
|
+
# Получаем статус платежа
|
293
|
+
status = await client.payments.get_status(transaction_id=transaction_id)
|
294
|
+
print(f"Текущий статус платежа: {status['status_code']}")
|
268
295
|
|
269
296
|
asyncio.run(main())
|
270
297
|
```
|
271
298
|
|
299
|
+
## Доступные модули API
|
300
|
+
|
301
|
+
- `payments` - создание и выполнение платежей
|
302
|
+
- `finances` - работа с финансовыми данными
|
303
|
+
- `auth` - аутентификация и управление токенами
|
304
|
+
- `users` - работа с пользователями и их балансами
|
305
|
+
- `transactions` - работа с транзакциями
|
306
|
+
- `currencies` - работа с курсами валют
|
307
|
+
|
308
|
+
## Дополнительная документация
|
309
|
+
|
310
|
+
Ручки, которые дергаем - https://b2b-api.ggsel.com/api/v2/docs#
|
311
|
+
|
272
312
|
## Зависимости
|
273
313
|
|
274
314
|
- Python 3.7+
|
275
315
|
- aiohttp >= 3.8.0
|
276
316
|
- typing-extensions >= 4.0.0
|
277
|
-
- aiohttp-socks >= 0.7.1 (для поддержки SOCKS5 прокси)
|
317
|
+
- aiohttp-socks >= 0.7.1 (опционально, для поддержки SOCKS5 прокси)
|
278
318
|
|
279
319
|
## Лицензия
|
280
320
|
|
@@ -12,7 +12,7 @@ gengineapi/modules/finances.py,sha256=fwOWo1LI56ZC3qlTG-tv_cqbI7RyCPYQSNOT5r6VzT
|
|
12
12
|
gengineapi/modules/payments.py,sha256=dwOqQcwsq256OQKzXJUn8a0H6krsf3Rb73KdAaRcEnw,4634
|
13
13
|
gengineapi/modules/transactions.py,sha256=QUtTxzTFsLesqog9Da6H-pdq5DP0sgh9w2cIlZQiKCk,2932
|
14
14
|
gengineapi/modules/users.py,sha256=WQyI37MVBAzqDE3i1LPpV2G5g_1cGvQh0vLomTF4vkI,4291
|
15
|
-
gengineapi-0.2.
|
16
|
-
gengineapi-0.2.
|
17
|
-
gengineapi-0.2.
|
18
|
-
gengineapi-0.2.
|
15
|
+
gengineapi-0.2.2.dist-info/METADATA,sha256=ctCyxDB5_RgW3ADHhu8C-leYpIdAyWTdEhuSVsCyOwE,11184
|
16
|
+
gengineapi-0.2.2.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
|
17
|
+
gengineapi-0.2.2.dist-info/top_level.txt,sha256=mYdcVWOxFzj4EzoczGzeT-ccVrNEjNI98w2JW51wnfk,11
|
18
|
+
gengineapi-0.2.2.dist-info/RECORD,,
|
File without changes
|