mirror of
https://github.com/yawaflua/Py-SPW.git
synced 2025-12-09 20:09:31 +02:00
Release 1.0
small fixes
This commit is contained in:
6
.gitignore
vendored
6
.gitignore
vendored
@@ -149,3 +149,9 @@ cython_debug/
|
||||
|
||||
# Test file
|
||||
test.py
|
||||
|
||||
# upload bat file
|
||||
upload.bat
|
||||
|
||||
# PyPi description
|
||||
pypi.md
|
||||
|
||||
13
README.md
Normal file
13
README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Py SPW
|
||||
Library fo work with SPworlds API.
|
||||
|
||||
## Installation
|
||||
Library written on 3.10.5
|
||||
|
||||
To install, run this command:
|
||||
`pip install Py-Spw`
|
||||
|
||||
## Links
|
||||
- [PyPi](https://pypi.org/project/Py-SPW)
|
||||
- [Documentation](https://github.com/teleport2/Py-SPW/wiki)
|
||||
- [Author](https://github.com/teleport2)
|
||||
24
README.rst
24
README.rst
@@ -1,24 +0,0 @@
|
||||
|
||||
.. image:: https://img.shields.io/pypi/v/pyspw.svg
|
||||
:target: https://pypi.org/project/pyspw/
|
||||
:alt: PyPI version info
|
||||
|
||||
|
||||
Py SPW
|
||||
=======
|
||||
|
||||
Библиотека для работы с SPworlds API.
|
||||
|
||||
`Документация с примерами <https://github.com/teleport2/Py-SPW/wiki>`_
|
||||
|
||||
|
||||
|
||||
Установка
|
||||
----
|
||||
Библиотека написана на python 3.10.5.
|
||||
|
||||
.. code:: sh
|
||||
|
||||
pip install pyspapi
|
||||
|
||||
|
||||
30
pyspw/api.py
30
pyspw/api.py
@@ -60,7 +60,7 @@ class sp_api_base:
|
||||
|
||||
def get_user(self, discord_id: str) -> str | None:
|
||||
"""
|
||||
Получение статуса проходки.
|
||||
Получение ника пользователя.
|
||||
:param discord_id: ID пользователя дискорда.
|
||||
:return: Str если пользователь найден, None если пользователь не найден. В str содержиться никнейм пользователя
|
||||
"""
|
||||
@@ -76,10 +76,10 @@ class sp_api_base:
|
||||
|
||||
def get_user_skin(self, discord_id: str, body_part: str, image_size: int = 64) -> bytes | None:
|
||||
"""
|
||||
Получение изображения головы майнкрафт скина.
|
||||
Получение изображения части скина.
|
||||
:param discord_id: ID пользователя дискорда.
|
||||
:param body_part: Часть тела для получения. Допустимые значения - https://visage.surgeplay.com/index.html
|
||||
:param image_size: Размер получаемого изображения (максимум 512).
|
||||
:param image_size: Размер получаемого изображения.
|
||||
:return: Bytes если пользователь найден, None если пользователь не найден. В bytes содержиться изображение профиля
|
||||
"""
|
||||
|
||||
@@ -117,11 +117,11 @@ class sp_api_base:
|
||||
def check_webhook(self, webhook_data: str, X_Body_Hash: str) -> bool:
|
||||
"""
|
||||
Валидирует webhook
|
||||
:param webhook_data: data из webhook.
|
||||
:param webhook_data: Тело webhook'а.
|
||||
:param X_Body_Hash: Хэдер X-Body-Hash из webhook.
|
||||
:return: Bool True если вебхук пришел от верифицированного сервера, иначе False
|
||||
"""
|
||||
hmac_data = hmac.new(self.card_token.encode('utf-8'), webhook_data, sha256).digest()
|
||||
hmac_data = hmac.new(self.card_token.encode('utf-8'), webhook_data.encode('utf-8'), sha256).digest()
|
||||
base64_data = b64encode(hmac_data)
|
||||
return hmac.compare_digest(base64_data, X_Body_Hash.encode('utf-8'))
|
||||
|
||||
@@ -142,7 +142,7 @@ class sp_api_base:
|
||||
}
|
||||
return self.__post('/payment', body).json()['url']
|
||||
|
||||
def create_payments(self, payments: tuple, request_delay: float = 0.1) -> list[str]:
|
||||
def create_payments(self, payments: tuple, request_delay: float = 0.1) -> list:
|
||||
"""
|
||||
Создание ссылок на оплату
|
||||
:param request_delay: Значение задержки между запросами, указывается в секундах
|
||||
@@ -173,7 +173,14 @@ class sp_api_base:
|
||||
|
||||
return answer
|
||||
|
||||
def send_transaction(self, receiver: str, amount: int, comment: str) -> None:
|
||||
def send_transaction(self, receiver: str, amount: int, comment: str = 'Нет комментария') -> None:
|
||||
"""
|
||||
Отправка транзакции
|
||||
:param receiver: Номер карты на которую будет совершена транзакция.
|
||||
:param amount: Сумма транзакции.
|
||||
:param comment: Комментарий к транзакции.
|
||||
:return: None.
|
||||
"""
|
||||
body = {
|
||||
'receiver': receiver,
|
||||
'amount': amount,
|
||||
@@ -182,6 +189,15 @@ class sp_api_base:
|
||||
self.__post('/transactions', body)
|
||||
|
||||
def send_transactions(self, transactions: tuple, request_delay: float = 0.1) -> None:
|
||||
"""
|
||||
Отправка транзакций
|
||||
:param request_delay: Значение задержки между запросами, указывается в секундах
|
||||
:param transactions: Кортеж содержащий словари со следующими параметрами:
|
||||
:param receiver: Номер карты на которую будет совершена транзакция.
|
||||
:param amount: Сумма транзакции.
|
||||
:param comment: Комментарий к транзакции.
|
||||
:return: List с ссылками на страницы оплаты, в том порядке, в котором они были в кортеже payments
|
||||
"""
|
||||
for transaction in transactions:
|
||||
try:
|
||||
self.send_transaction(
|
||||
|
||||
16
setup.py
16
setup.py
@@ -1,12 +1,22 @@
|
||||
from os import path
|
||||
from setuptools import setup
|
||||
|
||||
this_directory = path.abspath(path.dirname(__file__))
|
||||
|
||||
with open(path.join(this_directory, 'README.md'), encoding='utf-8') as f:
|
||||
description_md = f.read()
|
||||
|
||||
requires = ['requests==2.28.1']
|
||||
|
||||
setup(
|
||||
name='pyspw',
|
||||
version='1.0',
|
||||
name='Py-SPW',
|
||||
version='1.0.3',
|
||||
packages=['pyspw'],
|
||||
url='https://github.com/teleport2/Py-SPW',
|
||||
license='MIT License',
|
||||
author='Stepan Khozhempo',
|
||||
author_email='stepan@m.khoz.ru',
|
||||
description='Library for spworlds API'
|
||||
description='Python library for spworlds API',
|
||||
long_description=description_md,
|
||||
long_description_content_type='text/markdown'
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user