diff --git a/.gitignore b/.gitignore index 5ce02af..bf34328 100644 --- a/.gitignore +++ b/.gitignore @@ -149,3 +149,9 @@ cython_debug/ # Test file test.py + +# upload bat file +upload.bat + +# PyPi description +pypi.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..ca38ff5 --- /dev/null +++ b/README.md @@ -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) \ No newline at end of file diff --git a/README.rst b/README.rst deleted file mode 100644 index bc82590..0000000 --- a/README.rst +++ /dev/null @@ -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. - -`Документация с примерами `_ - - - -Установка ----- -Библиотека написана на python 3.10.5. - -.. code:: sh - - pip install pyspapi - - diff --git a/pyspw/api.py b/pyspw/api.py index 57ede1e..0fe50e1 100644 --- a/pyspw/api.py +++ b/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( diff --git a/setup.py b/setup.py index b12f016..2509424 100644 --- a/setup.py +++ b/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' )