Merge pull request #80 from izzzzzi/main

Add base cryptobot
This commit is contained in:
Vladislav Lisitsyn
2024-11-11 17:48:31 +03:00
committed by GitHub
4 changed files with 36 additions and 4 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
[flake8]
max-line-length = 200
ignore = E203, E266, E501, W503, F541, E704, W293, W291, E126, E121, E123, E128, E302,E131,E231,W292
ignore = E203, E266, E501, W503, F541, E704, W293, W291, E126, E121, E123, E128, E302, E131, E231, W292, E402
max-complexity = 25
select = B, C, E, F, W, T4, B9
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,.txt
+1 -2
View File
@@ -1,4 +1,3 @@
[settings]
profile=black
line_length = 200
skip = ["bot.py"]
line_length = 200
+32
View File
@@ -0,0 +1,32 @@
from aiocryptopay import AioCryptoPay, Networks
from aiohttp import web
from loguru import logger
from config import CRYPTO_BOT_ENABLE, CRYPTO_BOT_TOKEN
if CRYPTO_BOT_ENABLE:
crypto = AioCryptoPay(token=CRYPTO_BOT_TOKEN, network=Networks.MAIN_NET)
async def cryptobot_webhook(request):
try:
data = await request.json()
logger.info(f"Получены данные вебхука: {data}")
if data.get("update_type") == "invoice_paid":
await process_crypto_payment(data["payload"])
return web.Response(status=200)
else:
logger.warning(f"Неподдерживаемый тип обновления: {data.get('update_type')}")
return web.Response(status=400)
except Exception as e:
logger.error(f"Ошибка обработки вебхука: {e}")
return web.Response(status=500)
async def process_crypto_payment(payload):
if payload["status"] == "paid":
custom_payload = payload["payload"]
user_id, sub_type = custom_payload.split(":")
# TODO
else:
logger.warning(f"Получен неоплаченный инвойс: {payload}")
+2 -1
View File
@@ -25,4 +25,5 @@ urllib3==2.2.3
wrapt==1.16.0
yarl==1.15.5
yookassa==3.3.0
loguru
loguru
aiocryptopay