diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | python-pyqiwip2p.spec | 540 | ||||
| -rw-r--r-- | sources | 1 |
3 files changed, 542 insertions, 0 deletions
@@ -0,0 +1 @@ +/pyQiwiP2P-2.0.6.tar.gz diff --git a/python-pyqiwip2p.spec b/python-pyqiwip2p.spec new file mode 100644 index 0000000..cb889c7 --- /dev/null +++ b/python-pyqiwip2p.spec @@ -0,0 +1,540 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyQiwiP2P +Version: 2.0.6 +Release: 1 +Summary: pyQiwiP2P +License: Mozilla Public License 2.0 +URL: https://github.com/WhiteApfel/pyQiwiP2P +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/86/51/452ff6eeab5efa55d9c4fb0d3c036aa4c920afa7256aa51e601a76e1ca73/pyQiwiP2P-2.0.6.tar.gz +BuildArch: noarch + +Requires: python3-setuptools +Requires: python3-phonenumbers +Requires: python3-email-validator +Requires: python3-typing +Requires: python3-Hypercorn +Requires: python3-starlette +Requires: python3-httpx +Requires: python3-pydantic +Requires: python3-validators +Requires: python3-ipaddress +Requires: python3-loguru +Requires: python3-dotenv +Requires: python3-pytest +Requires: python3-CherryPy +Requires: python3-response-report + +%description +## А как пользоваться +### Что есть? +Есть сам класс QiwiP2P, который обладает тремя инструментами: +для выставления, проверки и закрытия платежа (счёта). +Пример использования: +```python +from pyqiwip2p import QiwiP2P +from pyqiwip2p.p2p_types import QiwiCustomer, QiwiDatetime, PaymentMethods +QIWI_PRIV_KEY = "abCdef...xYz" +p2p = QiwiP2P(auth_key=QIWI_PRIV_KEY) +# Выставим счет на сумму 228 рублей который будет работать 45 минут +new_bill = p2p.bill(bill_id=212332030, amount=228, lifetime=45) +print(new_bill.bill_id, new_bill.pay_url) +# Проверим статус выставленного счета +print(p2p.check(bill_id=new_bill.bill_id).status) +# Потеряли ссылку на оплату счета? Не проблема! +print(p2p.check(bill_id=245532).pay_url) +# Клиент отменил заказ? Тогда и счет надо закрыть +p2p.reject(bill_id=new_bill.bill_id) +# Если планируете выставлять счета с одинаковой суммой, +# можно воспользоваться параметром default_amount +p2p = QiwiP2P(auth_key=QIWI_PRIV_KEY, default_amount=148) +# Теперь, если не указывать в методе p2p.bill() значение суммы заказа, +# будет применяться указанная базовая сумма +new_bill = p2p.bill(bill_id=6627358) +# А ещё можно не указывать bill_id, тогда значение сгенерируется автоматически. +# Его можно будет посмотреть в объекте ответа Bill +# В комбинации со стандартным значением суммы будет вот так +new_bill = p2p.bill() +print(new_bill.bill_id, new_bill.pay_url) +# Чтобы запретить приём платежей через какой-то метод оплаты, например, карты, +# необходимо передать paySourcesFilter в fields. Туда же можно передать themeCode +fields = { + "paySourcesFilter": "qw,card", + "themeCode": "MalchikGay", +} +p2p.bill(fields=fields) +# Либо же воспользоваться удобными полями +p2p.bill(pay_sources=[PaymentMethods.qiwi, PaymentMethods.card]) +p2p.bill(pay_sources=[PaymentMethods.qiwi], theme_code="MalchikGay") +``` +### А асинхронно могёте? +Могём. Причём примерно так же. +```python +from pyqiwip2p import AioQiwiP2P +from pyqiwip2p.p2p_types import QiwiCustomer, QiwiDatetime, PaymentMethods +QIWI_PRIV_KEY = "abCdef...xYz" +p2p = AioQiwiP2P(auth_key=QIWI_PRIV_KEY) +# Если планируете выставлять счета с одинаковой суммой, +# можно воспользоваться параметром default_amount +p2p = AioQiwiP2P(auth_key=QIWI_PRIV_KEY, default_amount=148) +async def main(): + async with p2p: + # Выставим счет на сумму 228 рублей который будет работать 45 минут + new_bill = await p2p.bill(bill_id=212332030, amount=228, lifetime=45) + print(new_bill.bill_id, new_bill.pay_url) + # Проверим статус выставленного счета + print((await p2p.check(bill_id=new_bill.bill_id)).status) + # Потеряли ссылку на оплату счета? Не проблема! + print((await p2p.check(bill_id=245532)).pay_url) + # Клиент отменил заказ? Тогда и счет надо закрыть + await p2p.reject(bill_id=new_bill.bill_id) + # Если не указывать в методе p2p.bill() значение суммы заказа, + # будет применяться указанная базовая сумма, которую вы установили + new_bill = await p2p.bill(bill_id=6627358) + # А ещё можно не указывать bill_id, тогда значение сгенерируется автоматически. + # Его можно будет посмотреть в объекте ответа Bill + # В комбинации со стандартным значением суммы будет вот так + new_bill = await p2p.bill() + print(new_bill.bill_id, new_bill.pay_url) + # Чтобы запретить приём платежей через какой-то метод оплаты, например, карты, + # необходимо передать paySourcesFilter в fields. Туда же можно передать themeCode + fields = { + "paySourcesFilter": "qw,card", + "themeCode": "MalchikGay", + } + await p2p.bill(fields=fields) + # Либо же воспользоваться удобными полями + await p2p.bill(pay_sources=[PaymentMethods.qiwi, PaymentMethods.card]) + await p2p.bill(pay_sources=[PaymentMethods.qiwi], theme_code="MalchikGay") +p2p.run(main()) +# Аналог +# asyncio.run(main()) +``` +### И всё? +Нет, не всё. Ещё можно настроить кивишные уведомления на свой сервер, +для этого придется немного пострадать, но лишь немного. +**Внимание!** Для работы будет необходим проксирующий сервер (например, Nginx) с доверенным SSL-сертификатом. +Да. Подробнее про требования к проксирующему серверу в [документации Qiwi](https://developer.qiwi.com/ru/p2p-payments/?shell#notification "Почитай, это полезно") +А эта шайтан-машина нужна для захендлирования функций на события. Она не готова самостоятельно контактировать с внешним миром. Пожалей её. +Запросы сервер по умолчанию принимает на 8099 порту, его можно изменить, и только на `/qiwi_notify` - изменить нельзя. +```python +from pyqiwip2p.notify import QiwiNotify +from pyqiwip2p.p2p_types import Bill +QIWI_PRIV_KEY = "abCdef...xYz" +qiwi_notify = QiwiNotify(QIWI_PRIV_KEY) +# +# Хэндлер принимает в себя аргументом функцию, +# в которую передаст объект счёта - Bill +# +# Добавим хэндлер, который будет печатать billID для всех счетов +@qiwi_notify.handler(lambda bill: True) +def print_bill(bill: Bill): + print(bill.bill_id) +# Создадим хэндлер, который будет печатать сумму оплаченных счетов +@qiwi_notify.handler(lambda bill: bill.status == "PAID") +def print_bill(bill: Bill): + print(bill.amount) +# Теперь запустим сервер на 12345'ом порту +qiwi_notify.start(port=12345) +``` +### И асинхронный сервер, наверное, у вас есть? +Да есть. Причём хендлить функции можно и асинхронные, и синхронные. +```python +from pyqiwip2p import QiwiP2P, AioQiwiP2P +from pyqiwip2p.p2p_types import Bill +from pyqiwip2p.notify import AioQiwiNotify +import asyncio +QIWI_PRIV_KEY = "abCdef...xYz" +qiwi_notify = AioQiwiNotify(QIWI_PRIV_KEY) +p2p = AioQiwiP2P(auth_key=QIWI_PRIV_KEY) +@qiwi_notify.handler(lambda bill: bill.status == "EXPIRED") +async def on_expired(bill: Bill): + new_bill = await p2p.bill(amount=bill.amount, comment=bill.comment) + print(new_bill.pay_url) +@qiwi_notify.handler(lambda bill: True) +def on_all(bill: Bill): + print(bill.status) +async def main(): + p = asyncio.get_event_loop() + server = p.create_task(qiwi_notify.a_start(port=12345)) + await server +loop = asyncio.get_event_loop() +loop.run_until_complete(main()) +``` +### Настройка проксирующего Nginx +Для порта 12345 (как в примерах выше) будет: +``` +server { + listen 443; + server_name qiwinotify.domain.com; + ssl_certificate cert.crt; + ssl_certificate_key pkey.key; + location /superSecretQiwiURI { + proxy_pass http://0.0.0.0:12345/qiwi_notify; + } +} +``` +В таком случае при генерации ключей API на https://qiwi.com/p2p-admin/transfers/api +нужно будет указать `https://qiwinotify.domain.com/superSecretQiwiURI` в качестве URL для уведомлений +**P.S. за неприходящие от Qiwi запросы ответственность не несу, как и за приходящие, кстати, тоже. +Если запроса от Qiwi не было, то пишите им в поддержку [@qiwi_api_help_bot](https://t.me/qiwi_api_help_bot)** + +%package -n python3-pyQiwiP2P +Summary: pyQiwiP2P +Provides: python-pyQiwiP2P +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-pyQiwiP2P +## А как пользоваться +### Что есть? +Есть сам класс QiwiP2P, который обладает тремя инструментами: +для выставления, проверки и закрытия платежа (счёта). +Пример использования: +```python +from pyqiwip2p import QiwiP2P +from pyqiwip2p.p2p_types import QiwiCustomer, QiwiDatetime, PaymentMethods +QIWI_PRIV_KEY = "abCdef...xYz" +p2p = QiwiP2P(auth_key=QIWI_PRIV_KEY) +# Выставим счет на сумму 228 рублей который будет работать 45 минут +new_bill = p2p.bill(bill_id=212332030, amount=228, lifetime=45) +print(new_bill.bill_id, new_bill.pay_url) +# Проверим статус выставленного счета +print(p2p.check(bill_id=new_bill.bill_id).status) +# Потеряли ссылку на оплату счета? Не проблема! +print(p2p.check(bill_id=245532).pay_url) +# Клиент отменил заказ? Тогда и счет надо закрыть +p2p.reject(bill_id=new_bill.bill_id) +# Если планируете выставлять счета с одинаковой суммой, +# можно воспользоваться параметром default_amount +p2p = QiwiP2P(auth_key=QIWI_PRIV_KEY, default_amount=148) +# Теперь, если не указывать в методе p2p.bill() значение суммы заказа, +# будет применяться указанная базовая сумма +new_bill = p2p.bill(bill_id=6627358) +# А ещё можно не указывать bill_id, тогда значение сгенерируется автоматически. +# Его можно будет посмотреть в объекте ответа Bill +# В комбинации со стандартным значением суммы будет вот так +new_bill = p2p.bill() +print(new_bill.bill_id, new_bill.pay_url) +# Чтобы запретить приём платежей через какой-то метод оплаты, например, карты, +# необходимо передать paySourcesFilter в fields. Туда же можно передать themeCode +fields = { + "paySourcesFilter": "qw,card", + "themeCode": "MalchikGay", +} +p2p.bill(fields=fields) +# Либо же воспользоваться удобными полями +p2p.bill(pay_sources=[PaymentMethods.qiwi, PaymentMethods.card]) +p2p.bill(pay_sources=[PaymentMethods.qiwi], theme_code="MalchikGay") +``` +### А асинхронно могёте? +Могём. Причём примерно так же. +```python +from pyqiwip2p import AioQiwiP2P +from pyqiwip2p.p2p_types import QiwiCustomer, QiwiDatetime, PaymentMethods +QIWI_PRIV_KEY = "abCdef...xYz" +p2p = AioQiwiP2P(auth_key=QIWI_PRIV_KEY) +# Если планируете выставлять счета с одинаковой суммой, +# можно воспользоваться параметром default_amount +p2p = AioQiwiP2P(auth_key=QIWI_PRIV_KEY, default_amount=148) +async def main(): + async with p2p: + # Выставим счет на сумму 228 рублей который будет работать 45 минут + new_bill = await p2p.bill(bill_id=212332030, amount=228, lifetime=45) + print(new_bill.bill_id, new_bill.pay_url) + # Проверим статус выставленного счета + print((await p2p.check(bill_id=new_bill.bill_id)).status) + # Потеряли ссылку на оплату счета? Не проблема! + print((await p2p.check(bill_id=245532)).pay_url) + # Клиент отменил заказ? Тогда и счет надо закрыть + await p2p.reject(bill_id=new_bill.bill_id) + # Если не указывать в методе p2p.bill() значение суммы заказа, + # будет применяться указанная базовая сумма, которую вы установили + new_bill = await p2p.bill(bill_id=6627358) + # А ещё можно не указывать bill_id, тогда значение сгенерируется автоматически. + # Его можно будет посмотреть в объекте ответа Bill + # В комбинации со стандартным значением суммы будет вот так + new_bill = await p2p.bill() + print(new_bill.bill_id, new_bill.pay_url) + # Чтобы запретить приём платежей через какой-то метод оплаты, например, карты, + # необходимо передать paySourcesFilter в fields. Туда же можно передать themeCode + fields = { + "paySourcesFilter": "qw,card", + "themeCode": "MalchikGay", + } + await p2p.bill(fields=fields) + # Либо же воспользоваться удобными полями + await p2p.bill(pay_sources=[PaymentMethods.qiwi, PaymentMethods.card]) + await p2p.bill(pay_sources=[PaymentMethods.qiwi], theme_code="MalchikGay") +p2p.run(main()) +# Аналог +# asyncio.run(main()) +``` +### И всё? +Нет, не всё. Ещё можно настроить кивишные уведомления на свой сервер, +для этого придется немного пострадать, но лишь немного. +**Внимание!** Для работы будет необходим проксирующий сервер (например, Nginx) с доверенным SSL-сертификатом. +Да. Подробнее про требования к проксирующему серверу в [документации Qiwi](https://developer.qiwi.com/ru/p2p-payments/?shell#notification "Почитай, это полезно") +А эта шайтан-машина нужна для захендлирования функций на события. Она не готова самостоятельно контактировать с внешним миром. Пожалей её. +Запросы сервер по умолчанию принимает на 8099 порту, его можно изменить, и только на `/qiwi_notify` - изменить нельзя. +```python +from pyqiwip2p.notify import QiwiNotify +from pyqiwip2p.p2p_types import Bill +QIWI_PRIV_KEY = "abCdef...xYz" +qiwi_notify = QiwiNotify(QIWI_PRIV_KEY) +# +# Хэндлер принимает в себя аргументом функцию, +# в которую передаст объект счёта - Bill +# +# Добавим хэндлер, который будет печатать billID для всех счетов +@qiwi_notify.handler(lambda bill: True) +def print_bill(bill: Bill): + print(bill.bill_id) +# Создадим хэндлер, который будет печатать сумму оплаченных счетов +@qiwi_notify.handler(lambda bill: bill.status == "PAID") +def print_bill(bill: Bill): + print(bill.amount) +# Теперь запустим сервер на 12345'ом порту +qiwi_notify.start(port=12345) +``` +### И асинхронный сервер, наверное, у вас есть? +Да есть. Причём хендлить функции можно и асинхронные, и синхронные. +```python +from pyqiwip2p import QiwiP2P, AioQiwiP2P +from pyqiwip2p.p2p_types import Bill +from pyqiwip2p.notify import AioQiwiNotify +import asyncio +QIWI_PRIV_KEY = "abCdef...xYz" +qiwi_notify = AioQiwiNotify(QIWI_PRIV_KEY) +p2p = AioQiwiP2P(auth_key=QIWI_PRIV_KEY) +@qiwi_notify.handler(lambda bill: bill.status == "EXPIRED") +async def on_expired(bill: Bill): + new_bill = await p2p.bill(amount=bill.amount, comment=bill.comment) + print(new_bill.pay_url) +@qiwi_notify.handler(lambda bill: True) +def on_all(bill: Bill): + print(bill.status) +async def main(): + p = asyncio.get_event_loop() + server = p.create_task(qiwi_notify.a_start(port=12345)) + await server +loop = asyncio.get_event_loop() +loop.run_until_complete(main()) +``` +### Настройка проксирующего Nginx +Для порта 12345 (как в примерах выше) будет: +``` +server { + listen 443; + server_name qiwinotify.domain.com; + ssl_certificate cert.crt; + ssl_certificate_key pkey.key; + location /superSecretQiwiURI { + proxy_pass http://0.0.0.0:12345/qiwi_notify; + } +} +``` +В таком случае при генерации ключей API на https://qiwi.com/p2p-admin/transfers/api +нужно будет указать `https://qiwinotify.domain.com/superSecretQiwiURI` в качестве URL для уведомлений +**P.S. за неприходящие от Qiwi запросы ответственность не несу, как и за приходящие, кстати, тоже. +Если запроса от Qiwi не было, то пишите им в поддержку [@qiwi_api_help_bot](https://t.me/qiwi_api_help_bot)** + +%package help +Summary: Development documents and examples for pyQiwiP2P +Provides: python3-pyQiwiP2P-doc +%description help +## А как пользоваться +### Что есть? +Есть сам класс QiwiP2P, который обладает тремя инструментами: +для выставления, проверки и закрытия платежа (счёта). +Пример использования: +```python +from pyqiwip2p import QiwiP2P +from pyqiwip2p.p2p_types import QiwiCustomer, QiwiDatetime, PaymentMethods +QIWI_PRIV_KEY = "abCdef...xYz" +p2p = QiwiP2P(auth_key=QIWI_PRIV_KEY) +# Выставим счет на сумму 228 рублей который будет работать 45 минут +new_bill = p2p.bill(bill_id=212332030, amount=228, lifetime=45) +print(new_bill.bill_id, new_bill.pay_url) +# Проверим статус выставленного счета +print(p2p.check(bill_id=new_bill.bill_id).status) +# Потеряли ссылку на оплату счета? Не проблема! +print(p2p.check(bill_id=245532).pay_url) +# Клиент отменил заказ? Тогда и счет надо закрыть +p2p.reject(bill_id=new_bill.bill_id) +# Если планируете выставлять счета с одинаковой суммой, +# можно воспользоваться параметром default_amount +p2p = QiwiP2P(auth_key=QIWI_PRIV_KEY, default_amount=148) +# Теперь, если не указывать в методе p2p.bill() значение суммы заказа, +# будет применяться указанная базовая сумма +new_bill = p2p.bill(bill_id=6627358) +# А ещё можно не указывать bill_id, тогда значение сгенерируется автоматически. +# Его можно будет посмотреть в объекте ответа Bill +# В комбинации со стандартным значением суммы будет вот так +new_bill = p2p.bill() +print(new_bill.bill_id, new_bill.pay_url) +# Чтобы запретить приём платежей через какой-то метод оплаты, например, карты, +# необходимо передать paySourcesFilter в fields. Туда же можно передать themeCode +fields = { + "paySourcesFilter": "qw,card", + "themeCode": "MalchikGay", +} +p2p.bill(fields=fields) +# Либо же воспользоваться удобными полями +p2p.bill(pay_sources=[PaymentMethods.qiwi, PaymentMethods.card]) +p2p.bill(pay_sources=[PaymentMethods.qiwi], theme_code="MalchikGay") +``` +### А асинхронно могёте? +Могём. Причём примерно так же. +```python +from pyqiwip2p import AioQiwiP2P +from pyqiwip2p.p2p_types import QiwiCustomer, QiwiDatetime, PaymentMethods +QIWI_PRIV_KEY = "abCdef...xYz" +p2p = AioQiwiP2P(auth_key=QIWI_PRIV_KEY) +# Если планируете выставлять счета с одинаковой суммой, +# можно воспользоваться параметром default_amount +p2p = AioQiwiP2P(auth_key=QIWI_PRIV_KEY, default_amount=148) +async def main(): + async with p2p: + # Выставим счет на сумму 228 рублей который будет работать 45 минут + new_bill = await p2p.bill(bill_id=212332030, amount=228, lifetime=45) + print(new_bill.bill_id, new_bill.pay_url) + # Проверим статус выставленного счета + print((await p2p.check(bill_id=new_bill.bill_id)).status) + # Потеряли ссылку на оплату счета? Не проблема! + print((await p2p.check(bill_id=245532)).pay_url) + # Клиент отменил заказ? Тогда и счет надо закрыть + await p2p.reject(bill_id=new_bill.bill_id) + # Если не указывать в методе p2p.bill() значение суммы заказа, + # будет применяться указанная базовая сумма, которую вы установили + new_bill = await p2p.bill(bill_id=6627358) + # А ещё можно не указывать bill_id, тогда значение сгенерируется автоматически. + # Его можно будет посмотреть в объекте ответа Bill + # В комбинации со стандартным значением суммы будет вот так + new_bill = await p2p.bill() + print(new_bill.bill_id, new_bill.pay_url) + # Чтобы запретить приём платежей через какой-то метод оплаты, например, карты, + # необходимо передать paySourcesFilter в fields. Туда же можно передать themeCode + fields = { + "paySourcesFilter": "qw,card", + "themeCode": "MalchikGay", + } + await p2p.bill(fields=fields) + # Либо же воспользоваться удобными полями + await p2p.bill(pay_sources=[PaymentMethods.qiwi, PaymentMethods.card]) + await p2p.bill(pay_sources=[PaymentMethods.qiwi], theme_code="MalchikGay") +p2p.run(main()) +# Аналог +# asyncio.run(main()) +``` +### И всё? +Нет, не всё. Ещё можно настроить кивишные уведомления на свой сервер, +для этого придется немного пострадать, но лишь немного. +**Внимание!** Для работы будет необходим проксирующий сервер (например, Nginx) с доверенным SSL-сертификатом. +Да. Подробнее про требования к проксирующему серверу в [документации Qiwi](https://developer.qiwi.com/ru/p2p-payments/?shell#notification "Почитай, это полезно") +А эта шайтан-машина нужна для захендлирования функций на события. Она не готова самостоятельно контактировать с внешним миром. Пожалей её. +Запросы сервер по умолчанию принимает на 8099 порту, его можно изменить, и только на `/qiwi_notify` - изменить нельзя. +```python +from pyqiwip2p.notify import QiwiNotify +from pyqiwip2p.p2p_types import Bill +QIWI_PRIV_KEY = "abCdef...xYz" +qiwi_notify = QiwiNotify(QIWI_PRIV_KEY) +# +# Хэндлер принимает в себя аргументом функцию, +# в которую передаст объект счёта - Bill +# +# Добавим хэндлер, который будет печатать billID для всех счетов +@qiwi_notify.handler(lambda bill: True) +def print_bill(bill: Bill): + print(bill.bill_id) +# Создадим хэндлер, который будет печатать сумму оплаченных счетов +@qiwi_notify.handler(lambda bill: bill.status == "PAID") +def print_bill(bill: Bill): + print(bill.amount) +# Теперь запустим сервер на 12345'ом порту +qiwi_notify.start(port=12345) +``` +### И асинхронный сервер, наверное, у вас есть? +Да есть. Причём хендлить функции можно и асинхронные, и синхронные. +```python +from pyqiwip2p import QiwiP2P, AioQiwiP2P +from pyqiwip2p.p2p_types import Bill +from pyqiwip2p.notify import AioQiwiNotify +import asyncio +QIWI_PRIV_KEY = "abCdef...xYz" +qiwi_notify = AioQiwiNotify(QIWI_PRIV_KEY) +p2p = AioQiwiP2P(auth_key=QIWI_PRIV_KEY) +@qiwi_notify.handler(lambda bill: bill.status == "EXPIRED") +async def on_expired(bill: Bill): + new_bill = await p2p.bill(amount=bill.amount, comment=bill.comment) + print(new_bill.pay_url) +@qiwi_notify.handler(lambda bill: True) +def on_all(bill: Bill): + print(bill.status) +async def main(): + p = asyncio.get_event_loop() + server = p.create_task(qiwi_notify.a_start(port=12345)) + await server +loop = asyncio.get_event_loop() +loop.run_until_complete(main()) +``` +### Настройка проксирующего Nginx +Для порта 12345 (как в примерах выше) будет: +``` +server { + listen 443; + server_name qiwinotify.domain.com; + ssl_certificate cert.crt; + ssl_certificate_key pkey.key; + location /superSecretQiwiURI { + proxy_pass http://0.0.0.0:12345/qiwi_notify; + } +} +``` +В таком случае при генерации ключей API на https://qiwi.com/p2p-admin/transfers/api +нужно будет указать `https://qiwinotify.domain.com/superSecretQiwiURI` в качестве URL для уведомлений +**P.S. за неприходящие от Qiwi запросы ответственность не несу, как и за приходящие, кстати, тоже. +Если запроса от Qiwi не было, то пишите им в поддержку [@qiwi_api_help_bot](https://t.me/qiwi_api_help_bot)** + +%prep +%autosetup -n pyQiwiP2P-2.0.6 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pyQiwiP2P -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 2.0.6-1 +- Package Spec generated @@ -0,0 +1 @@ +79f3f17329f72ecb49ea07b6a4c17e93 pyQiwiP2P-2.0.6.tar.gz |
