From 297262c749587b95e91798cd77856ba75efc65e1 Mon Sep 17 00:00:00 2001 From: hteppl Date: Sun, 8 Dec 2024 04:15:52 +0300 Subject: [PATCH 1/7] Create basic main router for handlers --- handlers/__init__.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 handlers/__init__.py diff --git a/handlers/__init__.py b/handlers/__init__.py new file mode 100644 index 00000000..9bd25e15 --- /dev/null +++ b/handlers/__init__.py @@ -0,0 +1,21 @@ +__all__ = ('router',) + +from aiogram import Router + +from .coupons import router as coupons_router +from .donate import router as donate_router +from .notifications import router as notifications_router +from .pay import router as pay_router +from .profile import router as profile_router +from .start import router as start_router + +router = Router(name='handlers_main_router') + +router.include_routers( + start_router, + profile_router, + pay_router, + donate_router, + coupons_router, + notifications_router, +) From af53834d5da30822a909cbd3e02c2baee6a57a1e Mon Sep 17 00:00:00 2001 From: hteppl Date: Sun, 8 Dec 2024 04:17:50 +0300 Subject: [PATCH 2/7] Create and implement router for payments --- handlers/__init__.py | 3 +++ handlers/payments/__init__.py | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 handlers/payments/__init__.py diff --git a/handlers/__init__.py b/handlers/__init__.py index 9bd25e15..74da7118 100644 --- a/handlers/__init__.py +++ b/handlers/__init__.py @@ -6,6 +6,7 @@ from .coupons import router as coupons_router from .donate import router as donate_router from .notifications import router as notifications_router from .pay import router as pay_router +from .payments import router as payments_router from .profile import router as profile_router from .start import router as start_router @@ -18,4 +19,6 @@ router.include_routers( donate_router, coupons_router, notifications_router, + + payments_router, ) diff --git a/handlers/payments/__init__.py b/handlers/payments/__init__.py new file mode 100644 index 00000000..969f4913 --- /dev/null +++ b/handlers/payments/__init__.py @@ -0,0 +1,19 @@ +__all__ = ('router',) + +from aiogram import Router + +from .cryprobot_pay import router as cryprobot_router +from .freekassa_pay import router as freekassa_router +from .robokassa_pay import router as robokassa_router +from .stars_pay import router as stars_router +from .yookassa_pay import router as yookassa_router + +router = Router(name='payments_main_router') + +router.include_routers( + cryprobot_router, + stars_router, + freekassa_router, + robokassa_router, + yookassa_router, +) From a19690c17f930af6c513dfbc185dbd2aaacfa1e7 Mon Sep 17 00:00:00 2001 From: hteppl Date: Sun, 8 Dec 2024 04:19:16 +0300 Subject: [PATCH 3/7] Create and implement router for keys --- handlers/__init__.py | 2 ++ handlers/keys/__init__.py | 13 +++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 handlers/keys/__init__.py diff --git a/handlers/__init__.py b/handlers/__init__.py index 74da7118..435191c1 100644 --- a/handlers/__init__.py +++ b/handlers/__init__.py @@ -4,6 +4,7 @@ from aiogram import Router from .coupons import router as coupons_router from .donate import router as donate_router +from .keys import router as keys_router from .notifications import router as notifications_router from .pay import router as pay_router from .payments import router as payments_router @@ -21,4 +22,5 @@ router.include_routers( notifications_router, payments_router, + keys_router, ) diff --git a/handlers/keys/__init__.py b/handlers/keys/__init__.py new file mode 100644 index 00000000..45256dad --- /dev/null +++ b/handlers/keys/__init__.py @@ -0,0 +1,13 @@ +__all__ = ('router',) + +from aiogram import Router + +from .key_management import router as management_router +from .keys import router as keys_router + +router = Router(name='keys_main_router') + +router.include_routers( + keys_router, + management_router, +) From 95e2ccf7b023438a0d05e73fd245071b89ff05f6 Mon Sep 17 00:00:00 2001 From: hteppl Date: Sun, 8 Dec 2024 04:20:09 +0300 Subject: [PATCH 4/7] Create and implement router for instructions --- handlers/__init__.py | 2 ++ handlers/instructions/__init__.py | 11 +++++++++++ 2 files changed, 13 insertions(+) create mode 100644 handlers/instructions/__init__.py diff --git a/handlers/__init__.py b/handlers/__init__.py index 435191c1..31349930 100644 --- a/handlers/__init__.py +++ b/handlers/__init__.py @@ -4,6 +4,7 @@ from aiogram import Router from .coupons import router as coupons_router from .donate import router as donate_router +from .instructions import router as instructions_router from .keys import router as keys_router from .notifications import router as notifications_router from .pay import router as pay_router @@ -23,4 +24,5 @@ router.include_routers( payments_router, keys_router, + instructions_router, ) diff --git a/handlers/instructions/__init__.py b/handlers/instructions/__init__.py new file mode 100644 index 00000000..b8121003 --- /dev/null +++ b/handlers/instructions/__init__.py @@ -0,0 +1,11 @@ +__all__ = ('router',) + +from aiogram import Router + +from .instructions import router as instructions_router + +router = Router(name='instructions_main_router') + +router.include_routers( + instructions_router, +) From 4a16643880756b11897f9078a296a86b15814cf3 Mon Sep 17 00:00:00 2001 From: hteppl Date: Sun, 8 Dec 2024 04:21:37 +0300 Subject: [PATCH 5/7] Create and implement router for admin --- handlers/__init__.py | 2 ++ handlers/admin/__init__.py | 17 +++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 handlers/admin/__init__.py diff --git a/handlers/__init__.py b/handlers/__init__.py index 31349930..613d08f9 100644 --- a/handlers/__init__.py +++ b/handlers/__init__.py @@ -2,6 +2,7 @@ __all__ = ('router',) from aiogram import Router +from .admin import router as admin_router from .coupons import router as coupons_router from .donate import router as donate_router from .instructions import router as instructions_router @@ -25,4 +26,5 @@ router.include_routers( payments_router, keys_router, instructions_router, + admin_router, ) diff --git a/handlers/admin/__init__.py b/handlers/admin/__init__.py new file mode 100644 index 00000000..8f83973d --- /dev/null +++ b/handlers/admin/__init__.py @@ -0,0 +1,17 @@ +__all__ = ('router',) + +from aiogram import Router + +from .admin_coupons import router as coupons_router +from .admin_panel import router as panel_router +from .admin_servers import router as servers_router +from .admin_user_editor import router as user_editor_router + +router = Router(name='admins_main_router') + +router.include_routers( + panel_router, + servers_router, + coupons_router, + user_editor_router, +) From 95716cdeab7b78a8eabd8c407c1b878e7521eed5 Mon Sep 17 00:00:00 2001 From: hteppl Date: Sun, 8 Dec 2024 04:23:59 +0300 Subject: [PATCH 6/7] Include routers only if payment method enabled in the config --- handlers/payments/__init__.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/handlers/payments/__init__.py b/handlers/payments/__init__.py index 969f4913..231dd68a 100644 --- a/handlers/payments/__init__.py +++ b/handlers/payments/__init__.py @@ -2,6 +2,7 @@ __all__ = ('router',) from aiogram import Router +from config import ROBOKASSA_ENABLE, STARS_ENABLE, CRYPTO_BOT_ENABLE, FREEKASSA_ENABLE, YOOKASSA_ENABLE from .cryprobot_pay import router as cryprobot_router from .freekassa_pay import router as freekassa_router from .robokassa_pay import router as robokassa_router @@ -10,10 +11,13 @@ from .yookassa_pay import router as yookassa_router router = Router(name='payments_main_router') -router.include_routers( - cryprobot_router, - stars_router, - freekassa_router, - robokassa_router, - yookassa_router, -) +if YOOKASSA_ENABLE: + router.include_router(yookassa_router) +if FREEKASSA_ENABLE: + router.include_router(freekassa_router) +if ROBOKASSA_ENABLE: + router.include_router(robokassa_router) +if CRYPTO_BOT_ENABLE: + router.include_router(cryprobot_router) +if STARS_ENABLE: + router.include_router(stars_router) From 9c08e8a126aaec79291b009b1949e1e1573ef2b0 Mon Sep 17 00:00:00 2001 From: hteppl Date: Sun, 8 Dec 2024 04:36:59 +0300 Subject: [PATCH 7/7] Implement global router --- bot.py | 35 ++--------------------------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/bot.py b/bot.py index abf95cb9..62c86a2a 100644 --- a/bot.py +++ b/bot.py @@ -1,12 +1,12 @@ import traceback -from aiogram import Bot, Dispatcher, Router +from aiogram import Bot, Dispatcher from aiogram.client.default import DefaultBotProperties from aiogram.enums import ParseMode from aiogram.fsm.storage.memory import MemoryStorage from aiogram.types import ErrorEvent -from config import API_TOKEN, CRYPTO_BOT_ENABLE, FREEKASSA_ENABLE, ROBOKASSA_ENABLE, STARS_ENABLE, YOOKASSA_ENABLE +from config import API_TOKEN from logger import logger from middlewares.admin import AdminMiddleware from middlewares.database import DatabaseMiddleware @@ -17,37 +17,6 @@ from middlewares.user import UserMiddleware bot = Bot(token=API_TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML)) storage = MemoryStorage() dp = Dispatcher(bot=bot, storage=storage) -router = Router() - -from handlers import coupons, donate, notifications, pay, profile, start -from handlers.admin import admin_coupons, admin_panel, admin_servers, admin_user_editor -from handlers.instructions import instructions -from handlers.keys import key_management, keys -from handlers.payments import cryprobot_pay, freekassa_pay, robokassa_pay, stars_pay, yookassa_pay - -dp.include_router(admin_coupons.router) -dp.include_router(admin_panel.router) -dp.include_router(admin_user_editor.router) -dp.include_router(admin_servers.router) -dp.include_router(coupons.router) -dp.include_router(start.router) -dp.include_router(profile.router) -dp.include_router(keys.router) -dp.include_router(key_management.router) -dp.include_router(pay.router) -dp.include_router(notifications.router) -dp.include_router(instructions.router) -dp.include_router(donate.router) -if YOOKASSA_ENABLE: - dp.include_router(yookassa_pay.router) -if FREEKASSA_ENABLE: - dp.include_router(freekassa_pay.router) -if CRYPTO_BOT_ENABLE: - dp.include_router(cryprobot_pay.router) -if STARS_ENABLE: - dp.include_router(stars_pay.router) -if ROBOKASSA_ENABLE: - dp.include_router(robokassa_pay.router) dp.message.middleware(LoggingMiddleware()) dp.callback_query.middleware(LoggingMiddleware())