pyrepka


Namepyrepka JSON
Version 1.0.1 PyPI version JSON
download
home_pagehttps://github.com/oshkov/py-repka
SummaryМодуль для работы с реферальной программой "Репка"
upload_time2024-05-12 21:54:24
maintainerNone
docs_urlNone
authoroshkov
requires_python>=3.6
licenseNone
keywords реферальная программа
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # <p align="center">PyRepka</p>

### РЕПКА это:

- 🤖 Единая реферальная программа, для большой системы ботов.
- 💵 Система позволяющая получать бонусы за приглашения и тратить их в любом боте с поддержкой РЕПКИ.
- 👑 Приглашай пока тебя не пригласили. Первым быть выгодно!


# Содержание

* [Запуск](#Запуск)
* [Методы](#Методы)
    * [CheckUserRef](#CheckUserRef)
    * [AddUserToRef](#AddUserToRef)
    * [GetReferralUsers](#GetReferralUsers)
    * [GetUserBalance](#GetUserBalance)
    * [Purchase](#Purchase)
    * [Replenishment](#Replenishment)
* [Примеры](#Примеры)
* [Заключение](#Заключение)


# Запуск

### Установка

Установка через pip:

```python
pip install pyrepka
```

### Инициализация:

```python
from pyrepka import PyRepka

py_repka = PyRepka(bot_access_token, bot_username, ip, port)
```

| Параметр | Тип | Описание |
|-|-|-|
| bot_access_token | str | Токен для подключения к Репке |
| bot_username | str | Юзернейм бота |
| ip | str | IP-адрес сервера, на котором работает API |
| port | str | Порт сервера, на котором работает API |

*Все эти данные выдает разработчик API*


# Методы


### CheckUserRef

Проверить, является ли пользователь участником реферальной программы

GET-запрос

| Параметр | Тип | Описание |
|-|-|-|
| user_id | int | ID пользователя, которого необходимо проверить |

#### Пример использования:

```python
py_repka.check_user_ref(user_id)
```


---


### AddUserToRef

Добавить пользователя в реф. программу

POST-запрос

| Параметр | Тип | Описание |
|-|-|-|
| user_id | int | ID пользователя, который добавляется в реф. программу |
| first_name | str | Имя пользователя |
| last_name | str | Фамилия пользователя |
| username | str | Юзернейм пользователя |
| inviter_id | int / None | ID пользователя, который пригласил, если он есть |

#### Пример использования:

```python
py_repka.add_user_to_ref(
    user_id,
    first_name,
    last_name,
    username,
    inviter_id
)
```


---


### GetReferralUsers

Получить количество пользователей на каждом уровне

GET-запрос

| Параметр | Тип | Описание |
|-|-|-|
| user_id | int | ID пользователя, у которого нужно узнать количество пользователей на каждом уровне |

#### Пример использования:

```python
py_repka.add_user_to_ref(user_id)
```


---


### GetUserBalance

Получить баланс пользователя

GET-запрос

| Параметр | Тип | Описание |
|-|-|-|
| user_id | int | ID пользователя, баланс которого нужно узнать |

#### Пример использования:

```python
py_repka.get_user_balance(user_id)
```


---


### Purchase

Покупка (за баллы)

POST-запрос

| Параметр | Тип | Описание |
|-|-|-|
| user_id | int | ID пользователя, который совершает покупку |
| points | int | Количество баллов, которые будут списаны с баланса пользователя |
| reason | str | Название операции |

#### Пример использования:

```python
py_repka.purchase(
    user_id,
    points,
    reason
)
```


---


### Replenishment

Зафиксировать факт пополнения баланса пользователя с помощью эквайринга

POST-запрос

| Параметр | Тип | Описание |
|-|-|-|
| user_id | int | ID пользователя, чей баланс пополняется |
| points | int | Количество баллов, которое пополняется на баланс пользователя |
| reason | str | Название операции |

#### Пример использования:

```python
py_repka.replenishment(
    user_id,
    points,
    reason
)
```


# Примеры

#### Пример запуска бота на aiogram 3

```python
from pyrepka import PyRepka

# Инициализация объекта реферальной программы
py_repka = PyRepka(bot_access_token, bot_username, ip, port)


@router.message(F.text.contains("/start"))
async def start_handler(message: Message):

    # ID пригласителя
    try:
        invited_by = message.text.split()[1]
    except: 
        invited_by = None

    # Добавление в реферальную программу
    py_repka.add_user_to_ref(
        message.from_user.id,
        message.from_user.first_name,
        message.from_user.last_name,
        message.from_user.username,
        invited_by
    )
```



# Заключение

Примеры всех запросов можно увидеть в swagger

https://hub.p2pbot.pro/swagger/index.html

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/oshkov/py-repka",
    "name": "pyrepka",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "\u0420\u0435\u0444\u0435\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430",
    "author": "oshkov",
    "author_email": "sasha.oshkov03@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/1a/d8/96f47fd7dc92c183701dcd272835f5e089664ae04563b91c879c1fd40b17/pyrepka-1.0.1.tar.gz",
    "platform": null,
    "description": "# <p align=\"center\">PyRepka</p>\r\n\r\n### \u0420\u0415\u041f\u041a\u0410 \u044d\u0442\u043e:\r\n\r\n- \ud83e\udd16 \u0415\u0434\u0438\u043d\u0430\u044f \u0440\u0435\u0444\u0435\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430, \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0431\u043e\u0442\u043e\u0432.\r\n- \ud83d\udcb5 \u0421\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0431\u043e\u043d\u0443\u0441\u044b \u0437\u0430 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u0438 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0438\u0445 \u0432 \u043b\u044e\u0431\u043e\u043c \u0431\u043e\u0442\u0435 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0420\u0415\u041f\u041a\u0418.\r\n- \ud83d\udc51 \u041f\u0440\u0438\u0433\u043b\u0430\u0448\u0430\u0439 \u043f\u043e\u043a\u0430 \u0442\u0435\u0431\u044f \u043d\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b\u0438. \u041f\u0435\u0440\u0432\u044b\u043c \u0431\u044b\u0442\u044c \u0432\u044b\u0433\u043e\u0434\u043d\u043e!\r\n\r\n\r\n# \u0421\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435\r\n\r\n* [\u0417\u0430\u043f\u0443\u0441\u043a](#\u0417\u0430\u043f\u0443\u0441\u043a)\r\n* [\u041c\u0435\u0442\u043e\u0434\u044b](#\u041c\u0435\u0442\u043e\u0434\u044b)\r\n    * [CheckUserRef](#CheckUserRef)\r\n    * [AddUserToRef](#AddUserToRef)\r\n    * [GetReferralUsers](#GetReferralUsers)\r\n    * [GetUserBalance](#GetUserBalance)\r\n    * [Purchase](#Purchase)\r\n    * [Replenishment](#Replenishment)\r\n* [\u041f\u0440\u0438\u043c\u0435\u0440\u044b](#\u041f\u0440\u0438\u043c\u0435\u0440\u044b)\r\n* [\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435](#\u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435)\r\n\r\n\r\n# \u0417\u0430\u043f\u0443\u0441\u043a\r\n\r\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0447\u0435\u0440\u0435\u0437 pip:\r\n\r\n```python\r\npip install pyrepka\r\n```\r\n\r\n### \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f:\r\n\r\n```python\r\nfrom pyrepka import PyRepka\r\n\r\npy_repka = PyRepka(bot_access_token, bot_username, ip, port)\r\n```\r\n\r\n| \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 | \u0422\u0438\u043f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\r\n|-|-|-|\r\n| bot_access_token | str | \u0422\u043e\u043a\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043a \u0420\u0435\u043f\u043a\u0435 |\r\n| bot_username | str | \u042e\u0437\u0435\u0440\u043d\u0435\u0439\u043c \u0431\u043e\u0442\u0430 |\r\n| ip | str | IP-\u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 API |\r\n| port | str | \u041f\u043e\u0440\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 API |\r\n\r\n*\u0412\u0441\u0435 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u044b\u0434\u0430\u0435\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a API*\r\n\r\n\r\n# \u041c\u0435\u0442\u043e\u0434\u044b\r\n\r\n\r\n### CheckUserRef\r\n\r\n\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043b\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u043c \u0440\u0435\u0444\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\r\n\r\nGET-\u0437\u0430\u043f\u0440\u043e\u0441\r\n\r\n| \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 | \u0422\u0438\u043f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\r\n|-|-|-|\r\n| user_id | int | ID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c |\r\n\r\n#### \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:\r\n\r\n```python\r\npy_repka.check_user_ref(user_id)\r\n```\r\n\r\n\r\n---\r\n\r\n\r\n### AddUserToRef\r\n\r\n\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0440\u0435\u0444. \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443\r\n\r\nPOST-\u0437\u0430\u043f\u0440\u043e\u0441\r\n\r\n| \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 | \u0422\u0438\u043f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\r\n|-|-|-|\r\n| user_id | int | ID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0432 \u0440\u0435\u0444. \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 |\r\n| first_name | str | \u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f |\r\n| last_name | str | \u0424\u0430\u043c\u0438\u043b\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f |\r\n| username | str | \u042e\u0437\u0435\u0440\u043d\u0435\u0439\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f |\r\n| inviter_id | int / None | ID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u043b, \u0435\u0441\u043b\u0438 \u043e\u043d \u0435\u0441\u0442\u044c |\r\n\r\n#### \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:\r\n\r\n```python\r\npy_repka.add_user_to_ref(\r\n    user_id,\r\n    first_name,\r\n    last_name,\r\n    username,\r\n    inviter_id\r\n)\r\n```\r\n\r\n\r\n---\r\n\r\n\r\n### GetReferralUsers\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435\r\n\r\nGET-\u0437\u0430\u043f\u0440\u043e\u0441\r\n\r\n| \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 | \u0422\u0438\u043f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\r\n|-|-|-|\r\n| user_id | int | ID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 |\r\n\r\n#### \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:\r\n\r\n```python\r\npy_repka.add_user_to_ref(user_id)\r\n```\r\n\r\n\r\n---\r\n\r\n\r\n### GetUserBalance\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\r\n\r\nGET-\u0437\u0430\u043f\u0440\u043e\u0441\r\n\r\n| \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 | \u0422\u0438\u043f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\r\n|-|-|-|\r\n| user_id | int | ID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0431\u0430\u043b\u0430\u043d\u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c |\r\n\r\n#### \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:\r\n\r\n```python\r\npy_repka.get_user_balance(user_id)\r\n```\r\n\r\n\r\n---\r\n\r\n\r\n### Purchase\r\n\r\n\u041f\u043e\u043a\u0443\u043f\u043a\u0430 (\u0437\u0430 \u0431\u0430\u043b\u043b\u044b)\r\n\r\nPOST-\u0437\u0430\u043f\u0440\u043e\u0441\r\n\r\n| \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 | \u0422\u0438\u043f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\r\n|-|-|-|\r\n| user_id | int | ID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0441\u043e\u0432\u0435\u0440\u0448\u0430\u0435\u0442 \u043f\u043e\u043a\u0443\u043f\u043a\u0443 |\r\n| points | int | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u043b\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u0441\u043f\u0438\u0441\u0430\u043d\u044b \u0441 \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f |\r\n| reason | str | \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 |\r\n\r\n#### \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:\r\n\r\n```python\r\npy_repka.purchase(\r\n    user_id,\r\n    points,\r\n    reason\r\n)\r\n```\r\n\r\n\r\n---\r\n\r\n\r\n### Replenishment\r\n\r\n\u0417\u0430\u0444\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u043a\u0442 \u043f\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0430\u043b\u0430\u043d\u0441\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u044d\u043a\u0432\u0430\u0439\u0440\u0438\u043d\u0433\u0430\r\n\r\nPOST-\u0437\u0430\u043f\u0440\u043e\u0441\r\n\r\n| \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 | \u0422\u0438\u043f | \u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 |\r\n|-|-|-|\r\n| user_id | int | ID \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0447\u0435\u0439 \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f |\r\n| points | int | \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0430\u043b\u043b\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0431\u0430\u043b\u0430\u043d\u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f |\r\n| reason | str | \u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 |\r\n\r\n#### \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f:\r\n\r\n```python\r\npy_repka.replenishment(\r\n    user_id,\r\n    points,\r\n    reason\r\n)\r\n```\r\n\r\n\r\n# \u041f\u0440\u0438\u043c\u0435\u0440\u044b\r\n\r\n#### \u041f\u0440\u0438\u043c\u0435\u0440 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0431\u043e\u0442\u0430 \u043d\u0430 aiogram 3\r\n\r\n```python\r\nfrom pyrepka import PyRepka\r\n\r\n# \u0418\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0440\u0435\u0444\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\r\npy_repka = PyRepka(bot_access_token, bot_username, ip, port)\r\n\r\n\r\n@router.message(F.text.contains(\"/start\"))\r\nasync def start_handler(message: Message):\r\n\r\n    # ID \u043f\u0440\u0438\u0433\u043b\u0430\u0441\u0438\u0442\u0435\u043b\u044f\r\n    try:\r\n        invited_by = message.text.split()[1]\r\n    except: \r\n        invited_by = None\r\n\r\n    # \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0440\u0435\u0444\u0435\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443\r\n    py_repka.add_user_to_ref(\r\n        message.from_user.id,\r\n        message.from_user.first_name,\r\n        message.from_user.last_name,\r\n        message.from_user.username,\r\n        invited_by\r\n    )\r\n```\r\n\r\n\r\n\r\n# \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\r\n\r\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0432\u0441\u0435\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432 swagger\r\n\r\nhttps://hub.p2pbot.pro/swagger/index.html\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "\u041c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0440\u0435\u0444\u0435\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 \"\u0420\u0435\u043f\u043a\u0430\"",
    "version": "1.0.1",
    "project_urls": {
        "GitHub": "https://github.com/oshkov",
        "Homepage": "https://github.com/oshkov/py-repka"
    },
    "split_keywords": [
        "\u0440\u0435\u0444\u0435\u0440\u0430\u043b\u044c\u043d\u0430\u044f",
        "\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c2f17cf25a5d761f6e8219512fc75b517fce79a58ab0e55ea57cd299c4188fe6",
                "md5": "e58cc856152a6699fd8cdc7bd7fa1edc",
                "sha256": "df1cab53717b10413fb6b45e18b02e0bfc45469128f8f679f1a4a1f2d6da8724"
            },
            "downloads": -1,
            "filename": "pyrepka-1.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e58cc856152a6699fd8cdc7bd7fa1edc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 4856,
            "upload_time": "2024-05-12T21:54:22",
            "upload_time_iso_8601": "2024-05-12T21:54:22.917078Z",
            "url": "https://files.pythonhosted.org/packages/c2/f1/7cf25a5d761f6e8219512fc75b517fce79a58ab0e55ea57cd299c4188fe6/pyrepka-1.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1ad896f47fd7dc92c183701dcd272835f5e089664ae04563b91c879c1fd40b17",
                "md5": "181958d54ef0a70a14b8862344f2ba47",
                "sha256": "ca03c7efbbfe16c3d098fac04aad1aaf1a2f0f1e9a1c3017bb51714643f24509"
            },
            "downloads": -1,
            "filename": "pyrepka-1.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "181958d54ef0a70a14b8862344f2ba47",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 4278,
            "upload_time": "2024-05-12T21:54:24",
            "upload_time_iso_8601": "2024-05-12T21:54:24.838358Z",
            "url": "https://files.pythonhosted.org/packages/1a/d8/96f47fd7dc92c183701dcd272835f5e089664ae04563b91c879c1fd40b17/pyrepka-1.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-12 21:54:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "oshkov",
    "github_project": "py-repka",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pyrepka"
}
        
Elapsed time: 3.81126s