feat(crypto): add CryptoPay with network support
This commit is contained in:
@@ -2,12 +2,21 @@ import asyncio
|
||||
import logging
|
||||
from datetime import datetime
|
||||
|
||||
from aiosend import CryptoPay, TESTNET, MAINNET
|
||||
|
||||
from aiogram import Bot, Dispatcher
|
||||
from aiogram.enums import ParseMode
|
||||
from aiogram.fsm.storage.memory import MemoryStorage
|
||||
from aiogram.client.default import DefaultBotProperties
|
||||
|
||||
from config import ADMIN_ID, BOT_TOKEN, LOG_BOT_TOKEN, SHOP_NAME
|
||||
from config import (
|
||||
ADMIN_ID,
|
||||
BOT_TOKEN,
|
||||
CRYPTO_PAY_NETWORK,
|
||||
CRYPTO_PAY_TOKEN,
|
||||
LOG_BOT_TOKEN,
|
||||
SHOP_NAME,
|
||||
)
|
||||
from db.storage import load_config, load_stats
|
||||
from handlers import admin, start, upload, user
|
||||
from runtime import set_bots
|
||||
@@ -16,29 +25,40 @@ from utils.logging import log_admin
|
||||
|
||||
async def main() -> None:
|
||||
defaults = DefaultBotProperties(parse_mode=ParseMode.HTML)
|
||||
|
||||
bot = Bot(token=BOT_TOKEN, default=defaults)
|
||||
log_bot = Bot(token=LOG_BOT_TOKEN, default=defaults) if LOG_BOT_TOKEN else None
|
||||
set_bots(bot, log_bot)
|
||||
|
||||
dispatcher = Dispatcher(storage=MemoryStorage())
|
||||
dispatcher.include_router(start.router)
|
||||
dispatcher.include_router(user.router)
|
||||
dispatcher.include_router(admin.router)
|
||||
dispatcher.include_router(upload.router)
|
||||
cp_net = TESTNET if CRYPTO_PAY_NETWORK.lower() == "testnet" else MAINNET
|
||||
|
||||
cp = CryptoPay(token=CRYPTO_PAY_TOKEN, network=cp_net)
|
||||
dp = Dispatcher(storage=MemoryStorage())
|
||||
|
||||
dp.include_router(start.router)
|
||||
dp.include_router(user.router)
|
||||
dp.include_router(admin.router)
|
||||
dp.include_router(upload.router)
|
||||
|
||||
load_config()
|
||||
load_stats()
|
||||
|
||||
await log_admin(
|
||||
bot,
|
||||
ADMIN_ID,
|
||||
f"🟢 <b>{SHOP_NAME}</b> запущен\n⏰ {datetime.now().strftime('%d.%m.%Y %H:%M:%S')}",
|
||||
log_bot,
|
||||
)
|
||||
|
||||
try:
|
||||
await dispatcher.start_polling(bot)
|
||||
await dp.start_polling(bot)
|
||||
await cp.start_polling(bot)
|
||||
|
||||
finally:
|
||||
if log_bot:
|
||||
await log_bot.session.close()
|
||||
|
||||
await cp.session.close()
|
||||
await bot.session.close()
|
||||
|
||||
|
||||
@@ -51,4 +71,5 @@ if __name__ == "__main__":
|
||||
logging.StreamHandler(),
|
||||
],
|
||||
)
|
||||
|
||||
asyncio.run(main())
|
||||
|
||||
Reference in New Issue
Block a user